diff options
-rw-r--r-- | plugins/NewStory/src/history_array.cpp | 144 | ||||
-rw-r--r-- | plugins/NewStory/src/history_array.h | 248 | ||||
-rw-r--r-- | plugins/NewStory/src/history_control.cpp | 30 | ||||
-rw-r--r-- | plugins/NewStory/src/options.cpp | 4 | ||||
-rw-r--r-- | plugins/NewStory/src/templates.cpp | 30 | ||||
-rw-r--r-- | plugins/NewStory/src/templates.h | 6 |
6 files changed, 214 insertions, 248 deletions
diff --git a/plugins/NewStory/src/history_array.cpp b/plugins/NewStory/src/history_array.cpp index 4412584479..f1770c6cab 100644 --- a/plugins/NewStory/src/history_array.cpp +++ b/plugins/NewStory/src/history_array.cpp @@ -1,12 +1,49 @@ #include "stdafx.h" +bool Filter::check(ItemData *item) +{ + if (!item) return false; + if (!(flags & EVENTONLY)) { + if (item->dbe.flags & DBEF_SENT) { + if (!(flags & OUTGOING)) + return false; + } + else { + if (!(flags & INCOMING)) + return false; + } + switch (item->dbe.eventType) { + case EVENTTYPE_MESSAGE: + if (!(flags & MESSAGES)) + return false; + break; + case EVENTTYPE_FILE: + if (!(flags & FILES)) + return false; + break; + case EVENTTYPE_STATUSCHANGE: + if (!(flags & STATUS)) + return false; + break; + default: + if (!(flags & OTHER)) + return false; + } + } + if (flags & (EVENTTEXT | EVENTONLY)) { + item->loadInline(ItemData::ELM_DATA); + return CheckFilter(item->getWBuf(), text); + } + return true; +}; + // Event -bool HistoryArray::ItemData::load(EventLoadMode mode) +bool ItemData::load(EventLoadMode mode) { - if (mode == ELM_NOTHING) + if (mode == ItemData::ELM_NOTHING) return true; - if ((mode == ELM_INFO) && !dbeOk) { + if ((mode == ItemData::ELM_INFO) && !dbeOk) { dbeOk = true; dbe.cbBlob = 0; dbe.pBlob = 0; @@ -14,7 +51,7 @@ bool HistoryArray::ItemData::load(EventLoadMode mode) return true; } - if ((mode == ELM_DATA) && (!dbeOk || !dbe.cbBlob)) { + if ((mode == ItemData::ELM_DATA) && (!dbeOk || !dbe.cbBlob)) { dbeOk = true; dbe.cbBlob = db_event_getBlobSize(hEvent); dbe.pBlob = (PBYTE)mir_calloc(dbe.cbBlob + 1); @@ -63,7 +100,7 @@ bool HistoryArray::ItemData::load(EventLoadMode mode) return false; } -HistoryArray::ItemData::~ItemData() +ItemData::~ItemData() { if (dbeOk && dbe.pBlob) { mir_free(dbe.pBlob); @@ -74,8 +111,10 @@ HistoryArray::ItemData::~ItemData() } // Array -HistoryArray::HistoryArray() +HistoryArray::HistoryArray() : + pages(50) { + pages.insert(new ItemBlock()); } HistoryArray::~HistoryArray() @@ -83,77 +122,48 @@ HistoryArray::~HistoryArray() clear(); } -bool HistoryArray::allocateBlock(int count) -{ - ItemBlock *newBlock = new ItemBlock; - newBlock->items = new ItemData[count]; - newBlock->count = count; - newBlock->prev = tail; - newBlock->next = 0; - - if (tail) { - tail->next = newBlock; - } - else { - head = newBlock; - } - tail = newBlock; - - return true; -} - void HistoryArray::clear() { - while (head) { - ItemBlock *next = head->next; - // for (int i = 0; i < head->count; ++i) - // destroyEvent(head->items[i]); - delete[] head->items; - head = next; - } - - head = tail = 0; - preBlock = 0; - preIndex = 0; + pages.destroy(); + iLastPageCounter = 0; } -bool HistoryArray::addHistory(MCONTACT hContact, EventLoadMode) +bool HistoryArray::addEvent(MCONTACT hContact, MEVENT hEvent, int count, ItemData::EventLoadMode mode) { - int count = db_event_count(hContact); - allocateBlock(count); + if (count == -1) + count = MAXINT; - int i = 0; - MEVENT hEvent = db_event_first(hContact); - while (hEvent) { - tail->items[i].hContact = hContact; - tail->items[i].hEvent = hEvent; + for (int i = 0; hEvent && i < count; i++) { + auto &p = allocateItem(); + p.hContact = hContact; + p.hEvent = hEvent; - ++i; + if (mode != ItemData::ELM_NOTHING) + p.load(mode); + hEvent = db_event_next(hContact, hEvent); } + return true; } -bool HistoryArray::addEvent(MCONTACT hContact, MEVENT hEvent, int count, EventLoadMode mode) +ItemData& HistoryArray::allocateItem() { - allocateBlock(count); - - for (int i = 0; i < count; i++) { - tail->items[i].hContact = hContact; - tail->items[i].hEvent = hEvent; - if (mode != ELM_NOTHING) - tail->items[i].load(mode); - hEvent = db_event_next(hContact, hEvent); + if (iLastPageCounter == HIST_BLOCK_SIZE - 1) { + pages.insert(new ItemBlock()); + iLastPageCounter = 0; } - return true; + auto &p = pages[pages.getCount() - 1]; + return p.data[iLastPageCounter++]; } + /* bool HistoryArray::preloadEvents(int count) { for (int i = 0; i < count; ++i) { - preBlock->items[preIndex].load(ELM_DATA); + preBlock->items[preIndex].load(ItemData::ELM_DATA); if (++preIndex == preBlock->count) { preBlock = preBlock->next; @@ -165,17 +175,17 @@ bool HistoryArray::preloadEvents(int count) return true; } */ -HistoryArray::ItemData *HistoryArray::get(int id, EventLoadMode mode) + +ItemData* HistoryArray::get(int id, ItemData::EventLoadMode mode) { - int offset = 0; - for (ItemBlock *p = head; p; p = p->next) { - if (id < offset + p->count) { - if (mode != ELM_NOTHING) - p->items[id - offset].load(mode); + int pageNo = id / HIST_BLOCK_SIZE; + if (pageNo >= pages.getCount()) + return nullptr; - return p->items + id - offset; - } - offset += p->count; - } - return 0; + return &pages[pageNo].data[id % HIST_BLOCK_SIZE]; +} + +int HistoryArray::getCount() const +{ + return (pages.getCount() - 1) * HIST_BLOCK_SIZE + iLastPageCounter; } diff --git a/plugins/NewStory/src/history_array.h b/plugins/NewStory/src/history_array.h index 3141c3146f..c6a28dc99a 100644 --- a/plugins/NewStory/src/history_array.h +++ b/plugins/NewStory/src/history_array.h @@ -1,11 +1,94 @@ #ifndef __history_array__ #define __history_array__ -enum EventLoadMode +struct ItemData { - ELM_NOTHING, - ELM_INFO, - ELM_DATA + enum EventLoadMode + { + ELM_NOTHING, + ELM_INFO, + ELM_DATA + }; + + BYTE flags = 0; + + MCONTACT hContact = 0; + MEVENT hEvent = 0; + + bool dbeOk = false; + DBEVENTINFO dbe; + + bool wtext_del = false; + wchar_t *wtext = 0; + + HANDLE data = 0; + + ItemData() { memset(&dbe, 0, sizeof(dbe)); } + ~ItemData(); + + bool load(EventLoadMode mode); + inline bool loadInline(EventLoadMode mode) + { + if (((mode >= ItemData::ELM_INFO) && !dbeOk) || ((mode == ItemData::ELM_DATA) && !dbe.pBlob)) + return load(mode); + return true; + } + inline wchar_t *getWBuf() + { + loadInline(ItemData::ELM_DATA); + return wtext; + } +}; + +class Filter +{ + WORD flags; + int *refCount; + wchar_t *text; + +public: + enum + { + INCOMING = 0x001, + OUTGOING = 0x002, + MESSAGES = 0x004, + FILES = 0x008, + STATUS = 0x020, + OTHER = 0x040, + EVENTTEXT = 0x080, + EVENTONLY = 0x100, + }; + + Filter(WORD aFlags, wchar_t *wText) + { + refCount = new int(0); + flags = aFlags; + text = new wchar_t[mir_wstrlen(wText) + 1]; + mir_wstrcpy(text, wText); + } + Filter(const Filter &other) + { + flags = other.flags; + refCount = other.refCount; + text = other.text; + ++ *refCount; + } + Filter &operator=(const Filter &other) + { + flags = other.flags; + refCount = other.refCount; + text = other.text; + ++ *refCount; + } + ~Filter() + { + if (!-- * refCount) { + delete refCount; + if (text) delete[] text; + } + } + + bool check(ItemData *item); }; enum @@ -27,152 +110,33 @@ enum FTYPE_OUTGOING = 0x40 }; -class HistoryArray -{ -public: - struct ItemData - { - BYTE flags = 0; - - MCONTACT hContact = 0; - MEVENT hEvent = 0; - - bool dbeOk = false; - DBEVENTINFO dbe; - - bool wtext_del = false; - wchar_t* wtext = 0; +#define HIST_BLOCK_SIZE 1000 - HANDLE data = 0; - - ItemData() { memset(&dbe, 0, sizeof(dbe)); } - ~ItemData(); - - bool load(EventLoadMode mode); - inline bool loadInline(EventLoadMode mode) - { - if (((mode >= ELM_INFO) && !dbeOk) || ((mode == ELM_DATA) && !dbe.pBlob)) - return load(mode); - return true; - } - inline wchar_t* getWBuf() - { - loadInline(ELM_DATA); - return wtext; - } - }; - - struct ItemBlock - { - ItemData* items; - int count; - ItemBlock* prev, * next; - }; +struct ItemBlock : public MZeroedObject +{ + ItemData data[HIST_BLOCK_SIZE]; +}; - class Filter - { - public: - enum - { - INCOMING = 0x001, - OUTGOING = 0x002, - MESSAGES = 0x004, - FILES = 0x008, - STATUS = 0x020, - OTHER = 0x040, - EVENTTEXT = 0x080, - EVENTONLY = 0x100, - }; - Filter(WORD aFlags, wchar_t* wText) - { - refCount = new int(0); - flags = aFlags; - text = new wchar_t[mir_wstrlen(wText) + 1]; - mir_wstrcpy(text, wText); - } - Filter(const Filter& other) - { - flags = other.flags; - refCount = other.refCount; - text = other.text; - ++* refCount; - } - Filter& operator=(const Filter& other) - { - flags = other.flags; - refCount = other.refCount; - text = other.text; - ++* refCount; - } - ~Filter() - { - if (!-- * refCount) { - delete refCount; - if (text) delete[] text; - } - } - inline bool check(ItemData* item) - { - if (!item) return false; - if (!(flags & EVENTONLY)) { - if (item->dbe.flags & DBEF_SENT) { - if (!(flags & OUTGOING)) - return false; - } - else { - if (!(flags & INCOMING)) - return false; - } - switch (item->dbe.eventType) { - case EVENTTYPE_MESSAGE: - if (!(flags & MESSAGES)) - return false; - break; - case EVENTTYPE_FILE: - if (!(flags & FILES)) - return false; - break; - case EVENTTYPE_STATUSCHANGE: - if (!(flags & STATUS)) - return false; - break; - default: - if (!(flags & OTHER)) - return false; - } - } - if (flags & (EVENTTEXT | EVENTONLY)) { - item->loadInline(ELM_DATA); - return CheckFilter(item->getWBuf(), text); - } - return true; - }; - - private: - WORD flags; - int* refCount; - wchar_t* text; - }; +class HistoryArray +{ + OBJLIST<ItemBlock> pages; + int iLastPageCounter = 0; -private: - ItemBlock* head = 0, * tail = 0; - ItemBlock* preBlock = 0; - int preIndex = 0; - bool allocateBlock(int count); + ItemData& allocateItem(void); public: HistoryArray(); ~HistoryArray(); + bool addEvent(MCONTACT hContact, MEVENT hEvent, int count, ItemData::EventLoadMode mode = ItemData::ELM_NOTHING); void clear(); - bool addHistory(MCONTACT hContact, EventLoadMode mode = ELM_NOTHING); - bool addEvent(MCONTACT hContact, MEVENT hEvent, int count, EventLoadMode mode = ELM_NOTHING); + int getCount() const; // bool preloadEvents(int count = 10); - ItemData* get(int id, EventLoadMode mode = ELM_NOTHING); - ItemData* operator[] (int id) { return get(id, ELM_DATA); } - ItemData* operator() (int id) { return get(id, ELM_INFO); } + ItemData* get(int id, ItemData::EventLoadMode mode = ItemData::ELM_NOTHING); + ItemData* operator[] (int id) { return get(id, ItemData::ELM_DATA); } + ItemData* operator() (int id) { return get(id, ItemData::ELM_INFO); } int FindRel(int id, int dir, Filter filter) { @@ -184,14 +148,6 @@ public: } int FindNext(int id, Filter filter) { return FindRel(id, +1, filter); } int FindPrev(int id, Filter filter) { return FindRel(id, -1, filter); } - - int getCount() - { - int res = 0; - for (ItemBlock* p = head; p; p = p->next) - res += p->count; - return res; - } }; #endif // __history_array__ diff --git a/plugins/NewStory/src/history_control.cpp b/plugins/NewStory/src/history_control.cpp index 56e814718d..8891a91f8c 100644 --- a/plugins/NewStory/src/history_control.cpp +++ b/plugins/NewStory/src/history_control.cpp @@ -195,7 +195,7 @@ static void BeginEditItem(HWND hwnd, NewstoryListData *data, int index) int itemHeight = LayoutItem(hwnd, &data->items, idx); while (top < height) { if (idx == index) { - HistoryArray::ItemData *item = data->items.get(index, ELM_DATA); + ItemData *item = data->items.get(index, ItemData::ELM_DATA); int tpl; int fontid; @@ -272,7 +272,7 @@ static int LayoutItem(HWND hwnd, HistoryArray *items, int index) RECT rc; GetClientRect(hwnd, &rc); int width = rc.right - rc.left; - HistoryArray::ItemData *item = items->get(index, ELM_DATA); + ItemData *item = items->get(index, ItemData::ELM_DATA); if (!item) return 0; int tpl; @@ -331,7 +331,7 @@ static int LayoutItem(HWND hwnd, HistoryArray *items, int index) static int PaintItem(HDC hdc, HistoryArray *items, int index, int top, int width) { if (!items) return 0; - HistoryArray::ItemData *item = items->get(index, ELM_DATA); + ItemData *item = items->get(index, ItemData::ELM_DATA); // LOGFONT lfText; COLORREF clText, clBack, clLine; @@ -452,7 +452,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM // History list control messages case NSM_ADDHISTORY: - data->items.addHistory((MCONTACT)wParam); + data->items.addEvent((MCONTACT)wParam, db_event_first((MCONTACT)wParam), -1); RecalcScrollBar(hwnd, data); data->scrollTopItem = data->items.getCount(); FixScrollPosition(hwnd, data); @@ -483,7 +483,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM start ^= end; } for (int i = start; i <= end; ++i) - data->items.get(i, ELM_NOTHING)->flags |= HIF_SELECTED; + data->items.get(i, ItemData::ELM_NOTHING)->flags |= HIF_SELECTED; InvalidateRect(hwnd, 0, FALSE); return 0; } @@ -498,11 +498,11 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM start ^= end; } for (int i = start; i <= end; ++i) { - if (data->items.get(i, ELM_NOTHING)->flags & HIF_SELECTED) { - data->items.get(i, ELM_NOTHING)->flags &= ~HIF_SELECTED; + if (data->items.get(i, ItemData::ELM_NOTHING)->flags & HIF_SELECTED) { + data->items.get(i, ItemData::ELM_NOTHING)->flags &= ~HIF_SELECTED; } else { - data->items.get(i, ELM_NOTHING)->flags |= HIF_SELECTED; + data->items.get(i, ItemData::ELM_NOTHING)->flags |= HIF_SELECTED; } } InvalidateRect(hwnd, 0, FALSE); @@ -521,10 +521,10 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM int count = data->items.getCount(); for (int i = 0; i < count; ++i) { if ((i >= start) && (i <= end)) { - data->items.get(i, ELM_NOTHING)->flags |= HIF_SELECTED; + data->items.get(i, ItemData::ELM_NOTHING)->flags |= HIF_SELECTED; } else { - data->items.get(i, ELM_NOTHING)->flags &= ~((DWORD)HIF_SELECTED); + data->items.get(i, ItemData::ELM_NOTHING)->flags &= ~((DWORD)HIF_SELECTED); } } InvalidateRect(hwnd, 0, FALSE); @@ -541,7 +541,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM start ^= end; } for (int i = start; i <= end; ++i) - data->items.get(i, ELM_NOTHING)->flags &= ~((DWORD)HIF_SELECTED); + data->items.get(i, ItemData::ELM_NOTHING)->flags &= ~((DWORD)HIF_SELECTED); InvalidateRect(hwnd, 0, FALSE); return 0; } @@ -582,7 +582,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM case NSM_FINDNEXT: { - int id = data->items.FindNext(SendMessage(hwnd, NSM_GETCARET, 0, 0), HistoryArray::Filter(HistoryArray::Filter::EVENTONLY, (wchar_t *)wParam)); + int id = data->items.FindNext(SendMessage(hwnd, NSM_GETCARET, 0, 0), Filter(Filter::EVENTONLY, (wchar_t *)wParam)); if (id >= 0) { SendMessage(hwnd, NSM_SELECTITEMS2, id, id); SendMessage(hwnd, NSM_SETCARET, id, TRUE); @@ -592,7 +592,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM case NSM_FINDPREV: { - int id = data->items.FindPrev(SendMessage(hwnd, NSM_GETCARET, 0, 0), HistoryArray::Filter(HistoryArray::Filter::EVENTONLY, (wchar_t *)wParam)); + int id = data->items.FindPrev(SendMessage(hwnd, NSM_GETCARET, 0, 0), Filter(Filter::EVENTONLY, (wchar_t *)wParam)); if (id >= 0) { SendMessage(hwnd, NSM_SELECTITEMS2, id, id); SendMessage(hwnd, NSM_SETCARET, id, TRUE); @@ -604,7 +604,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM { int eventCount = data->items.getCount(); for (int i = 0; i < eventCount; i++) { - auto *item = data->items.get(i, ELM_NOTHING); + auto *item = data->items.get(i, ItemData::ELM_NOTHING); if (item->dbe.timestamp >= wParam) { SendMessage(hwnd, NSM_SELECTITEMS2, i, i); SendMessage(hwnd, NSM_SETCARET, i, TRUE); @@ -629,7 +629,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM int eventCount = data->items.getCount(); for (int i = 0; i < eventCount; i++) { - HistoryArray::ItemData *item = data->items.get(i, ELM_NOTHING); + ItemData *item = data->items.get(i, ItemData::ELM_NOTHING); if (item->flags & HIF_SELECTED) res.Append(ptrW(TplFormatString(TPL_COPY_MESSAGE, item->hContact, item))); } diff --git a/plugins/NewStory/src/options.cpp b/plugins/NewStory/src/options.cpp index f873699eec..62d99ce804 100644 --- a/plugins/NewStory/src/options.cpp +++ b/plugins/NewStory/src/options.cpp @@ -10,7 +10,7 @@ class COptionsDlg : public CDlgBase { replaceStrW(m_curr->tmpValue, m_edit.GetText()); - HistoryArray::ItemData item; + ItemData item; item.hContact = db_find_first(); while (item.hContact && !item.hEvent) { item.hEvent = db_event_first(item.hContact); @@ -19,7 +19,7 @@ class COptionsDlg : public CDlgBase } if (item.hContact && item.hEvent) { - item.load(ELM_DATA); + item.load(ItemData::ELM_DATA); ptrW wszText(TplFormatStringEx(int(m_curr-templates), m_curr->tmpValue, item.hContact, &item)); preview.SetText(wszText); diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp index a0eb2bfa94..1d033d1254 100644 --- a/plugins/NewStory/src/templates.cpp +++ b/plugins/NewStory/src/templates.cpp @@ -2,7 +2,7 @@ int TplMeasureVars(TemplateVars* vars, wchar_t* str); -wchar_t *TplFormatStringEx(int tpl, wchar_t *sztpl, MCONTACT hContact, HistoryArray::ItemData *item) +wchar_t *TplFormatStringEx(int tpl, wchar_t *sztpl, MCONTACT hContact, ItemData *item) { if ((tpl < 0) || (tpl >= TPL_COUNT) || !sztpl) return mir_wstrdup(L""); @@ -31,7 +31,7 @@ wchar_t *TplFormatStringEx(int tpl, wchar_t *sztpl, MCONTACT hContact, HistoryAr return buf; } -wchar_t *TplFormatString(int tpl, MCONTACT hContact, HistoryArray::ItemData *item) +wchar_t *TplFormatString(int tpl, MCONTACT hContact, ItemData *item) { if ((tpl < 0) || (tpl >= TPL_COUNT)) return mir_wstrdup(L""); @@ -102,7 +102,7 @@ int TplMeasureVars(TemplateVars *vars, wchar_t *str) } // Loading variables -void vfGlobal(int, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData *) +void vfGlobal(int, TemplateVars *vars, MCONTACT hContact, ItemData *) { // %%: simply % character vars->SetVar('%', L"%", false); @@ -116,7 +116,7 @@ void vfGlobal(int, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData vars->SetVar('S', nick, false); } -void vfContact(int, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData *) +void vfContact(int, TemplateVars *vars, MCONTACT hContact, ItemData *) { // %N: buddy's nick (not for messages) wchar_t *nick = Clist_GetContactDisplayName(hContact, 0); @@ -128,7 +128,7 @@ void vfContact(int, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemDat vars->SetVar('c', buf, false); } -void vfSystem(int, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData *) +void vfSystem(int, TemplateVars *vars, MCONTACT hContact, ItemData *) { // %N: buddy's nick (not for messages) vars->SetVar('N', LPGENW("System event"), false); @@ -139,7 +139,7 @@ void vfSystem(int, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData vars->SetVar('c', buf, false); } -void vfEvent(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfEvent(int, TemplateVars *vars, MCONTACT, ItemData *item) { HICON hIcon; wchar_t buf[100]; @@ -233,55 +233,55 @@ void vfEvent(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) vars->SetVar('O', TranslateW(buf), false); } -void vfMessage(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfMessage(int, TemplateVars *vars, MCONTACT, ItemData *item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfFile(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfFile(int, TemplateVars *vars, MCONTACT, ItemData *item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfUrl(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfUrl(int, TemplateVars *vars, MCONTACT, ItemData *item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfSign(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfSign(int, TemplateVars *vars, MCONTACT, ItemData *item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfAuth(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfAuth(int, TemplateVars *vars, MCONTACT, ItemData *item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfAdded(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfAdded(int, TemplateVars *vars, MCONTACT, ItemData *item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfPresence(int, TemplateVars* vars, MCONTACT, HistoryArray::ItemData* item) +void vfPresence(int, TemplateVars* vars, MCONTACT, ItemData* item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfDeleted(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *item) +void vfDeleted(int, TemplateVars *vars, MCONTACT, ItemData *item) { // %M: the message string itself vars->SetVar('M', item->getWBuf(), false); } -void vfOther(int, TemplateVars *vars, MCONTACT, HistoryArray::ItemData *) +void vfOther(int, TemplateVars *vars, MCONTACT, ItemData *) { // %M: the message string itself vars->SetVar('M', LPGENW("Unknown event"), false); diff --git a/plugins/NewStory/src/templates.h b/plugins/NewStory/src/templates.h index 222ebd22f6..69491a4a3c 100644 --- a/plugins/NewStory/src/templates.h +++ b/plugins/NewStory/src/templates.h @@ -24,7 +24,7 @@ struct TemplateVars } }; -typedef void(*VarFunc)(int mode, TemplateVars* vars, MCONTACT hContact, HistoryArray::ItemData* item); +typedef void(*VarFunc)(int mode, TemplateVars* vars, MCONTACT hContact, ItemData* item); struct TemplateInfo { @@ -73,7 +73,7 @@ extern TemplateInfo templates[TPL_COUNT]; void LoadTemplates(); void SaveTemplates(); -wchar_t* TplFormatString(int tpl, MCONTACT hContact, HistoryArray::ItemData* args); -wchar_t* TplFormatStringEx(int tpl, wchar_t* sztpl, MCONTACT hContact, HistoryArray::ItemData* args); +wchar_t* TplFormatString(int tpl, MCONTACT hContact, ItemData *args); +wchar_t* TplFormatStringEx(int tpl, wchar_t *sztpl, MCONTACT hContact, ItemData *args); #endif // __templates_h__
\ No newline at end of file |