summaryrefslogtreecommitdiff
path: root/plugins/NewStory
diff options
context:
space:
mode:
authoraunsane <aunsane@gmail.com>2018-10-06 01:05:46 +0300
committeraunsane <aunsane@gmail.com>2018-10-06 01:05:46 +0300
commit74d0eac304a0ea26a7c28b26452f373b2dce0fea (patch)
tree4820dbbb96f8552f98e29c7dd403a1b8ff2fadb6 /plugins/NewStory
parent520a255f25c64b2fb89d2f3559449b2e308c1175 (diff)
NewStory: porting to ng (not complete)
Diffstat (limited to 'plugins/NewStory')
-rw-r--r--plugins/NewStory/res/resource.rc4
-rw-r--r--plugins/NewStory/src/calendartool.cpp4
-rw-r--r--plugins/NewStory/src/fonts.cpp63
-rw-r--r--plugins/NewStory/src/history.cpp150
-rw-r--r--plugins/NewStory/src/history.h2
-rw-r--r--plugins/NewStory/src/history_array.cpp22
-rw-r--r--plugins/NewStory/src/history_array.h4
-rw-r--r--plugins/NewStory/src/history_control.cpp8
-rw-r--r--plugins/NewStory/src/icons.cpp102
-rw-r--r--plugins/NewStory/src/icons.h21
-rw-r--r--plugins/NewStory/src/main.cpp30
-rw-r--r--plugins/NewStory/src/opt_passwords.cpp268
-rw-r--r--plugins/NewStory/src/options.cpp217
-rw-r--r--plugins/NewStory/src/password.cpp99
-rw-r--r--plugins/NewStory/src/password.h6
-rw-r--r--plugins/NewStory/src/stdafx.h1
-rw-r--r--plugins/NewStory/src/templates.cpp593
-rw-r--r--plugins/NewStory/src/templates.h4
18 files changed, 776 insertions, 822 deletions
diff --git a/plugins/NewStory/res/resource.rc b/plugins/NewStory/res/resource.rc
index c1b5f5037d..7963b06071 100644
--- a/plugins/NewStory/res/resource.rc
+++ b/plugins/NewStory/res/resource.rc
@@ -1,13 +1,13 @@
//Microsoft Developer Studio generated resource script.
//
-#include "resource.h"
+#include "..\src\resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
-#include "afxres.h"
+#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
diff --git a/plugins/NewStory/src/calendartool.cpp b/plugins/NewStory/src/calendartool.cpp
index 3d1e118fe7..f45e125bcc 100644
--- a/plugins/NewStory/src/calendartool.cpp
+++ b/plugins/NewStory/src/calendartool.cpp
@@ -1,4 +1,4 @@
-#include "headers.h"
+#include "stdafx.h"
struct CalendarToolData
{
@@ -87,5 +87,5 @@ time_t CalendarTool_Show(HWND hwnd, int x, int y)
// HWND hwndTool = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_CALENDARTOOL), 0, CalendarToolDlgProc, (LPARAM)data);
// ShowWindow(hwndTool, SW_SHOWNORMAL);
- return DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_CALENDARTOOL), 0, CalendarToolDlgProc, (LPARAM)data);
+ return DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CALENDARTOOL), 0, CalendarToolDlgProc, (LPARAM)data);
} \ No newline at end of file
diff --git a/plugins/NewStory/src/fonts.cpp b/plugins/NewStory/src/fonts.cpp
index f454fdc976..0db756187b 100644
--- a/plugins/NewStory/src/fonts.cpp
+++ b/plugins/NewStory/src/fonts.cpp
@@ -1,40 +1,40 @@
-#include "headers.h"
+#include "stdafx.h"
MyColourID colors[] =
{
- {0, {sizeof(ColourID), MODULETITLE, "Incoming Messages", MODULENAME, "ColorMsgIn", 0, RGB(0xff, 0xff, 0xff), 0}},
- {0, {sizeof(ColourID), MODULETITLE, "Outgoing Messages", MODULENAME, "ColorMsgOut", 0, RGB(0xff, 0xff, 0xff), 1}},
+ {0, {MODULETITLE, "Incoming Messages", MODULENAME, "ColorMsgIn", 0, RGB(0xff, 0xff, 0xff), 0}},
+ {0, {MODULETITLE, "Outgoing Messages", MODULENAME, "ColorMsgOut", 0, RGB(0xff, 0xff, 0xff), 1}},
- {0, {sizeof(ColourID), MODULETITLE, "Incoming Files", MODULENAME, "ColorFileIn", 0, RGB(0xff, 0xff, 0xff), 2}},
- {0, {sizeof(ColourID), MODULETITLE, "Outgoing Files", MODULENAME, "ColorFileOut", 0, RGB(0xff, 0xff, 0xff), 3}},
+ {0, {MODULETITLE, "Incoming Files", MODULENAME, "ColorFileIn", 0, RGB(0xff, 0xff, 0xff), 2}},
+ {0, {MODULETITLE, "Outgoing Files", MODULENAME, "ColorFileOut", 0, RGB(0xff, 0xff, 0xff), 3}},
- {0, {sizeof(ColourID), MODULETITLE, "Incoming URLs", MODULENAME, "ColorURLIn", 0, RGB(0xff, 0xff, 0xff), 4}},
- {0, {sizeof(ColourID), MODULETITLE, "Outgoing URLs", MODULENAME, "ColorURLOut", 0, RGB(0xff, 0xff, 0xff), 5}},
+ {0, {MODULETITLE, "Incoming URLs", MODULENAME, "ColorURLIn", 0, RGB(0xff, 0xff, 0xff), 4}},
+ {0, {MODULETITLE, "Outgoing URLs", MODULENAME, "ColorURLOut", 0, RGB(0xff, 0xff, 0xff), 5}},
- {0, {sizeof(ColourID), MODULETITLE, "Status changes", MODULENAME, "ColorStatus", 0, RGB(0xff, 0xff, 0xff), 6}},
+ {0, {MODULETITLE, "Status changes", MODULENAME, "ColorStatus", 0, RGB(0xff, 0xff, 0xff), 6}},
- {0, {sizeof(ColourID), MODULETITLE, "Other Outgoing Events", MODULENAME, "ColorOut", 0, RGB(0xff, 0xff, 0xff), 7}},
- {0, {sizeof(ColourID), MODULETITLE, "Other Incoming Events", MODULENAME, "ColorIn", 0, RGB(0xff, 0xff, 0xff), 8}},
+ {0, {MODULETITLE, "Other Outgoing Events", MODULENAME, "ColorOut", 0, RGB(0xff, 0xff, 0xff), 7}},
+ {0, {MODULETITLE, "Other Incoming Events", MODULENAME, "ColorIn", 0, RGB(0xff, 0xff, 0xff), 8}},
- {0, {sizeof(ColourID), MODULETITLE, "Selected Items", MODULENAME, "ColorSel", 0, RGB(0x60, 0x60, 0x60), 9}},
- {0, {sizeof(ColourID), MODULETITLE, "Selected Items (Text)", MODULENAME, "ColorSelTxt", 0, RGB(0xff, 0xff, 0xff), 10}}
+ {0, {MODULETITLE, "Selected Items", MODULENAME, "ColorSel", 0, RGB(0x60, 0x60, 0x60), 9}},
+ {0, {MODULETITLE, "Selected Items (Text)", MODULENAME, "ColorSelTxt", 0, RGB(0xff, 0xff, 0xff), 10}}
};
MyFontID fonts[] =
{
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Incoming Messages", MODULENAME, "FontMsgIn", 0, {0}, 0}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Outgoing Messages", MODULENAME, "FontMsgOut", 0, {0}, 1}},
+ {0, 0, 0, {MODULETITLE, "Incoming Messages", MODULENAME, "FontMsgIn", 0, {0}, 0}},
+ {0, 0, 0, {MODULETITLE, "Outgoing Messages", MODULENAME, "FontMsgOut", 0, {0}, 1}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Incoming Files", MODULENAME, "FontFileIn", 0, {0}, 2}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Outgoing Files", MODULENAME, "FontFileOut", 0, {0}, 3}},
+ {0, 0, 0, {MODULETITLE, "Incoming Files", MODULENAME, "FontFileIn", 0, {0}, 2}},
+ {0, 0, 0, {MODULETITLE, "Outgoing Files", MODULENAME, "FontFileOut", 0, {0}, 3}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Incoming URLs", MODULENAME, "FontURLIn", 0, {0}, 4}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Outgoing URLs", MODULENAME, "FontURLOut", 0, {0}, 5}},
+ {0, 0, 0, {MODULETITLE, "Incoming URLs", MODULENAME, "FontURLIn", 0, {0}, 4}},
+ {0, 0, 0, {MODULETITLE, "Outgoing URLs", MODULENAME, "FontURLOut", 0, {0}, 5}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Status changes", MODULENAME, "FontStatus", 0, {0}, 6}},
+ {0, 0, 0, {MODULETITLE, "Status changes", MODULENAME, "FontStatus", 0, {0}, 6}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Other Outgoing Events", MODULENAME, "FontOut", 0, {0}, 7}},
- {0, 0, 0, {sizeof(FontID), MODULETITLE, "Other Incoming Events", MODULENAME, "FontIn", 0, {0}, 8}}
+ {0, 0, 0, {MODULETITLE, "Other Outgoing Events", MODULENAME, "FontOut", 0, {0}, 7}},
+ {0, 0, 0, {MODULETITLE, "Other Incoming Events", MODULENAME, "FontIn", 0, {0}, 8}}
// {sizeof(FontID), MODULETITLE, "Default Text", MODULENAME, "FontDef", FIDF_SAVEPOINTSIZE, {0}, 0},
// {sizeof(FontID), MODULETITLE, "Selected Item", MODULENAME, "FontSel", FIDF_SAVEPOINTSIZE, {0}, 1}
@@ -44,12 +44,10 @@ int evtFontsChanged(WPARAM, LPARAM)
{
int i;
for (i = 0; i < COLOR_COUNT; i++)
- {
- colors[i].cl = (COLORREF)CallService(MS_COLOUR_GET, (WPARAM)&colors[i].info, 0);
- }
- for (i = 0; i < FONT_COUNT; i++)
- {
- fonts[i].cl = (COLORREF)CallService(MS_FONT_GET, (WPARAM)&fonts[i].info, (LPARAM)fonts[i].lf);
+ colors[i].cl = Colour_Get(colors[i].info.group, colors[i].info.name);
+
+ for (i = 0; i < FONT_COUNT; i++) {
+ fonts[i].cl = (COLORREF)Font_Get(fonts[i].info, fonts[i].lf);
DeleteObject(fonts[i].hfnt);
fonts[i].hfnt = CreateFontIndirectA(fonts[i].lf);
}
@@ -59,7 +57,7 @@ int evtFontsChanged(WPARAM, LPARAM)
void InitFonts()
{
- bool isFSInstalled = ServiceExists(MS_FONT_GET) ? true : false;
+ bool isFSInstalled = /*ServiceExists(MS_FONT_GET) ? */true/* : false*/;
int i; // damn msvc can't handle for(int i...) correctly! =(
@@ -70,14 +68,15 @@ void InitFonts()
{
for (i = 0; i < COLOR_COUNT; i++)
{
- CallService(MS_COLOUR_REGISTER, (WPARAM)&colors[i].info, 0);
- colors[i].cl = (COLORREF)CallService(MS_COLOUR_GET, (WPARAM)&colors[i].info, 0);
+ g_plugin.addColor(&colors[i].info);
+ colors[i].cl = Colour_Get(colors[i].info.group, colors[i].info.name);
}
for (i = 0; i < FONT_COUNT; i++)
{
- CallService(MS_FONT_REGISTER, (WPARAM)&fonts[i].info, 0);
+ //CallService(MS_FONT_REGISTER, (WPARAM)&fonts[i].info, 0);
+ g_plugin.addFont(&fonts[i].info);
fonts[i].lf = (LOGFONTA *)malloc(sizeof(LOGFONTA));
- fonts[i].cl = (COLORREF)CallService(MS_FONT_GET, (WPARAM)&fonts[i].info, (LPARAM)fonts[i].lf);
+ fonts[i].cl = (COLORREF)Font_Get(fonts[i].info, fonts[i].lf);
fonts[i].hfnt = CreateFontIndirectA(fonts[i].lf);
//MessageBox(0, fonts[i].lf->lfFaceName, _T(""), MB_OK);
}
diff --git a/plugins/NewStory/src/history.cpp b/plugins/NewStory/src/history.cpp
index 0bc77cdaa4..e02501c219 100644
--- a/plugins/NewStory/src/history.cpp
+++ b/plugins/NewStory/src/history.cpp
@@ -11,27 +11,27 @@ for the date picker:
break;
*/
-#include "headers.h"
+#include "stdafx.h"
-HANDLE hNewstoryWindows = 0;
+MWindowList hNewstoryWindows = 0;
int evtEventAdded(WPARAM wParam, LPARAM lParam)
{
- HWND hwnd = WindowList_Find(hNewstoryWindows, (HANDLE)wParam);
+ HWND hwnd = WindowList_Find(hNewstoryWindows, (UINT_PTR)wParam);
SendMessage(hwnd, UM_ADDEVENT, wParam, lParam);
return 0;
}
int evtEventDeleted(WPARAM wParam, LPARAM lParam)
{
- HWND hwnd = WindowList_Find(hNewstoryWindows, (HANDLE)wParam);
+ HWND hwnd = WindowList_Find(hNewstoryWindows, (UINT_PTR)wParam);
SendMessage(hwnd, UM_REMOVEEVENT, wParam, lParam);
return 0;
}
void InitHistory()
{
- hNewstoryWindows = (HANDLE)CallService(MS_UTILS_ALLOCWINDOWLIST, 0, 0);
+ hNewstoryWindows = WindowList_Create();
HookEvent(ME_DB_EVENT_ADDED, evtEventAdded);
HookEvent(ME_DB_EVENT_DELETED, evtEventDeleted);
@@ -90,7 +90,7 @@ struct WindowData
WORD showFlags;
bool gonnaRedraw;
bool isContactHistory;
- HANDLE hContact;
+ MCONTACT hContact;
int lastYear, lastMonth, lastDay;
HTREEITEM hLastYear, hLastMonth, hLastDay;
bool disableTimeTreeChange;
@@ -406,7 +406,7 @@ bool ExportHistoryDialog(HANDLE hContact, HWND hwndHistory)
int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
- CallSnappingWindowProc(hwnd, msg, wParam, lParam);
+ //CallSnappingWindowProc(hwnd, msg, wParam, lParam);
WindowData *data = (WindowData *)GetWindowLong(hwnd, GWL_USERDATA);
@@ -422,9 +422,9 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case WM_INITDIALOG:
{
data = new WindowData;
- data->hContact = (HANDLE)lParam;
+ data->hContact = (MCONTACT)lParam;
data->disableTimeTreeChange = false;
- data->showFlags = DBGetContactSettingWord(data->hContact, MODULENAME, "showFlags", 0x7f);
+ data->showFlags = db_get_w(data->hContact, MODULENAME, "showFlags", 0x7f);
data->lastYear = data->lastMonth = data->lastDay = -1;
data->hLastYear = data->hLastMonth = data->hLastDay = 0;
@@ -447,7 +447,7 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
data->hwndBtnFindPrev = GetDlgItem(hwnd, IDC_FINDPREV);
data->hwndBtnFindNext = GetDlgItem(hwnd, IDC_FINDNEXT);
data->hwndSearchText = GetDlgItem(hwnd, IDC_SEARCHTEXT);
- data->hwndStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0, hwnd, NULL, hInst, NULL);
+ data->hwndStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0, hwnd, NULL, g_plugin.getInst(), NULL);
SendMessage(data->hwndStatus, SB_SETMINHEIGHT, GetSystemMetrics(SM_CYSMICON), 0);
// filterbar
@@ -513,8 +513,8 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
SetWindowLong(hwnd, GWL_USERDATA, (LONG)data);
- data->hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_POPUPS));
- CallService(MS_LANGPACK_TRANSLATEMENU, (WPARAM)data->hMenu, 0);
+ data->hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_POPUPS));
+ //CallService(MS_LANGPACK_TRANSLATEMENU, (WPARAM)data->hMenu, 0);
CheckMenuItem(GetSubMenu(data->hMenu, 1), IDD_FILTER_INCOMING,
data->showFlags&HIST_SHOW_IN ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(GetSubMenu(data->hMenu, 1), IDD_FILTER_OUTGOING,
@@ -569,13 +569,13 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
WindowList_Add(hNewstoryWindows, hwnd, data->hContact);
- if (data->hContact && (data->hContact != INVALID_HANDLE_VALUE))
+ if (data->hContact && (data->hContact != INVALID_CONTACT_ID))
{
TCHAR *title = TplFormatString(TPL_TITLE, data->hContact, 0);
SetWindowText(hwnd, title);
free(title);
} else
- if (data->hContact == INVALID_HANDLE_VALUE)
+ if (data->hContact == INVALID_CONTACT_ID)
{
SetWindowText(hwnd, TranslateT("Newstory Search Results"));
} else
@@ -583,7 +583,7 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
SetWindowText(hwnd, TranslateT("System Newstory"));
}
- if (data->hContact != INVALID_HANDLE_VALUE)
+ if (data->hContact != INVALID_CONTACT_ID)
{
// ShowWindow(GetDlgItem(hwnd, IDC_TIMETREE), SW_HIDE);
// ShowWindow(GetDlgItem(hwnd, IDC_ITEMS), SW_HIDE);
@@ -595,11 +595,13 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
SendMessage(hwnd, UM_UPDATEICONS, 0, 0);
SetFocus(GetDlgItem(hwnd, IDC_ITEMS2));
- RECT rc;
- rc.left = (int)DBGetContactSettingDword(data->hContact, MODULENAME, "left", 0);
- rc.top = (int)DBGetContactSettingDword(data->hContact, MODULENAME, "top", 0);
- rc.right = (int)DBGetContactSettingDword(data->hContact, MODULENAME, "right", 0);
- rc.bottom = (int)DBGetContactSettingDword(data->hContact, MODULENAME, "bottom", 0);
+ RECT rc
+ {
+ db_get_dw(data->hContact, MODULENAME, "left"),
+ db_get_dw(data->hContact, MODULENAME, "top"),
+ db_get_dw(data->hContact, MODULENAME, "right"),
+ db_get_dw(data->hContact, MODULENAME, "bottom")
+ };
if ((rc.left-rc.right) && (rc.top-rc.bottom))
MoveWindow(hwnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
@@ -618,40 +620,40 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case UM_UPDATEICONS:
{
- SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM)icons[ICO_NEWSTORY].hIcon);
-
- SendMessage(GetDlgItem(hwnd, IDC_SEARCHICON), STM_SETICON, (WPARAM)icons[ICO_SEARCH].hIcon, 0);
-
- SendMessage(GetDlgItem(hwnd, IDC_USERINFO), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_USERINFO].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_MESSAGE), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_SENDMSG].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_USERMENU), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_USERMENU].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_COPY), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_COPY].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_LOGOPTIONS),BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_OPTIONS].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_FILTER), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_FILTER].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_DATEPOPUP), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_CALENDAR].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_SEARCH), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_SEARCH].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_EXPORT), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_EXPORT].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_CLOSE), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_CLOSE].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_FINDPREV), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_FINDPREV].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_FINDNEXT), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_FINDNEXT].hIcon);
-
- SendMessage(data->ibMessages.hwndIco, STM_SETICON, (LPARAM)icons[ICO_SENDMSG].hIcon, 0);
- SendMessage(data->ibMessages.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGIN].hIcon);
- SendMessage(data->ibMessages.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGOUT].hIcon);
- SendMessage(data->ibFiles.hwndIco, STM_SETICON, (LPARAM)icons[ICO_FILE].hIcon, 0);
- SendMessage(data->ibFiles.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGIN].hIcon);
- SendMessage(data->ibFiles.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGOUT].hIcon);
- SendMessage(data->ibUrls.hwndIco, STM_SETICON, (LPARAM)icons[ICO_URL].hIcon, 0);
- SendMessage(data->ibUrls.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGIN].hIcon);
- SendMessage(data->ibUrls.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGOUT].hIcon);
- SendMessage(data->ibTotal.hwndIco, STM_SETICON, (LPARAM)icons[ICO_UNKNOWN].hIcon, 0);
- SendMessage(data->ibTotal.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGIN].hIcon);
- SendMessage(data->ibTotal.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_MSGOUT].hIcon);
+ SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM)GetIcon(ICO_NEWSTORY));
+
+ SendMessage(GetDlgItem(hwnd, IDC_SEARCHICON), STM_SETICON, (WPARAM)GetIcon(ICO_SEARCH), 0);
+
+ SendMessage(GetDlgItem(hwnd, IDC_USERINFO), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_USERINFO));
+ SendMessage(GetDlgItem(hwnd, IDC_MESSAGE), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_SENDMSG));
+ SendMessage(GetDlgItem(hwnd, IDC_USERMENU), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_USERMENU));
+ SendMessage(GetDlgItem(hwnd, IDC_COPY), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_COPY));
+ SendMessage(GetDlgItem(hwnd, IDC_LOGOPTIONS),BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_OPTIONS));
+ SendMessage(GetDlgItem(hwnd, IDC_FILTER), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_FILTER));
+ SendMessage(GetDlgItem(hwnd, IDC_DATEPOPUP), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_CALENDAR));
+ SendMessage(GetDlgItem(hwnd, IDC_SEARCH), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_SEARCH));
+ SendMessage(GetDlgItem(hwnd, IDC_EXPORT), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_EXPORT));
+ SendMessage(GetDlgItem(hwnd, IDC_CLOSE), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_CLOSE));
+ SendMessage(GetDlgItem(hwnd, IDC_FINDPREV), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_FINDPREV));
+ SendMessage(GetDlgItem(hwnd, IDC_FINDNEXT), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_FINDNEXT));
+
+ SendMessage(data->ibMessages.hwndIco, STM_SETICON, (LPARAM)GetIcon(ICO_SENDMSG), 0);
+ SendMessage(data->ibMessages.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGIN));
+ SendMessage(data->ibMessages.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGOUT));
+ SendMessage(data->ibFiles.hwndIco, STM_SETICON, (LPARAM)GetIcon(ICO_FILE), 0);
+ SendMessage(data->ibFiles.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGIN));
+ SendMessage(data->ibFiles.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGOUT));
+ SendMessage(data->ibUrls.hwndIco, STM_SETICON, (LPARAM)GetIcon(ICO_URL), 0);
+ SendMessage(data->ibUrls.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGIN));
+ SendMessage(data->ibUrls.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGOUT));
+ SendMessage(data->ibTotal.hwndIco, STM_SETICON, (LPARAM)GetIcon(ICO_UNKNOWN), 0);
+ SendMessage(data->ibTotal.hwndIcoIn, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGIN));
+ SendMessage(data->ibTotal.hwndIcoOut, BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_MSGOUT));
if (CheckPassword(data->hContact, ""))
- SendMessage(GetDlgItem(hwnd, IDC_SECURITY), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_NOPASSWORD].hIcon);
+ SendMessage(GetDlgItem(hwnd, IDC_SECURITY), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_NOPASSWORD));
else
- SendMessage(GetDlgItem(hwnd, IDC_SECURITY), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_PASSWORD].hIcon);
+ SendMessage(GetDlgItem(hwnd, IDC_SECURITY), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_PASSWORD));
break;
}
@@ -690,7 +692,7 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
lpmis = (LPMEASUREITEMSTRUCT) lParam;
if (lpmis->CtlType == ODT_MENU)
- return CallService(MS_CLIST_MENUMEASUREITEM, wParam, lParam);
+ return Menu_MeasureItem(lParam);
lpmis->itemHeight = 25;
return TRUE;
@@ -718,13 +720,13 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
WindowList_Remove(hNewstoryWindows, hwnd);
- DBWriteContactSettingWord(data->hContact, MODULENAME, "showFlags", data->showFlags);
+ db_set_dw(data->hContact, MODULENAME, "showFlags", data->showFlags);
RECT rc;
GetWindowRect(hwnd, &rc);
- DBWriteContactSettingDword(data->hContact, MODULENAME, "left", rc.left);
- DBWriteContactSettingDword(data->hContact, MODULENAME, "top", rc.top);
- DBWriteContactSettingDword(data->hContact, MODULENAME, "right", rc.right);
- DBWriteContactSettingDword(data->hContact, MODULENAME, "bottom", rc.bottom);
+ db_set_dw(data->hContact, MODULENAME, "left", rc.left);
+ db_set_dw(data->hContact, MODULENAME, "top", rc.top);
+ db_set_dw(data->hContact, MODULENAME, "right", rc.right);
+ db_set_dw(data->hContact, MODULENAME, "bottom", rc.bottom);
// CLCombo_Cleanup(GetDlgItem(hwnd, IDC_USERLIST));
@@ -740,7 +742,7 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
lpdis = (LPDRAWITEMSTRUCT) lParam;
if (lpdis->CtlType == ODT_MENU)
- return CallService(MS_CLIST_MENUDRAWITEM, wParam, lParam);
+ return Menu_DrawItem(lParam);
if (lpdis->itemID == -1)
return FALSE;
@@ -783,8 +785,8 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case WM_COMMAND:
{
- if (CallService(MS_CLIST_MENUPROCESSCOMMAND, MAKEWPARAM(LOWORD(wParam), MPCF_CONTACTMENU), (LPARAM) data->hContact))
- return TRUE;
+ //if (Menu_ProcessCommand(MAKEWPARAM(LOWORD(wParam), MPCF_CONTACTMENU), (LPARAM) data->hContact))
+ // return TRUE;
switch(LOWORD(wParam))
{
case IDCANCEL:
@@ -812,7 +814,7 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case IDC_USERMENU:
{
RECT rc;
- HMENU hMenu = (HMENU) CallService(MS_CLIST_MENUBUILDCONTACT, (WPARAM)data->hContact, 0);
+ HMENU hMenu = Menu_BuildContactMenu(data->hContact);
GetWindowRect(GetDlgItem(hwnd, LOWORD(wParam)), &rc);
TrackPopupMenu(hMenu, 0, rc.left, rc.bottom, 0, hwnd, NULL);
DestroyMenu(hMenu);
@@ -838,31 +840,19 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case ID_LOGOPTIONS_OPTIONS:
{
OptShowPage = 0;
- OPENOPTIONSDIALOG ood;
- ood.cbSize = sizeof(ood);
- ood.pszGroup = 0;
- ood.pszPage = "Newstory";
- CallService(MS_OPT_OPENOPTIONS, 0, (LPARAM)&ood);
+ g_plugin.openOptions(nullptr, L"Newstory");
break;
}
case ID_LOGOPTIONS_TEMPLATES:
{
OptShowPage = 1;
- OPENOPTIONSDIALOG ood;
- ood.cbSize = sizeof(ood);
- ood.pszGroup = 0;
- ood.pszPage = "Newstory";
- CallService(MS_OPT_OPENOPTIONS, 0, (LPARAM)&ood);
+ g_plugin.openOptions(nullptr, L"Newstory");
break;
}
case ID_LOGOPTIONS_PASSWORDS:
{
OptShowPage = 2;
- OPENOPTIONSDIALOG ood;
- ood.cbSize = sizeof(ood);
- ood.pszGroup = 0;
- ood.pszPage = "Newstory";
- CallService(MS_OPT_OPENOPTIONS, 0, (LPARAM)&ood);
+ g_plugin.openOptions(nullptr, L"Newstory");
break;
}
}
@@ -1043,15 +1033,15 @@ int CALLBACK HistoryDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
int svcShowNewstory(WPARAM wParam, LPARAM lParam)
{
- HWND hwnd = (HWND)WindowList_Find(hNewstoryWindows, (HANDLE)wParam);
+ HWND hwnd = (HWND)WindowList_Find(hNewstoryWindows, (MCONTACT)wParam);
if (hwnd && IsWindow(hwnd))
{
SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
SetFocus(hwnd);
} else
- if (AskPassword((HANDLE)wParam))
+ if (AskPassword((MCONTACT)wParam))
{
- HWND hwnd = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_HISTORY), 0, HistoryDlgProc, wParam);
+ HWND hwnd = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_HISTORY), 0, HistoryDlgProc, wParam);
ShowWindow(hwnd, SW_SHOWNORMAL);
}
return 0;
@@ -1067,7 +1057,7 @@ int svcShowSystemNewstory(WPARAM wParam, LPARAM lParam)
} else
if (AskPassword(0))
{
- HWND hwnd = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_HISTORY), 0, HistoryDlgProc, 0);
+ HWND hwnd = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_HISTORY), 0, HistoryDlgProc, 0);
ShowWindow(hwnd, SW_SHOWNORMAL);
}
return 0;
diff --git a/plugins/NewStory/src/history.h b/plugins/NewStory/src/history.h
index c070d3e4d3..4aa5a05073 100644
--- a/plugins/NewStory/src/history.h
+++ b/plugins/NewStory/src/history.h
@@ -29,7 +29,7 @@ enum
UM_JUMP2TIME
};
-extern HANDLE hNewstoryWindows;
+extern MWindowList hNewstoryWindows;
void InitHistory();
void FreeHistory();
diff --git a/plugins/NewStory/src/history_array.cpp b/plugins/NewStory/src/history_array.cpp
index 81758eab48..ed2ceadcdb 100644
--- a/plugins/NewStory/src/history_array.cpp
+++ b/plugins/NewStory/src/history_array.cpp
@@ -1,4 +1,4 @@
-#include "headers.h"
+#include "stdafx.h"
void CacheThreadFunc(void *arg);
@@ -8,23 +8,21 @@ bool HistoryArray::ItemData::load(EventLoadMode mode)
if (mode == ELM_NOTHING)
return true;
- if ((mode == ELM_INFO) && (!dbeOk || !dbe.cbSize))
+ if ((mode == ELM_INFO) && !dbeOk)
{
dbeOk = true;
- dbe.cbSize = sizeof(dbe);
dbe.cbBlob = 0;
dbe.pBlob = 0;
- CallService(MS_DB_EVENT_GET, (WPARAM)hEvent, (LPARAM)&dbe);
+ db_event_get(hEvent, &dbe);
return true;
}
if ((mode == ELM_DATA) && (!dbeOk || !dbe.cbBlob))
{
dbeOk = true;
- dbe.cbSize = sizeof(dbe);
- dbe.cbBlob = CallService(MS_DB_EVENT_GETBLOBSIZE, (WPARAM)hEvent, 0);
+ dbe.cbBlob = db_event_getBlobSize(hEvent);
dbe.pBlob = (PBYTE)calloc(dbe.cbBlob+1, 1);
- CallService(MS_DB_EVENT_GET, (WPARAM)hEvent, (LPARAM)&dbe);
+ db_event_get(hEvent, &dbe);
int aLength = 0;
atext = 0;
@@ -170,27 +168,27 @@ void HistoryArray::clear()
preIndex = 0;
}
-bool HistoryArray::addHistory(HANDLE hContact, EventLoadMode mode)
+bool HistoryArray::addHistory(MCONTACT hContact, EventLoadMode mode)
{
- int count = CallService(MS_DB_EVENT_GETCOUNT, (WPARAM)hContact, 0);
+ int count = db_event_count(hContact);
allocateBlock(count);
int i = 0;
- HANDLE hEvent = (HANDLE)CallService(MS_DB_EVENT_FINDFIRST, (WPARAM)hContact, 0);
+ MEVENT hEvent = db_event_first(hContact);
while (hEvent)
{
tail->items[i].hContact = hContact;
tail->items[i].hEvent = hEvent;
++i;
- hEvent = (HANDLE)CallService(MS_DB_EVENT_FINDNEXT, (WPARAM)hEvent, 0);
+ hEvent = db_event_next(hEvent, 0);
}
char buf[666];
return true;
}
-bool HistoryArray::addEvent(HANDLE hContact, HANDLE hEvent, EventLoadMode mode)
+bool HistoryArray::addEvent(MCONTACT hContact, MEVENT hEvent, EventLoadMode mode)
{
allocateBlock(1);
tail->items[0].hContact = hContact;
diff --git a/plugins/NewStory/src/history_array.h b/plugins/NewStory/src/history_array.h
index 924450a401..640548e84d 100644
--- a/plugins/NewStory/src/history_array.h
+++ b/plugins/NewStory/src/history_array.h
@@ -194,8 +194,8 @@ public:
~HistoryArray();
void clear();
- bool addHistory(HANDLE hContact, EventLoadMode mode = ELM_NOTHING);
- bool addEvent(HANDLE hContact, HANDLE hEvent, EventLoadMode mode = ELM_NOTHING);
+ bool addHistory(MCONTACT hContact, EventLoadMode mode = ELM_NOTHING);
+ bool addEvent(MCONTACT hContact, MEVENT hEvent, EventLoadMode mode = ELM_NOTHING);
// bool preloadEvents(int count = 10);
diff --git a/plugins/NewStory/src/history_control.cpp b/plugins/NewStory/src/history_control.cpp
index f433a3e1a7..02df609ef2 100644
--- a/plugins/NewStory/src/history_control.cpp
+++ b/plugins/NewStory/src/history_control.cpp
@@ -1,4 +1,4 @@
-#include "headers.h"
+#include "stdafx.h"
LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
@@ -12,7 +12,7 @@ void InitNewstoryControl()
wndclass.lpfnWndProc = NewstoryListWndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = sizeof(void *);
- wndclass.hInstance = hInst;
+ wndclass.hInstance = g_plugin.getInst();
wndclass.hIcon = NULL;
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = NULL;
@@ -122,7 +122,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
case WM_USER:
{
- data->items.addHistory((HANDLE)wParam);
+ data->items.addHistory((MCONTACT)wParam);
RecalcScrollBar(hwnd, data);
data->scrollTopItem = data->items.getCount();
FixScrollPosition(hwnd, data);
@@ -807,7 +807,7 @@ static void BeginEditItem(HWND hwnd, NewstoryListData *data, int index)
}
TCHAR *text = TplFormatString(tpl, item->hContact, item);
- data->hwndEditBox = CreateWindow(_T("EDIT"), text, WS_CHILD|WS_BORDER|ES_READONLY|ES_MULTILINE|ES_AUTOVSCROLL, 0, top, rc.right-rc.left, itemHeight, hwnd, NULL, hInst, NULL);
+ data->hwndEditBox = CreateWindow(_T("EDIT"), text, WS_CHILD|WS_BORDER|ES_READONLY|ES_MULTILINE|ES_AUTOVSCROLL, 0, top, rc.right-rc.left, itemHeight, hwnd, NULL, g_plugin.getInst(), NULL);
OldEditWndProc = (WNDPROC)SetWindowLong(data->hwndEditBox, GWL_WNDPROC, (LONG)HistoryEditWndProc);
SendMessage(data->hwndEditBox, WM_SETFONT, (WPARAM)fonts[fontid].hfnt, 0);
SendMessage(data->hwndEditBox, EM_SETMARGINS, EC_RIGHTMARGIN, 100);
diff --git a/plugins/NewStory/src/icons.cpp b/plugins/NewStory/src/icons.cpp
index 8572678804..61f9cd4211 100644
--- a/plugins/NewStory/src/icons.cpp
+++ b/plugins/NewStory/src/icons.cpp
@@ -1,74 +1,64 @@
-#include "headers.h"
+#include "stdafx.h"
-MyIconDesriptor icons[] =
+static IconItem icons[] =
{
- {ICO_NEWSTORY, MODULENAME"/main", MODULETITLE, "Main Icon", 0},
- {ICO_USERINFO, MODULENAME"/userinfo", MODULETITLE, "User Info", 0},
- {ICO_USERMENU, MODULENAME"/usermenu", MODULETITLE, "User Menu", 0},
- {ICO_SEARCH, MODULENAME"/search", MODULETITLE, "Search", 0},
- {ICO_OPTIONS, MODULENAME"/options", MODULETITLE, "Options", 0},
- {ICO_FILTER, MODULENAME"/filter", MODULETITLE, "Filter", 0},
- {ICO_EXPORT, MODULENAME"/export", MODULETITLE, "Export", 0},
- {ICO_COPY, MODULENAME"/copy", MODULETITLE, "Copy", 0},
- {ICO_SENDMSG, MODULENAME"/message", MODULETITLE, "Send Message", 0},
- {ICO_CLOSE, MODULENAME"/close", MODULETITLE, "Close", 0},
+ { LPGEN("Main Icon"), "main", ICO_NEWSTORY },
+ { LPGEN("User Info"), "userinfo", ICO_USERINFO },
+ { LPGEN("User Menu"), "usermenu", ICO_USERMENU },
+ { LPGEN("Search"), "search", ICO_SEARCH },
+ { LPGEN("Options"), "options", ICO_OPTIONS },
+ { LPGEN("Filter"), "filter", ICO_FILTER },
+ { LPGEN("Export"), "export", ICO_EXPORT },
+ { LPGEN("Copy"), "copy", ICO_COPY },
+ { LPGEN("Send Message"), "message", ICO_SENDMSG },
+ { LPGEN("Close"), "close", ICO_CLOSE },
- {ICO_MSGIN, MODULENAME"/msgin", MODULETITLE, "Incoming Message", 0},
- {ICO_MSGOUT, MODULENAME"/msgout", MODULETITLE, "Outgoing Message", 0},
- {ICO_SIGNIN, MODULENAME"/signin", MODULETITLE, "User Signed In", 0},
- {ICO_FILE, MODULENAME"/file", MODULETITLE, "File", 0},
- {ICO_URL, MODULENAME"/url", MODULETITLE, "URL", 0},
- {ICO_UNKNOWN, MODULENAME"/unknown", MODULETITLE, "Unknown Event", 0},
-
- {ICO_FINDPREV, MODULENAME"/findprev", MODULETITLE, "Find Previous", 0},
- {ICO_FINDNEXT, MODULENAME"/findnext", MODULETITLE, "Find Next", 0},
- {ICO_NOPASSWORD,MODULENAME"/nopassword",MODULETITLE, "Password disabled", 0},
- {ICO_PASSWORD, MODULENAME"/password", MODULETITLE, "Password enabled", 0},
- {ICO_CALENDAR, MODULENAME"/calendar", MODULETITLE, "Jump to Date", 0},
+ { LPGEN("Incoming Message"), "msgin", ICO_MSGIN },
+ { LPGEN("Outgoing Message"), "msgout", ICO_MSGOUT },
+ { LPGEN("User Signed In"), "signin", ICO_SIGNIN },
+ { LPGEN("File"), "file", ICO_FILE },
+ { LPGEN("URL"), "url", ICO_URL },
+ { LPGEN("Unknown Event"), "unknown", ICO_UNKNOWN },
- {ICO_TPLGROUP, MODULENAME"/tplgroup", MODULETITLE, "Template Group", 0},
- {ICO_RESET, MODULENAME"/reset", MODULETITLE, "Reset", 0},
- {ICO_PREVIEW, MODULENAME"/preview", MODULETITLE, "Update Preview", 0},
- {ICO_VARHELP, MODULENAME"/varhelp", MODULETITLE, "Help", 0},
- {ICO_SAVEPASS, MODULENAME"/savepass", MODULETITLE, "Save Password", 0}
+ { LPGEN("Find Previous"), "findprev", ICO_FINDPREV },
+ { LPGEN("Find Next"), "findnext", ICO_FINDNEXT },
+ { LPGEN("Password disabled"), "nopassword",ICO_NOPASSWORD },
+ { LPGEN("Password enabled"), "password", ICO_PASSWORD },
+ { LPGEN("Jump to Date"), "calendar", ICO_CALENDAR },
+
+ { LPGEN("Template Group"), "tplgroup", ICO_TPLGROUP },
+ { LPGEN("Reset"), "reset", ICO_RESET },
+ { LPGEN("Update Preview"), "preview", ICO_PREVIEW },
+ { LPGEN("Help"), "varhelp", ICO_VARHELP },
+ { LPGEN("Save Password"), "savepass", ICO_SAVEPASS }
};
-int iconCount = sizeof(icons) / sizeof(icons[0]);
+//int iconCount = sizeof(icons) / sizeof(icons[0]);
int evtIconsChanged(WPARAM, LPARAM)
{
- RefreshIcons(icons, ICO_COUNT);
- WindowList_Broadcast(hNewstoryWindows, UM_UPDATEICONS, 0, 0);
+ //RefreshIcons(icons, ICO_COUNT);
+ //WindowList_Broadcast(hNewstoryWindows, UM_UPDATEICONS, 0, 0);
return 0;
}
-void InitIcons(MyIconDesriptor *icons, LPSTR szFilename, int count)
+void InitIcons(LPSTR szFilename, int count)
{
- for (int i = 0; i < count; i++)
- {
- if (ServiceExists(MS_SKIN2_ADDICON))
- {
- SKINICONDESC sid;
- sid.cbSize = sizeof(sid);
- sid.pszName = icons[i].szId;
- sid.pszSection = icons[i].szGroup;
- sid.pszDescription = icons[i].szTitle;
- sid.pszDefaultFile = szFilename;
- sid.iDefaultIndex = -icons[i].dwIndex-1;
- CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid);
- icons[i].hIcon = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)icons[i].szId);
- } else
- {
- ExtractIconExA(szFilename, icons[i].dwIndex, 0, &icons[i].hIcon, 1);
- }
- }
-
+ g_plugin.registerIcon(MODULETITLE, icons);
HookEvent(ME_SKIN2_ICONSCHANGED, evtIconsChanged);
}
-void RefreshIcons(MyIconDesriptor *icons, int count)
+void RefreshIcons(IconItem *icons, int count)
+{
+ //if (ServiceExists(MS_SKIN2_ADDICON))
+ // for (int i = 0; i < count; i++)
+ // icons[i].hIcon = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)icons[i].szId);
+}
+
+HICON GetIcon(int iconId)
{
- if (ServiceExists(MS_SKIN2_ADDICON))
- for (int i = 0; i < count; i++)
- icons[i].hIcon = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)icons[i].szId);
+ for (auto &it : icons)
+ if (it.defIconID == iconId)
+ return IcoLib_GetIconByHandle(it.hIcolib);
+ return nullptr;
} \ No newline at end of file
diff --git a/plugins/NewStory/src/icons.h b/plugins/NewStory/src/icons.h
index e041c648e5..635ece3f7a 100644
--- a/plugins/NewStory/src/icons.h
+++ b/plugins/NewStory/src/icons.h
@@ -1,14 +1,3 @@
-struct MyIconDesriptor
-{
- DWORD dwIndex;
-
- LPSTR szId;
- LPSTR szGroup;
- LPSTR szTitle;
-
- HICON hIcon;
-};
-
enum
{
ICO_NEWSTORY, // 0
@@ -40,8 +29,10 @@ enum
ICO_COUNT // 26
};
-extern MyIconDesriptor icons[];
-extern int iconCount;
+//extern IconItem icons[];
+//extern int iconCount;
+
+HICON GetIcon(int iconId);
-void InitIcons(MyIconDesriptor *icons, LPSTR szFilename, int count);
-void RefreshIcons(MyIconDesriptor *icons, int count); \ No newline at end of file
+void InitIcons(LPSTR szFilename, int count);
+void RefreshIcons(IconItem *icons, int count); \ No newline at end of file
diff --git a/plugins/NewStory/src/main.cpp b/plugins/NewStory/src/main.cpp
index 885c53393c..a88a597399 100644
--- a/plugins/NewStory/src/main.cpp
+++ b/plugins/NewStory/src/main.cpp
@@ -17,7 +17,8 @@ CMPlugin g_plugin;
/////////////////////////////////////////////////////////////////////////////////////////
-PLUGININFOEX pluginInfoEx = {
+PLUGININFOEX pluginInfoEx =
+{
sizeof(PLUGININFOEX),
__PLUGIN_NAME,
PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
@@ -42,36 +43,33 @@ extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_UIHIST
int evtModulesLoaded(WPARAM, LPARAM)
{
- InitIcons(icons, "plugins\\newstory_icons.dll", iconCount);
+ InitIcons("icons\\newstory_icons.dll", 0);
InitFonts();
InitNewstoryControl();
InitHistory();
InitOptions();
LoadTemplates();
- CLISTMENUITEM mi;
- ZeroMemory(&mi, sizeof(mi));
- mi.cbSize = sizeof(mi);
+ CMenuItem mi(&g_plugin);
+ mi.flags = CMIF_UNICODE;
+
mi.pszService = MS_HISTORY_SHOWCONTACTHISTORY;
- mi.pszName = "User Newstory";
- mi.popupPosition = 1999990000;
- mi.hIcon = icons[ICO_NEWSTORY].hIcon;
- CallService(MS_CLIST_ADDCONTACTMENUITEM, (WPARAM)0, (LPARAM)&mi);
+ mi.name.w = L"User Newstory";
+ mi.position = 1999990000;
+ mi.hIcon = GetIcon(ICO_NEWSTORY);
+ Menu_AddContactMenuItem(&mi);
- ZeroMemory(&mi, sizeof(mi));
- mi.cbSize = sizeof(mi);
mi.pszService = "Newstory/System";
- mi.pszName = "System Newstory";
- mi.popupPosition = 1999990000;
- mi.hIcon = icons[ICO_NEWSTORY].hIcon;
- CallService(MS_CLIST_ADDMAINMENUITEM, (WPARAM)0, (LPARAM)&mi);
+ mi.name.w = L"System Newstory";
+ mi.position = 1999990000;
+ mi.hIcon = GetIcon(ICO_NEWSTORY);
+ Menu_AddMainMenuItem(&mi);
return 0;
}
int CMPlugin::Load()
{
-
CreateServiceFunction(MS_HISTORY_SHOWCONTACTHISTORY, svcShowNewstory);
CreateServiceFunction("Newstory/System", svcShowSystemNewstory);
diff --git a/plugins/NewStory/src/opt_passwords.cpp b/plugins/NewStory/src/opt_passwords.cpp
index ac81dc01bc..cb59426f3b 100644
--- a/plugins/NewStory/src/opt_passwords.cpp
+++ b/plugins/NewStory/src/opt_passwords.cpp
@@ -4,26 +4,24 @@ int icoidNoPassword, icoidPassword;
void SetAllContactIcons(HWND hwndList)
{
- HANDLE hContact,hItem;
- hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDFIRST,0,0);
- while (hContact)
- {
- hItem=(HANDLE)SendMessage(hwndList,CLM_FINDCONTACT,(WPARAM)hContact,0);
- SendMessage(hwndList,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(0, CheckPassword(hContact,"")?icoidNoPassword:icoidPassword));
- hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDNEXT,(WPARAM)hContact,0);
+ MCONTACT hContact, hItem;
+ hContact = db_find_first();
+ for (auto &hContact : Contacts()) {
+ hItem = (MCONTACT)SendMessage(hwndList, CLM_FINDCONTACT, (WPARAM)hContact, 0);
+ SendMessage(hwndList, CLM_SETEXTRAIMAGE, (WPARAM)hItem, MAKELPARAM(0, CheckPassword(hContact, "") ? icoidNoPassword : icoidPassword));
}
}
static void ResetListOptions(HWND hwndList)
{
- SendMessage(hwndList,CLM_SETBKBITMAP,0,(LPARAM)(HBITMAP)NULL);
- SendMessage(hwndList,CLM_SETBKCOLOR,GetSysColor(COLOR_WINDOW),0);
- SendMessage(hwndList,CLM_SETGREYOUTFLAGS,0,0);
- SendMessage(hwndList,CLM_SETLEFTMARGIN,2,0);
- SendMessage(hwndList,CLM_SETINDENT,10,0);
- for(int i=0;i<=FONTID_MAX;i++)
- SendMessage(hwndList,CLM_SETTEXTCOLOR,i,GetSysColor(COLOR_WINDOWTEXT));
- SetWindowLong(hwndList,GWL_STYLE,GetWindowLong(hwndList,GWL_STYLE)|CLS_SHOWHIDDEN);
+ SendMessage(hwndList, CLM_SETBKBITMAP, 0, (LPARAM)(HBITMAP)NULL);
+ SendMessage(hwndList, CLM_SETBKCOLOR, GetSysColor(COLOR_WINDOW), 0);
+ SendMessage(hwndList, CLM_SETGREYOUTFLAGS, 0, 0);
+ SendMessage(hwndList, CLM_SETLEFTMARGIN, 2, 0);
+ SendMessage(hwndList, CLM_SETINDENT, 10, 0);
+ for (int i = 0; i <= FONTID_MAX; i++)
+ SendMessage(hwndList, CLM_SETTEXTCOLOR, i, GetSysColor(COLOR_WINDOWTEXT));
+ SetWindowLong(hwndList, GWL_STYLE, GetWindowLong(hwndList, GWL_STYLE) | CLS_SHOWHIDDEN);
}
BOOL CALLBACK OptPasswordsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -31,144 +29,144 @@ BOOL CALLBACK OptPasswordsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa
HTREEITEM hitmGlobal, hitmMaster;
switch (msg)
{
- case WM_INITDIALOG:
- {
- HIMAGELIST himg;
- himg = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), (IsWinVerXPPlus()?ILC_COLOR32:ILC_COLOR16)|ILC_MASK, 3, 3);
- icoidNoPassword = ImageList_AddIcon(himg, icons[ICO_NOPASSWORD].hIcon);
- icoidPassword = ImageList_AddIcon(himg, icons[ICO_PASSWORD].hIcon);
- SendDlgItemMessage(hwnd, IDC_LIST, CLM_SETEXTRAIMAGELIST, 0, (LPARAM)himg);
+ case WM_INITDIALOG:
+ {
+ HIMAGELIST himg;
+ himg = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 | ILC_MASK, 3, 3);
+ icoidNoPassword = ImageList_AddIcon(himg, GetIcon(ICO_NOPASSWORD));
+ icoidPassword = ImageList_AddIcon(himg, GetIcon(ICO_PASSWORD));
+ SendDlgItemMessage(hwnd, IDC_LIST, CLM_SETEXTRAIMAGELIST, 0, (LPARAM)himg);
- SendDlgItemMessage(hwnd,IDC_LIST,CLM_SETEXTRACOLUMNS,1,0);
+ SendDlgItemMessage(hwnd, IDC_LIST, CLM_SETEXTRACOLUMNS, 1, 0);
- CLCINFOITEM cii={0};
- cii.cbSize=sizeof(cii);
- cii.flags=CLCIIF_GROUPFONT;
+ CLCINFOITEM cii = { 0 };
+ cii.cbSize = sizeof(cii);
+ cii.flags = CLCIIF_GROUPFONT;
- cii.pszText=TranslateT("** Global **");
- hitmGlobal = (HTREEITEM)SendDlgItemMessage(hwnd,IDC_LIST,CLM_ADDINFOITEM,0,(LPARAM)&cii);
- SendMessage(GetDlgItem(hwnd, IDC_LIST),CLM_SETEXTRAIMAGE,(WPARAM)hitmGlobal,MAKELPARAM(0, icoidNoPassword));
+ cii.pszText = TranslateT("** Global **");
+ hitmGlobal = (HTREEITEM)SendDlgItemMessage(hwnd, IDC_LIST, CLM_ADDINFOITEM, 0, (LPARAM)&cii);
+ SendMessage(GetDlgItem(hwnd, IDC_LIST), CLM_SETEXTRAIMAGE, (WPARAM)hitmGlobal, MAKELPARAM(0, icoidNoPassword));
- cii.pszText=TranslateT("** Master **");
- hitmMaster = (HTREEITEM)SendDlgItemMessage(hwnd,IDC_LIST,CLM_ADDINFOITEM,0,(LPARAM)&cii);
- SendMessage(GetDlgItem(hwnd, IDC_LIST),CLM_SETEXTRAIMAGE,(WPARAM)hitmMaster,MAKELPARAM(0, icoidNoPassword));
+ cii.pszText = TranslateT("** Master **");
+ hitmMaster = (HTREEITEM)SendDlgItemMessage(hwnd, IDC_LIST, CLM_ADDINFOITEM, 0, (LPARAM)&cii);
+ SendMessage(GetDlgItem(hwnd, IDC_LIST), CLM_SETEXTRAIMAGE, (WPARAM)hitmMaster, MAKELPARAM(0, icoidNoPassword));
- HWND hwndList = GetDlgItem(hwnd, IDC_LIST);
+ HWND hwndList = GetDlgItem(hwnd, IDC_LIST);
- SetAllContactIcons(GetDlgItem(hwnd, IDC_LIST));
- ResetListOptions(GetDlgItem(hwnd, IDC_LIST));
+ SetAllContactIcons(GetDlgItem(hwnd, IDC_LIST));
+ ResetListOptions(GetDlgItem(hwnd, IDC_LIST));
- SendMessage(GetDlgItem(hwnd, IDC_ICO_NOPASSWORD), STM_SETICON, (WPARAM)icons[ICO_NOPASSWORD].hIcon, 0);
- SendMessage(GetDlgItem(hwnd, IDC_ICO_PASSWORD), STM_SETICON, (WPARAM)icons[ICO_PASSWORD].hIcon, 0);
+ SendMessage(GetDlgItem(hwnd, IDC_ICO_NOPASSWORD), STM_SETICON, (WPARAM)GetIcon(ICO_NOPASSWORD), 0);
+ SendMessage(GetDlgItem(hwnd, IDC_ICO_PASSWORD), STM_SETICON, (WPARAM)GetIcon(ICO_PASSWORD), 0);
- SendMessage(GetDlgItem(hwnd, IDC_SAVEPASSWORD), BUTTONSETASFLATBTN, 0, 0);
- SendMessage(GetDlgItem(hwnd, IDC_SAVEPASSWORD), BUTTONADDTOOLTIP, (WPARAM)Translate("Save Password"), 0);
- SendMessage(GetDlgItem(hwnd, IDC_SAVEPASSWORD), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_SAVEPASS].hIcon);
+ SendMessage(GetDlgItem(hwnd, IDC_SAVEPASSWORD), BUTTONSETASFLATBTN, 0, 0);
+ SendMessage(GetDlgItem(hwnd, IDC_SAVEPASSWORD), BUTTONADDTOOLTIP, (WPARAM)Translate("Save Password"), 0);
+ SendMessage(GetDlgItem(hwnd, IDC_SAVEPASSWORD), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_SAVEPASS));
-// hVisibleIcon=ImageList_GetIcon(hIml,1,ILD_NORMAL);
-// SendDlgItemMessage(hwndDlg,IDC_VISIBLEICON,STM_SETICON,(WPARAM)hVisibleIcon,0);
-// hInvisibleIcon=ImageList_GetIcon(hIml,2,ILD_NORMAL);
-// SendDlgItemMessage(hwndDlg,IDC_INVISIBLEICON,STM_SETICON,(WPARAM)hInvisibleIcon,0);
+ // hVisibleIcon=ImageList_GetIcon(hIml,1,ILD_NORMAL);
+ // SendDlgItemMessage(hwndDlg,IDC_VISIBLEICON,STM_SETICON,(WPARAM)hVisibleIcon,0);
+ // hInvisibleIcon=ImageList_GetIcon(hIml,2,ILD_NORMAL);
+ // SendDlgItemMessage(hwndDlg,IDC_INVISIBLEICON,STM_SETICON,(WPARAM)hInvisibleIcon,0);
- return TRUE;
+ return TRUE;
+ }
+
+ case WM_NOTIFY:
+ switch (((LPNMHDR)lParam)->idFrom)
+ {
+ case 0:
+ {
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case PSN_RESET:
+ {
+ return TRUE;
+ }
+
+ case PSN_APPLY:
+ {
+ return TRUE;
+ }
+ }
+ break;
}
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->idFrom)
+ case IDC_LIST:
+ {
+ switch (((LPNMHDR)lParam)->code)
{
- case 0:
- {
- switch (((LPNMHDR)lParam)->code)
- {
- case PSN_RESET:
- {
- return TRUE;
- }
-
- case PSN_APPLY:
- {
- return TRUE;
- }
- }
- break;
- }
-
- case IDC_LIST:
- {
- switch (((LPNMHDR)lParam)->code)
- {
- case CLN_NEWCONTACT:
- case CLN_LISTREBUILT:
- SetAllContactIcons(GetDlgItem(hwnd,IDC_LIST));
- //fall through
+ case CLN_NEWCONTACT:
+ case CLN_LISTREBUILT:
+ SetAllContactIcons(GetDlgItem(hwnd, IDC_LIST));
+ //fall through
// case CLN_CONTACTMOVED:
// SetListGroupIcons(GetDlgItem(hwndDlg,IDC_LIST),(HANDLE)SendDlgItemMessage(hwndDlg,IDC_LIST,CLM_GETNEXTITEM,CLGN_ROOT,0),hItemAll,NULL);
// break;
// case CLN_OPTIONSCHANGED:
- ResetListOptions(GetDlgItem(hwnd,IDC_LIST));
- break;
-/*
- case NM_CLICK:
- { HANDLE hItem;
- NMCLISTCONTROL *nm=(NMCLISTCONTROL*)lParam;
- DWORD hitFlags;
- int iImage;
- int itemType;
-
- // Make sure we have an extra column
- if (nm->iColumn == -1)
- break;
-
- // Find clicked item
- hItem = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_HITTEST, (WPARAM)&hitFlags, MAKELPARAM(nm->pt.x,nm->pt.y));
- // Nothing was clicked
- if (hItem == NULL) break;
- // It was not a visbility icon
- if (!(hitFlags & CLCHT_ONITEMEXTRA)) break;
-
- // Get image in clicked column (0=none, 1=visible, 2=invisible)
- iImage = SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETEXTRAIMAGE, (WPARAM)hItem, MAKELPARAM(nm->iColumn, 0));
- if (iImage == 0)
- iImage=nm->iColumn + 1;
- else
- if (iImage == 1 || iImage == 2)
- iImage = 0;
-
- // Get item type (contact, group, etc...)
- itemType = SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETITEMTYPE, (WPARAM)hItem, 0);
-
- // Update list, making sure that the options are mutually exclusive
- if (itemType == CLCIT_CONTACT) { // A contact
- SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_SETEXTRAIMAGE, (WPARAM)hItem, MAKELPARAM(nm->iColumn, iImage));
- if (iImage && SendDlgItemMessage(hwndDlg,IDC_LIST,CLM_GETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(nm->iColumn?0:1,0))!=0xFF)
- SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_SETEXTRAIMAGE, (WPARAM)hItem, MAKELPARAM(nm->iColumn?0:1, 0));
- }
- else if (itemType == CLCIT_INFO) { // All Contacts
- SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn, iImage);
- if (iImage)
- SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn?0:1, 0);
- }
- else if (itemType == CLCIT_GROUP) { // A group
- hItem = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETNEXTITEM, CLGN_CHILD, (LPARAM)hItem);
- if (hItem) {
- SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn, iImage);
- if (iImage)
- SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn?0:1, 0);
- }
- }
- // Update the all/none icons
- SetListGroupIcons(GetDlgItem(hwndDlg, IDC_LIST), (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETNEXTITEM, CLGN_ROOT, 0), hItemAll, NULL);
-
- // Activate Apply button
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- }
-*/
- }
- return TRUE;
- }
+ ResetListOptions(GetDlgItem(hwnd, IDC_LIST));
+ break;
+ /*
+ case NM_CLICK:
+ { HANDLE hItem;
+ NMCLISTCONTROL *nm=(NMCLISTCONTROL*)lParam;
+ DWORD hitFlags;
+ int iImage;
+ int itemType;
+
+ // Make sure we have an extra column
+ if (nm->iColumn == -1)
+ break;
+
+ // Find clicked item
+ hItem = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_HITTEST, (WPARAM)&hitFlags, MAKELPARAM(nm->pt.x,nm->pt.y));
+ // Nothing was clicked
+ if (hItem == NULL) break;
+ // It was not a visbility icon
+ if (!(hitFlags & CLCHT_ONITEMEXTRA)) break;
+
+ // Get image in clicked column (0=none, 1=visible, 2=invisible)
+ iImage = SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETEXTRAIMAGE, (WPARAM)hItem, MAKELPARAM(nm->iColumn, 0));
+ if (iImage == 0)
+ iImage=nm->iColumn + 1;
+ else
+ if (iImage == 1 || iImage == 2)
+ iImage = 0;
+
+ // Get item type (contact, group, etc...)
+ itemType = SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETITEMTYPE, (WPARAM)hItem, 0);
+
+ // Update list, making sure that the options are mutually exclusive
+ if (itemType == CLCIT_CONTACT) { // A contact
+ SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_SETEXTRAIMAGE, (WPARAM)hItem, MAKELPARAM(nm->iColumn, iImage));
+ if (iImage && SendDlgItemMessage(hwndDlg,IDC_LIST,CLM_GETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(nm->iColumn?0:1,0))!=0xFF)
+ SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_SETEXTRAIMAGE, (WPARAM)hItem, MAKELPARAM(nm->iColumn?0:1, 0));
+ }
+ else if (itemType == CLCIT_INFO) { // All Contacts
+ SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn, iImage);
+ if (iImage)
+ SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn?0:1, 0);
+ }
+ else if (itemType == CLCIT_GROUP) { // A group
+ hItem = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETNEXTITEM, CLGN_CHILD, (LPARAM)hItem);
+ if (hItem) {
+ SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn, iImage);
+ if (iImage)
+ SetAllChildIcons(GetDlgItem(hwndDlg, IDC_LIST), hItem, nm->iColumn?0:1, 0);
+ }
+ }
+ // Update the all/none icons
+ SetListGroupIcons(GetDlgItem(hwndDlg, IDC_LIST), (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETNEXTITEM, CLGN_ROOT, 0), hItemAll, NULL);
+
+ // Activate Apply button
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+ */
}
- break;
+ return TRUE;
+ }
+ }
+ break;
}
return FALSE;
}
diff --git a/plugins/NewStory/src/options.cpp b/plugins/NewStory/src/options.cpp
index fb5283223a..c968da49e3 100644
--- a/plugins/NewStory/src/options.cpp
+++ b/plugins/NewStory/src/options.cpp
@@ -23,139 +23,138 @@ BOOL CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
static int OptionsInitialize(WPARAM wParam, LPARAM lParam)
{
OPTIONSDIALOGPAGE odp = { 0 };
- odp.cbSize = sizeof(odp);
odp.position = 100000000;
- odp.hInstance = hInst;
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
- odp.pszTitle = Translate("Newstory");
-// odp.pszGroup = Translate("PopUps");
- odp.groupPosition = 910000000;
- odp.flags=ODPF_BOLDGROUPS;
+ odp.szTitle.w = TranslateT("Newstory");
+ // odp.pszGroup = Translate("PopUps");
+ odp.position = 910000000;
+ odp.flags = ODPF_BOLDGROUPS;
odp.pfnDlgProc = OptionsDlgProc;
- CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp);
+ g_plugin.addOptions(wParam, &odp);
return 0;
}
static void ThemeDialogBackground(HWND hwnd) {
- if (IsWinVerXPPlus()) {
+ //if (IsWinVerXPPlus())
+ {
static HMODULE hThemeAPI = NULL;
if (!hThemeAPI) hThemeAPI = GetModuleHandle(_T("uxtheme"));
if (hThemeAPI) {
- HRESULT (STDAPICALLTYPE *MyEnableThemeDialogTexture)(HWND,DWORD) = (HRESULT (STDAPICALLTYPE*)(HWND,DWORD))GetProcAddress(hThemeAPI,"EnableThemeDialogTexture");
+ HRESULT(STDAPICALLTYPE *MyEnableThemeDialogTexture)(HWND, DWORD) = (HRESULT(STDAPICALLTYPE*)(HWND, DWORD))GetProcAddress(hThemeAPI, "EnableThemeDialogTexture");
if (MyEnableThemeDialogTexture)
- MyEnableThemeDialogTexture(hwnd,0x00000002|0x00000004); //0x00000002|0x00000004=ETDT_ENABLETAB
+ MyEnableThemeDialogTexture(hwnd, 0x00000002 | 0x00000004); //0x00000002|0x00000004=ETDT_ENABLETAB
}
}
}
-BOOL CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch(msg)
+BOOL CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg)
{
- case WM_INITDIALOG:
- {
- TCITEM tci;
- RECT rc;
-
- tci.mask = TCIF_PARAM|TCIF_TEXT;
- tci.lParam = (LPARAM)CreateDialog(hInst,MAKEINTRESOURCE(IDD_OPT_PASSWORDS),GetDlgItem(hwnd, IDC_TAB),OptPasswordsDlgProc);
- tci.pszText = TranslateT("Passwords (not ready yet)");
- if (tci.lParam) TabCtrl_InsertItem(GetDlgItem(hwnd,IDC_TAB),0,&tci);
- GetClientRect(GetDlgItem(hwnd, IDC_TAB), &rc);
- TabCtrl_AdjustRect(GetDlgItem(hwnd, IDC_TAB), FALSE, &rc);
- ThemeDialogBackground((HWND)tci.lParam);
- MoveWindow((HWND)tci.lParam, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
- ShowWindow((HWND)tci.lParam,(OptShowPage==2)?SW_SHOW:SW_HIDE);
-
- tci.mask = TCIF_PARAM|TCIF_TEXT;
- tci.lParam = (LPARAM)CreateDialog(hInst,MAKEINTRESOURCE(IDD_OPT_TEMPLATES),GetDlgItem(hwnd, IDC_TAB),OptTemplatesDlgProc);
- tci.pszText = TranslateT("Templates");
- if (tci.lParam) TabCtrl_InsertItem(GetDlgItem(hwnd,IDC_TAB),0,&tci);
- GetClientRect(GetDlgItem(hwnd, IDC_TAB), &rc);
- TabCtrl_AdjustRect(GetDlgItem(hwnd, IDC_TAB), FALSE, &rc);
- ThemeDialogBackground((HWND)tci.lParam);
- MoveWindow((HWND)tci.lParam, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
- ShowWindow((HWND)tci.lParam,(OptShowPage==1)?SW_SHOW:SW_HIDE);
-
- tci.mask = TCIF_PARAM|TCIF_TEXT;
- tci.lParam = (LPARAM)CreateDialog(hInst,MAKEINTRESOURCE(IDD_OPT_GENERAL),GetDlgItem(hwnd, IDC_TAB), 0);
- tci.pszText = TranslateT("General");
- if (tci.lParam) TabCtrl_InsertItem(GetDlgItem(hwnd,IDC_TAB),0,&tci);
- GetClientRect(GetDlgItem(hwnd, IDC_TAB), &rc);
- TabCtrl_AdjustRect(GetDlgItem(hwnd, IDC_TAB), FALSE, &rc);
- ThemeDialogBackground((HWND)tci.lParam);
- MoveWindow((HWND)tci.lParam, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
- ShowWindow((HWND)tci.lParam,(OptShowPage==0)?SW_SHOW:SW_HIDE);
-
- TabCtrl_SetCurSel(GetDlgItem(hwnd, IDC_TAB), OptShowPage);
- OptShowPage = 0;
- return FALSE;
- }
-
- case PSM_CHANGED:
- {
- SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
- break;
- }
+ case WM_INITDIALOG:
+ {
+ TCITEM tci;
+ RECT rc;
+
+ tci.mask = TCIF_PARAM | TCIF_TEXT;
+ tci.lParam = (LPARAM)CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_OPT_PASSWORDS), GetDlgItem(hwnd, IDC_TAB), OptPasswordsDlgProc);
+ tci.pszText = TranslateT("Passwords (not ready yet)");
+ if (tci.lParam) TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB), 0, &tci);
+ GetClientRect(GetDlgItem(hwnd, IDC_TAB), &rc);
+ TabCtrl_AdjustRect(GetDlgItem(hwnd, IDC_TAB), FALSE, &rc);
+ ThemeDialogBackground((HWND)tci.lParam);
+ MoveWindow((HWND)tci.lParam, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE);
+ ShowWindow((HWND)tci.lParam, (OptShowPage == 2) ? SW_SHOW : SW_HIDE);
+
+ tci.mask = TCIF_PARAM | TCIF_TEXT;
+ tci.lParam = (LPARAM)CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_OPT_TEMPLATES), GetDlgItem(hwnd, IDC_TAB), OptTemplatesDlgProc);
+ tci.pszText = TranslateT("Templates");
+ if (tci.lParam) TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB), 0, &tci);
+ GetClientRect(GetDlgItem(hwnd, IDC_TAB), &rc);
+ TabCtrl_AdjustRect(GetDlgItem(hwnd, IDC_TAB), FALSE, &rc);
+ ThemeDialogBackground((HWND)tci.lParam);
+ MoveWindow((HWND)tci.lParam, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE);
+ ShowWindow((HWND)tci.lParam, (OptShowPage == 1) ? SW_SHOW : SW_HIDE);
+
+ tci.mask = TCIF_PARAM | TCIF_TEXT;
+ tci.lParam = (LPARAM)CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_OPT_GENERAL), GetDlgItem(hwnd, IDC_TAB), 0);
+ tci.pszText = TranslateT("General");
+ if (tci.lParam) TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB), 0, &tci);
+ GetClientRect(GetDlgItem(hwnd, IDC_TAB), &rc);
+ TabCtrl_AdjustRect(GetDlgItem(hwnd, IDC_TAB), FALSE, &rc);
+ ThemeDialogBackground((HWND)tci.lParam);
+ MoveWindow((HWND)tci.lParam, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE);
+ ShowWindow((HWND)tci.lParam, (OptShowPage == 0) ? SW_SHOW : SW_HIDE);
+
+ TabCtrl_SetCurSel(GetDlgItem(hwnd, IDC_TAB), OptShowPage);
+ OptShowPage = 0;
+ return FALSE;
+ }
- case WM_DESTROY:
+ case PSM_CHANGED:
+ {
+ SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
+ break;
+ }
+
+ case WM_DESTROY:
+ {
+ OptShowPage = 0;
+ break;
+ }
+
+ case WM_NOTIFY:
+ {
+ switch (((LPNMHDR)lParam)->idFrom)
{
- OptShowPage = 0;
+ case 0:
+ {
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case PSN_RESET:
+ case PSN_APPLY:
+ {
+ TCITEM tci;
+ int i, count;
+ tci.mask = TCIF_PARAM;
+ count = TabCtrl_GetItemCount(GetDlgItem(hwnd, IDC_TAB));
+ for (i = 0; i < count; i++)
+ {
+ TabCtrl_GetItem(GetDlgItem(hwnd, IDC_TAB), i, &tci);
+ SendMessage((HWND)tci.lParam, WM_NOTIFY, wParam, lParam);
+ }
+ break;
+ }
+ }
break;
}
- case WM_NOTIFY:
+ case IDC_TAB:
{
- switch(((LPNMHDR)lParam)->idFrom)
- {
- case 0:
- {
- switch (((LPNMHDR)lParam)->code)
- {
- case PSN_RESET:
- case PSN_APPLY:
- {
- TCITEM tci;
- int i,count;
- tci.mask = TCIF_PARAM;
- count = TabCtrl_GetItemCount(GetDlgItem(hwnd,IDC_TAB));
- for (i=0;i<count;i++)
- {
- TabCtrl_GetItem(GetDlgItem(hwnd,IDC_TAB),i,&tci);
- SendMessage((HWND)tci.lParam,WM_NOTIFY,wParam,lParam);
- }
- break;
- }
- }
- break;
- }
-
- case IDC_TAB:
- {
- switch (((LPNMHDR)lParam)->code)
- {
- case TCN_SELCHANGING:
- {
- TCITEM tci;
- tci.mask = TCIF_PARAM;
- TabCtrl_GetItem(GetDlgItem(hwnd,IDC_TAB),TabCtrl_GetCurSel(GetDlgItem(hwnd,IDC_TAB)),&tci);
- ShowWindow((HWND)tci.lParam,SW_HIDE);
- break;
- }
- case TCN_SELCHANGE:
- {
- TCITEM tci;
- tci.mask = TCIF_PARAM;
- TabCtrl_GetItem(GetDlgItem(hwnd,IDC_TAB),TabCtrl_GetCurSel(GetDlgItem(hwnd,IDC_TAB)),&tci);
- ShowWindow((HWND)tci.lParam,SW_SHOW);
- break;
- }
- }
- break;
- }
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case TCN_SELCHANGING:
+ {
+ TCITEM tci;
+ tci.mask = TCIF_PARAM;
+ TabCtrl_GetItem(GetDlgItem(hwnd, IDC_TAB), TabCtrl_GetCurSel(GetDlgItem(hwnd, IDC_TAB)), &tci);
+ ShowWindow((HWND)tci.lParam, SW_HIDE);
+ break;
+ }
+ case TCN_SELCHANGE:
+ {
+ TCITEM tci;
+ tci.mask = TCIF_PARAM;
+ TabCtrl_GetItem(GetDlgItem(hwnd, IDC_TAB), TabCtrl_GetCurSel(GetDlgItem(hwnd, IDC_TAB)), &tci);
+ ShowWindow((HWND)tci.lParam, SW_SHOW);
+ break;
+ }
}
break;
}
+ }
+ break;
+ }
}
return FALSE;
-}
+}
diff --git a/plugins/NewStory/src/password.cpp b/plugins/NewStory/src/password.cpp
index bd49cbf653..0924037c69 100644
--- a/plugins/NewStory/src/password.cpp
+++ b/plugins/NewStory/src/password.cpp
@@ -2,83 +2,67 @@
struct PasswordData
{
- HANDLE hContact;
+ MCONTACT hContact;
int attempt;
};
-bool CheckPassword(HANDLE hContact, char *password)
+bool CheckPassword(MCONTACT hContact, char *password)
{
- md5_state_t ms;
- md5_byte_t digest[16];
- md5_init(&ms);
- md5_append(&ms, (const unsigned char *)password, lstrlenA(password));
- md5_finish(&ms, digest);
+ mir_md5_state_t ms;
+ BYTE digest[16];
+ mir_md5_init(&ms);
+ mir_md5_append(&ms, (const unsigned char *)password, lstrlenA(password));
+ mir_md5_finish(&ms, digest);
DBVARIANT dbv;
- DBCONTACTGETSETTING dbcgs;
- dbcgs.szModule = MODULENAME;
- dbcgs.szSetting = "password";
- dbcgs.pValue = &dbv;
- CallService(MS_DB_CONTACT_GETSETTING, (WPARAM)hContact, (LPARAM)&dbcgs);
- if (dbv.type != DBVT_BLOB)
- {
- CallService(MS_DB_CONTACT_FREEVARIANT, 0, (LPARAM)&dbv);
+ db_get(hContact, MODULENAME, "password", &dbv);
+ if (dbv.type != DBVT_BLOB) {
+ db_free(&dbv);
return true;
- } else
- {
- if (dbv.cpbVal != 16)
- {
- CallService(MS_DB_CONTACT_FREEVARIANT, 0, (LPARAM)&dbv);
+ }
+ else {
+ if (dbv.cpbVal != 16) {
+ db_free(&dbv);
return false;
}
- for (int i = 0; i < 16; i++)
- if (dbv.pbVal[i] != digest[i])
- {
- CallService(MS_DB_CONTACT_FREEVARIANT, 0, (LPARAM)&dbv);
+ for (int i = 0; i < 16; i++) {
+ if (dbv.pbVal[i] != digest[i]) {
+ db_free(&dbv);
return false;
}
+ }
- CallService(MS_DB_CONTACT_FREEVARIANT, 0, (LPARAM)&dbv);
+ db_free(&dbv);
return true;
}
}
-void SetPassword(HANDLE hContact, char *password)
+void SetPassword(MCONTACT hContact, char *password)
{
- if (!password || !*password)
- {
- DBCONTACTGETSETTING dbcgs;
- dbcgs.szModule = MODULENAME;
- dbcgs.szSetting = "password";
- CallService(MS_DB_CONTACT_DELETESETTING, (WPARAM)hContact, (LPARAM)&dbcgs);
+ if (!password || !*password) {
+ db_unset(hContact, MODULENAME, "password");
return;
}
- md5_state_t ms;
- md5_byte_t digest[16];
- md5_init(&ms);
- md5_append(&ms, (const unsigned char *)password, lstrlenA(password));
- md5_finish(&ms, digest);
+ mir_md5_state_t ms;
+ BYTE digest[16];
+ mir_md5_init(&ms);
+ mir_md5_append(&ms, (const unsigned char *)password, lstrlenA(password));
+ mir_md5_finish(&ms, digest);
- DBCONTACTWRITESETTING dbcws;
- dbcws.szModule = MODULENAME;
- dbcws.szSetting = "password";
- dbcws.value.type = DBVT_BLOB;
- dbcws.value.cpbVal = 16;
- dbcws.value.pbVal = (PBYTE)digest;
- CallService(MS_DB_CONTACT_WRITESETTING, (WPARAM)hContact, (LPARAM)&dbcws);
+ db_set_blob(hContact, MODULENAME, "password", (PBYTE)digest, 16);
}
int CALLBACK PasswordDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
PasswordData *data = (PasswordData *)GetWindowLong(hwnd, GWL_USERDATA);
- switch (msg)
+ switch (msg)
{
case WM_INITDIALOG:
{
data = new PasswordData;
data->attempt = 0;
- data->hContact = (HANDLE)lParam;
+ data->hContact = (MCONTACT)lParam;
SetWindowLong(hwnd, GWL_USERDATA, (LONG)data);
RECT rc, rcMe;
@@ -148,22 +132,17 @@ int CALLBACK PasswordDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
return FALSE;
}
-bool AskPassword(HANDLE hContact)
+bool AskPassword(MCONTACT hContact)
{
DBVARIANT dbv;
- DBCONTACTGETSETTING dbcgs;
- dbcgs.szModule = MODULENAME;
- dbcgs.szSetting = "password";
- dbcgs.pValue = &dbv;
- CallService(MS_DB_CONTACT_GETSETTING, (WPARAM)hContact, (LPARAM)&dbcgs);
- if (dbv.type != DBVT_BLOB)
- {
- CallService(MS_DB_CONTACT_FREEVARIANT, 0, (LPARAM)&dbv);
+ db_get(hContact, MODULENAME, "password", &dbv);
+ if (dbv.type != DBVT_BLOB) {
+ db_free(&dbv);
return true;
}
- CallService(MS_DB_CONTACT_FREEVARIANT, 0, (LPARAM)&dbv);
+ db_free(&dbv);
- if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_PASSWORD), 0, PasswordDlgProc, (LPARAM)hContact))
+ if (DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_PASSWORD), 0, PasswordDlgProc, (LPARAM)hContact))
return true;
return false;
}
@@ -171,12 +150,12 @@ bool AskPassword(HANDLE hContact)
int CALLBACK ChangePasswordDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
- HANDLE hContact = (HANDLE)GetWindowLong(hwnd, GWL_USERDATA);
+ MCONTACT hContact = (MCONTACT)GetWindowLong(hwnd, GWL_USERDATA);
switch (msg)
{
case WM_INITDIALOG:
{
- hContact = (HANDLE)lParam;
+ hContact = (MCONTACT)lParam;
SetWindowLong(hwnd, GWL_USERDATA, (LONG)hContact);
// RECT rc, rcMe;
@@ -254,5 +233,5 @@ int CALLBACK ChangePasswordDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
void ChangePassword(HWND hwnd, HANDLE hContact)
{
- DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_CHANGEPASSWORD), hwnd, ChangePasswordDlgProc, (LPARAM)hContact);
+ DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CHANGEPASSWORD), hwnd, ChangePasswordDlgProc, (LPARAM)hContact);
}
diff --git a/plugins/NewStory/src/password.h b/plugins/NewStory/src/password.h
index 592cf137ec..60dfc1b3df 100644
--- a/plugins/NewStory/src/password.h
+++ b/plugins/NewStory/src/password.h
@@ -1,8 +1,8 @@
#ifndef __password_h__
#define __password_h__
-bool CheckPassword(HANDLE hContact, char *password);
-bool AskPassword(HANDLE hContact);
-void ChangePassword(HWND hwnd, HANDLE hContact);
+bool CheckPassword(MCONTACT hContact, char *password);
+bool AskPassword(MCONTACT hContact);
+void ChangePassword(HWND hwnd, MCONTACT hContact);
#endif // __password_h__ \ No newline at end of file
diff --git a/plugins/NewStory/src/stdafx.h b/plugins/NewStory/src/stdafx.h
index c5e790b543..b9e774aa86 100644
--- a/plugins/NewStory/src/stdafx.h
+++ b/plugins/NewStory/src/stdafx.h
@@ -48,6 +48,7 @@ Boston, MA 02111-1307, USA.
#include "m_userinfo.h"
#include "m_icolib.h"
#include "m_fontservice.h"
+#include "m_text.h"
#include "m_smileyadd.h"
//#include "m_nconvers.h"
diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp
index 461bbce7fb..199b009458 100644
--- a/plugins/NewStory/src/templates.cpp
+++ b/plugins/NewStory/src/templates.cpp
@@ -19,7 +19,7 @@ void vfAdded(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::Item
void vfDeleted(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData *item);
void vfOther(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData *item);
-TemplateInfo templates[TPL_COUNT] =
+TemplateInfo templates[TPL_COUNT] =
{
{ "tpl/interface/title", _T("Interface"), ICO_NEWSTORY, _T("Window Title"),
_T("%N's Newstory [%c messages total]"), 0, 0,
@@ -85,14 +85,15 @@ void LoadTemplates()
{
for (int i = 0; i < TPL_COUNT; i++)
{
- DBVARIANT dbv = {0};
+ DBVARIANT dbv = { 0 };
db_get_ws(0, MODULENAME, templates[i].setting, &dbv);
if (templates[i].value)
free(templates[i].value);
if (dbv.pwszVal)
{
templates[i].value = _tcsdup(dbv.pwszVal);
- } else
+ }
+ else
{
templates[i].value = 0;
}
@@ -123,20 +124,21 @@ TCHAR *TplFormatStringEx(int tpl, TCHAR *sztpl, MCONTACT hContact, HistoryArray:
if (templates[tpl].vf[i])
templates[tpl].vf[i](VFM_VARS, &vars, hContact, item);
- TCHAR *buf = (TCHAR *)malloc(sizeof(TCHAR)*(TplMeasureVars(&vars, sztpl)+1));
+ TCHAR *buf = (TCHAR *)malloc(sizeof(TCHAR)*(TplMeasureVars(&vars, sztpl) + 1));
TCHAR *bufptr = buf;
for (TCHAR *p = sztpl; *p; p++)
{
if (*p == '%')
{
- TCHAR *var = TplGetVar(&vars, (char)(p[1]&0xff));
+ TCHAR *var = TplGetVar(&vars, (char)(p[1] & 0xff));
if (var)
{
lstrcpy(bufptr, var);
bufptr += lstrlen(var);
}
p++;
- } else
+ }
+ else
{
*bufptr++ = *p;
}
@@ -164,20 +166,21 @@ TCHAR *TplFormatString(int tpl, MCONTACT hContact, HistoryArray::ItemData *item)
if (templates[tpl].vf[i])
templates[tpl].vf[i](VFM_VARS, &vars, hContact, item);
- TCHAR *buf = (TCHAR *)malloc(sizeof(TCHAR)*(TplMeasureVars(&vars, templates[tpl].value)+1));
+ TCHAR *buf = (TCHAR *)malloc(sizeof(TCHAR)*(TplMeasureVars(&vars, templates[tpl].value) + 1));
TCHAR *bufptr = buf;
for (TCHAR *p = templates[tpl].value; *p; p++)
{
if (*p == '%')
{
- TCHAR *var = TplGetVar(&vars, (char)(p[1]&0xff));
+ TCHAR *var = TplGetVar(&vars, (char)(p[1] & 0xff));
if (var)
{
lstrcpy(bufptr, var);
bufptr += lstrlen(var);
}
p++;
- } else
+ }
+ else
{
*bufptr++ = *p;
}
@@ -189,7 +192,7 @@ TCHAR *TplFormatString(int tpl, MCONTACT hContact, HistoryArray::ItemData *item)
// Variable management
void TplInitVars(TemplateVars *vars)
{
- for(int i = 0; i < 256; i++)
+ for (int i = 0; i < 256; i++)
{
vars->val[i] = 0;
vars->del[i] = false;
@@ -198,7 +201,7 @@ void TplInitVars(TemplateVars *vars)
void TplCleanVars(TemplateVars *vars)
{
- for(int i = 0; i < 256; i++)
+ for (int i = 0; i < 256; i++)
if (vars->val[i] && vars->del[i])
{
free(vars->val[i]);
@@ -227,10 +230,11 @@ int TplMeasureVars(TemplateVars *vars, TCHAR *str)
{
if (*p == '%')
{
- TCHAR *var = TplGetVar(vars, (char)(p[1]&0xff));
+ TCHAR *var = TplGetVar(vars, (char)(p[1] & 0xff));
if (var) res += lstrlen(var);
p++;
- } else
+ }
+ else
{
res++;
}
@@ -241,24 +245,24 @@ int TplMeasureVars(TemplateVars *vars, TCHAR *str)
// Loading variables
void vfGlobal(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %%: simply % character
+ // %%: simply % character
TplSetVar(vars, '%', _T("%"), false);
-// %n: line break
+ // %n: line break
TplSetVar(vars, 'n', _T("\x0d\x0a"), false);
-// %M: my nick (not for messages)
+ // %M: my nick (not for messages)
wchar_t *buf = Clist_GetContactDisplayName(0, 0);
TplSetVar(vars, 'M', buf, false);
}
void vfContact(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData *item)
{
-// %N: buddy's nick (not for messages)
+ // %N: buddy's nick (not for messages)
wchar_t *buff = Clist_GetContactDisplayName(hContact, 0);
TplSetVar(vars, 'N', buff, false);
-// %c: event count
+ // %c: event count
TCHAR *buf = new TCHAR[20];
wsprintf(buf, _T("%d"), db_event_count(hContact));
TplSetVar(vars, 'c', buf, false);
@@ -266,10 +270,10 @@ void vfContact(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::It
void vfSystem(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::ItemData *item)
{
-// %N: buddy's nick (not for messages)
+ // %N: buddy's nick (not for messages)
TplSetVar(vars, 'N', /*TranslateTS*/_T("System Event"), false);
-// %c: event count
+ // %c: event count
TCHAR *buf = new TCHAR[20];
wsprintf(buf, _T("%d"), db_event_count(hContact));
TplSetVar(vars, 'c', buf, false);
@@ -280,119 +284,121 @@ void vfEvent(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::Item
HICON hIcon;
TCHAR *s;
-// %U: UIN (contextual, own uin for sent, buddys UIN for received messages)
+ // %U: UIN (contextual, own uin for sent, buddys UIN for received messages)
-// %N: Nickname
+ // %N: Nickname
wchar_t *buff = Clist_GetContactDisplayName(item->dbe.flags&DBEF_SENT ? 0 : (WPARAM)item->hContact, 0);
TplSetVar(vars, 'N', buff, false);
-// %I: Icon
+ // %I: Icon
switch (item->dbe.eventType)
{
- case EVENTTYPE_MESSAGE:
- hIcon = icons[ICO_SENDMSG].hIcon;
- break;
- case EVENTTYPE_FILE:
- hIcon = icons[ICO_FILE].hIcon;
- break;
- case EVENTTYPE_URL:
- hIcon = icons[ICO_URL].hIcon;
- break;
- case EVENTTYPE_STATUSCHANGE:
- hIcon = icons[ICO_SIGNIN].hIcon;
- break;
- default:
- hIcon = icons[ICO_UNKNOWN].hIcon;
- break;
+ case EVENTTYPE_MESSAGE:
+ hIcon = GetIcon(ICO_SENDMSG);
+ break;
+ case EVENTTYPE_FILE:
+ hIcon = GetIcon(ICO_FILE);
+ break;
+ case EVENTTYPE_URL:
+ hIcon = GetIcon(ICO_URL);
+ break;
+ case EVENTTYPE_STATUSCHANGE:
+ hIcon = GetIcon(ICO_SIGNIN);
+ break;
+ default:
+ hIcon = GetIcon(ICO_UNKNOWN);
+ break;
}
- s = (TCHAR *)calloc(64,sizeof(TCHAR));
+ s = (TCHAR *)calloc(64, sizeof(TCHAR));
wsprintf(s, _T("[$hicon=%d$]"), hIcon);
TplSetVar(vars, 'I', s, true);
-// %i: Direction icon
+ // %i: Direction icon
if (item->dbe.flags & DBEF_SENT)
{
- hIcon = icons[ICO_MSGOUT].hIcon;
- } else
+ hIcon = GetIcon(ICO_MSGOUT);
+ }
+ else
{
- hIcon = icons[ICO_MSGIN].hIcon;
+ hIcon = GetIcon(ICO_MSGIN);
}
- s = (TCHAR *)calloc(64,sizeof(TCHAR));
+ s = (TCHAR *)calloc(64, sizeof(TCHAR));
wsprintf(s, _T("[$hicon=%d$]"), hIcon);
TplSetVar(vars, 'i', s, true);
-// %D: direction symbol
+ // %D: direction symbol
if (item->dbe.flags & DBEF_SENT)
{
TplSetVar(vars, 'D', _T("<<"), false);
- } else
+ }
+ else
{
TplSetVar(vars, 'D', _T(">>"), false);
}
-// %t: timestamp
+ // %t: timestamp
TCHAR *buf = (TCHAR *)calloc(100, sizeof(TCHAR));
_tcsftime(buf, 100, _T("%d.%m.%Y, %H:%M"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 't', buf, true);
-// DBTIMETOSTRING tts;
-// tts.cbDest = 100;
-// tts.szFormat = "d, t";
-// tts.szDest = (char *)calloc(100, 1);
-// CallService(MS_DB_TIME_TIMESTAMPTOSTRING, item->dbe.timestamp, (LPARAM)&tts);
-// TplSetVar(vars, 't', tts.szDest, true);
+ // DBTIMETOSTRING tts;
+ // tts.cbDest = 100;
+ // tts.szFormat = "d, t";
+ // tts.szDest = (char *)calloc(100, 1);
+ // CallService(MS_DB_TIME_TIMESTAMPTOSTRING, item->dbe.timestamp, (LPARAM)&tts);
+ // TplSetVar(vars, 't', tts.szDest, true);
-// tts.szFormat = "";
-// tts.szDest = (char *)calloc(100, 1);
-// CallService(MS_DB_TIME_TIMESTAMPTOSTRING, item->dbe.timestamp, (LPARAM)&tts);
-// TplSetVar(vars, 't', tts.szDest, true);
+ // tts.szFormat = "";
+ // tts.szDest = (char *)calloc(100, 1);
+ // CallService(MS_DB_TIME_TIMESTAMPTOSTRING, item->dbe.timestamp, (LPARAM)&tts);
+ // TplSetVar(vars, 't', tts.szDest, true);
-// %h: hour (24 hour format, 0-23)
+ // %h: hour (24 hour format, 0-23)
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%H"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'h', buf, true);
-// %a: hour (12 hour format)
+ // %a: hour (12 hour format)
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%h"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'a', buf, true);
-// %m: minute
+ // %m: minute
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%M"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'm', buf, true);
-// %s: second
+ // %s: second
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%S"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 's', buf, true);
-// %o: month
+ // %o: month
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%m"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'o', buf, true);
-// %d: day of month
+ // %d: day of month
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%d"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'd', buf, true);
-// %y: year
+ // %y: year
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%Y"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'y', buf, true);
-// %w: day of week (Sunday, Monday.. translateable)
+ // %w: day of week (Sunday, Monday.. translateable)
buf = (TCHAR *)calloc(25, sizeof(TCHAR));
_tcsftime(buf, 25, _T("%A"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'w', TranslateW(buf), false);
-// %p: AM/PM symbol
+ // %p: AM/PM symbol
buf = (TCHAR *)calloc(5, sizeof(TCHAR));
_tcsftime(buf, 5, _T("%p"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'p', buf, true);
-// %O: Name of month, translateable
+ // %O: Name of month, translateable
buf = (TCHAR *)calloc(25, sizeof(TCHAR));
_tcsftime(buf, 25, _T("%B"), localtime((time_t *)&item->dbe.timestamp));
TplSetVar(vars, 'O', TranslateW(buf), false);
@@ -400,54 +406,54 @@ void vfEvent(int mode, TemplateVars *vars, MCONTACT hContact, HistoryArray::Item
void vfMessage(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', item->getTBuf(), false);
}
void vfFile(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', item->getTBuf(), false);
-// TplSetVar(vars, 'M', _T("File event"), false);
+ // TplSetVar(vars, 'M', _T("File event"), false);
}
void vfUrl(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', item->getTBuf(), false);
-// TplSetVar(vars, 'M', _T("URL Event"), false);
+ // TplSetVar(vars, 'M', _T("URL Event"), false);
}
void vfSign(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', item->getTBuf(), false);
}
void vfAuth(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', item->getTBuf(), false);
-// TplSetVar(vars, 'M', _T("Auth Rq"), false);
+ // TplSetVar(vars, 'M', _T("Auth Rq"), false);
}
void vfAdded(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', item->getTBuf(), false);
-// TplSetVar(vars, 'M', _T("Added"), false);
+ // TplSetVar(vars, 'M', _T("Added"), false);
}
void vfDeleted(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', item->getTBuf(), false);
-// TplSetVar(vars, 'M', _T("Deleted"), false);
+ // TplSetVar(vars, 'M', _T("Deleted"), false);
}
void vfOther(int mode, TemplateVars *vars, HANDLE hContact, HistoryArray::ItemData *item)
{
-// %M: the message string itself
+ // %M: the message string itself
TplSetVar(vars, 'M', _T("Unknown Event"), false);
}
@@ -458,257 +464,262 @@ BOOL CALLBACK OptTemplatesDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa
static int CurrentTemplate;
switch (msg)
{
- case WM_INITDIALOG:
- {
- CurrentTemplate = -1;
+ case WM_INITDIALOG:
+ {
+ CurrentTemplate = -1;
- HTREEITEM hGroup = 0;
- HTREEITEM hFirst = 0;
+ HTREEITEM hGroup = 0;
+ HTREEITEM hFirst = 0;
- HIMAGELIST himgTree = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 | ILC_MASK,1,1);
- TreeView_SetImageList(GetDlgItem(hwnd, IDC_TEMPLATES), himgTree, TVSIL_NORMAL);
+ HIMAGELIST himgTree = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 | ILC_MASK, 1, 1);
+ TreeView_SetImageList(GetDlgItem(hwnd, IDC_TEMPLATES), himgTree, TVSIL_NORMAL);
- ImageList_AddIcon(himgTree, icons[ICO_TPLGROUP].hIcon);
+ ImageList_AddIcon(himgTree, GetIcon(ICO_TPLGROUP));
- for (int i = 0; i < TPL_COUNT; i++)
+ for (int i = 0; i < TPL_COUNT; i++)
+ {
+ if (!i || lstrcmp(templates[i].group, templates[i - 1].group))
{
- if (!i || lstrcmp(templates[i].group, templates[i-1].group))
- {
- if (hGroup)
- TreeView_Expand(GetDlgItem(hwnd, IDC_TEMPLATES), hGroup, TVE_EXPAND);
-
- TVINSERTSTRUCT tvis;
- tvis.hParent = 0;
- tvis.hInsertAfter = TVI_LAST;
- tvis.item.mask = TVIF_TEXT|TVIF_STATE|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvis.item.state = tvis.item.stateMask = TVIS_BOLD;
- tvis.item.iSelectedImage = tvis.item.iImage = 0;
- tvis.item.pszText = templates[i].group;
- tvis.item.lParam = -1;
- hGroup = TreeView_InsertItem(GetDlgItem(hwnd, IDC_TEMPLATES), &tvis);
-
- if (!hFirst) hFirst = hGroup;
- }
+ if (hGroup)
+ TreeView_Expand(GetDlgItem(hwnd, IDC_TEMPLATES), hGroup, TVE_EXPAND);
TVINSERTSTRUCT tvis;
- tvis.hParent = hGroup;
+ tvis.hParent = 0;
tvis.hInsertAfter = TVI_LAST;
- tvis.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvis.item.pszText = templates[i].title;
- tvis.item.iSelectedImage = tvis.item.iImage =
- ImageList_AddIcon(himgTree, icons[templates[i].icon].hIcon);
- tvis.item.lParam = i;
- TreeView_InsertItem(GetDlgItem(hwnd, IDC_TEMPLATES), &tvis);
+ tvis.item.mask = TVIF_TEXT | TVIF_STATE | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvis.item.state = tvis.item.stateMask = TVIS_BOLD;
+ tvis.item.iSelectedImage = tvis.item.iImage = 0;
+ tvis.item.pszText = templates[i].group;
+ tvis.item.lParam = -1;
+ hGroup = TreeView_InsertItem(GetDlgItem(hwnd, IDC_TEMPLATES), &tvis);
+
+ if (!hFirst) hFirst = hGroup;
}
- if (hGroup)
- TreeView_Expand(GetDlgItem(hwnd, IDC_TEMPLATES), hGroup, TVE_EXPAND);
+ TVINSERTSTRUCT tvis;
+ tvis.hParent = hGroup;
+ tvis.hInsertAfter = TVI_LAST;
+ tvis.item.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvis.item.pszText = templates[i].title;
+ tvis.item.iSelectedImage = tvis.item.iImage =
+ ImageList_AddIcon(himgTree, GetIcon(templates[i].icon));
+ tvis.item.lParam = i;
+ TreeView_InsertItem(GetDlgItem(hwnd, IDC_TEMPLATES), &tvis);
+ }
- TreeView_SelectItem(GetDlgItem(hwnd, IDC_TEMPLATES), hFirst);
- TreeView_EnsureVisible(GetDlgItem(hwnd, IDC_TEMPLATES), hFirst);
+ if (hGroup)
+ TreeView_Expand(GetDlgItem(hwnd, IDC_TEMPLATES), hGroup, TVE_EXPAND);
- SendMessage(GetDlgItem(hwnd, IDC_DISCARD), BUTTONSETASFLATBTN, 0, 0);
- SendMessage(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), BUTTONSETASFLATBTN, 0, 0);
- SendMessage(GetDlgItem(hwnd, IDC_VARHELP), BUTTONSETASFLATBTN, 0, 0);
+ TreeView_SelectItem(GetDlgItem(hwnd, IDC_TEMPLATES), hFirst);
+ TreeView_EnsureVisible(GetDlgItem(hwnd, IDC_TEMPLATES), hFirst);
- SendMessage(GetDlgItem(hwnd, IDC_DISCARD), BUTTONADDTOOLTIP, (WPARAM)Translate("Cancel Edit"), 0);
- SendMessage(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), BUTTONADDTOOLTIP, (WPARAM)Translate("Update Preview"), 0);
- SendMessage(GetDlgItem(hwnd, IDC_VARHELP), BUTTONADDTOOLTIP, (WPARAM)Translate("Help on Variables"), 0);
+ SendMessage(GetDlgItem(hwnd, IDC_DISCARD), BUTTONSETASFLATBTN, 0, 0);
+ SendMessage(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), BUTTONSETASFLATBTN, 0, 0);
+ SendMessage(GetDlgItem(hwnd, IDC_VARHELP), BUTTONSETASFLATBTN, 0, 0);
- SendMessage(GetDlgItem(hwnd, IDC_DISCARD), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_RESET].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_PREVIEW].hIcon);
- SendMessage(GetDlgItem(hwnd, IDC_VARHELP), BM_SETIMAGE, IMAGE_ICON, (LPARAM)icons[ICO_VARHELP].hIcon);
+ SendMessage(GetDlgItem(hwnd, IDC_DISCARD), BUTTONADDTOOLTIP, (WPARAM)Translate("Cancel Edit"), 0);
+ SendMessage(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), BUTTONADDTOOLTIP, (WPARAM)Translate("Update Preview"), 0);
+ SendMessage(GetDlgItem(hwnd, IDC_VARHELP), BUTTONADDTOOLTIP, (WPARAM)Translate("Help on Variables"), 0);
+
+ SendMessage(GetDlgItem(hwnd, IDC_DISCARD), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_RESET));
+ SendMessage(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_PREVIEW));
+ SendMessage(GetDlgItem(hwnd, IDC_VARHELP), BM_SETIMAGE, IMAGE_ICON, (LPARAM)GetIcon(ICO_VARHELP));
+
+ return TRUE;
+ }
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDC_EDITTEMPLATE:
+ {
+ SendMessage(GetParent(GetParent(hwnd)), PSM_CHANGED, 0, 0);
+ }
- return TRUE;
+ case IDC_UPDATEPREVIEW:
+ {
+ if (templates[CurrentTemplate].tmpValue)
+ free(templates[CurrentTemplate].tmpValue);
+ int length = GetWindowTextLength(GetDlgItem(hwnd, IDC_EDITTEMPLATE)) + 1;
+ templates[CurrentTemplate].tmpValue = (TCHAR *)malloc(length * sizeof(TCHAR));
+ GetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].tmpValue, length);
+
+ HistoryArray::ItemData item;
+ item.hContact = db_find_first();
+ while (item.hContact && !item.hEvent)
+ {
+ item.hEvent = db_event_first(item.hContact);
+ if (!item.hEvent)
+ item.hContact = db_find_next(item.hContact);
+ }
+ if (item.hContact && item.hEvent)
+ {
+ item.load(ELM_DATA);
+ TCHAR *preview = TplFormatStringEx(CurrentTemplate, templates[CurrentTemplate].tmpValue, item.hContact, &item);
+ SetWindowText(GetDlgItem(hwnd, IDC_PREVIEW), preview);
+ // SetWindowText(GetDlgItem(hwnd, IDC_GPREVIEW), preview);
+ SetWindowText(GetDlgItem(hwnd, IDC_GPREVIEW), _T("$hit :)"));
+ free(preview);
+ }
+ else
+ {
+ SetWindowText(GetDlgItem(hwnd, IDC_PREVIEW), _T(""));
+ SetWindowText(GetDlgItem(hwnd, IDC_GPREVIEW), _T(""));
+ }
+ break;
}
- case WM_COMMAND:
- switch (LOWORD(wParam))
+ case IDC_DISCARD:
+ {
+ if (templates[CurrentTemplate].tmpValue)
+ free(templates[CurrentTemplate].tmpValue);
+ templates[CurrentTemplate].tmpValue = 0;
+ if (templates[CurrentTemplate].value)
{
- case IDC_EDITTEMPLATE:
- {
- SendMessage(GetParent(GetParent(hwnd)), PSM_CHANGED, 0, 0);
- }
+ SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].value);
+ }
+ else
+ {
+ SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].defvalue);
+ }
+ PostMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_UPDATEPREVIEW, 0), 0);
+ break;
+ }
+ }
+ break;
- case IDC_UPDATEPREVIEW:
+ case WM_NOTIFY:
+ switch (((LPNMHDR)lParam)->idFrom)
+ {
+ case 0:
+ {
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case PSN_RESET:
+ {
+ for (int i = 0; i < TPL_COUNT; i++)
{
- if (templates[CurrentTemplate].tmpValue)
- free(templates[CurrentTemplate].tmpValue);
- int length = GetWindowTextLength(GetDlgItem(hwnd, IDC_EDITTEMPLATE))+1;
- templates[CurrentTemplate].tmpValue = (TCHAR *)malloc(length*sizeof(TCHAR));
- GetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].tmpValue, length);
-
- HistoryArray::ItemData item;
- item.hContact = db_find_first();
- while (item.hContact && !item.hEvent)
+ if (templates[i].tmpValue)
{
- item.hEvent = db_event_first(item.hContact);
- if (!item.hEvent)
- item.hContact = db_find_next(item.hContact);
+ if (templates[i].tmpValue)
+ free(templates[i].tmpValue);
}
- if (item.hContact && item.hEvent)
- {
- item.load(ELM_DATA);
- TCHAR *preview = TplFormatStringEx(CurrentTemplate, templates[CurrentTemplate].tmpValue, item.hContact, &item);
- SetWindowText(GetDlgItem(hwnd, IDC_PREVIEW), preview);
-// SetWindowText(GetDlgItem(hwnd, IDC_GPREVIEW), preview);
- SetWindowText(GetDlgItem(hwnd, IDC_GPREVIEW), _T("$hit :)"));
- free(preview);
- } else
+ }
+ return TRUE;
+ }
+
+ case PSN_APPLY:
+ {
+ for (int i = 0; i < TPL_COUNT; i++)
+ {
+ if (templates[i].tmpValue)
{
- SetWindowText(GetDlgItem(hwnd, IDC_PREVIEW), _T(""));
- SetWindowText(GetDlgItem(hwnd, IDC_GPREVIEW), _T(""));
+ if (templates[i].value)
+ free(templates[i].value);
+ templates[i].value = templates[i].tmpValue;
+ templates[i].tmpValue = 0;
}
+ }
+ SaveTemplates();
+ return TRUE;
+ }
+ }
+ break;
+ }
+
+ case IDC_TEMPLATES:
+ {
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case TVN_SELCHANGED:
+ case TVN_SELCHANGING:
+ {
+ LPNMTREEVIEW lpnmtv = (LPNMTREEVIEW)lParam;
+
+ TVITEM tvi;
+ tvi.hItem = TreeView_GetSelection(GetDlgItem(hwnd, IDC_TEMPLATES));
+ tvi.mask = TVIF_PARAM;
+ TreeView_GetItem(GetDlgItem(hwnd, IDC_TEMPLATES), &tvi);
+
+ if ((tvi.lParam < 0) || (tvi.lParam >= TPL_COUNT))
+ {
+ EnableWindow(GetDlgItem(hwnd, IDC_EDITTEMPLATE), FALSE);
+ EnableWindow(GetDlgItem(hwnd, IDC_GPREVIEW), FALSE);
+ EnableWindow(GetDlgItem(hwnd, IDC_PREVIEW), FALSE);
+ EnableWindow(GetDlgItem(hwnd, IDC_DISCARD), FALSE);
+ EnableWindow(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), FALSE);
+ EnableWindow(GetDlgItem(hwnd, IDC_VARHELP), FALSE);
+ /* HTREEITEM hItem = TreeView_GetChild(GetDlgItem(hwnd, IDC_TEMPLATES), tvi.hItem);
+ if (hItem)
+ {
+ TreeView_Expand(GetDlgItem(hwnd, IDC_TEMPLATES), tvi.hItem, TVE_EXPAND);
+ TreeView_SelectItem(GetDlgItem(hwnd, IDC_TEMPLATES), hItem);
+ }*/
break;
}
+ else
+ {
+ EnableWindow(GetDlgItem(hwnd, IDC_EDITTEMPLATE), TRUE);
+ EnableWindow(GetDlgItem(hwnd, IDC_GPREVIEW), TRUE);
+ EnableWindow(GetDlgItem(hwnd, IDC_PREVIEW), TRUE);
+ EnableWindow(GetDlgItem(hwnd, IDC_DISCARD), TRUE);
+ EnableWindow(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), TRUE);
+ EnableWindow(GetDlgItem(hwnd, IDC_VARHELP), TRUE);
+ }
+
+ if ((lpnmtv->itemOld.mask&TVIF_HANDLE) && lpnmtv->itemOld.hItem && (lpnmtv->itemOld.hItem != lpnmtv->itemNew.hItem) && (lpnmtv->itemOld.lParam >= 0) && (lpnmtv->itemOld.lParam < TPL_COUNT))
+ {
+ if (templates[lpnmtv->itemOld.lParam].tmpValue)
+ free(templates[lpnmtv->itemOld.lParam].tmpValue);
+ int length = GetWindowTextLength(GetDlgItem(hwnd, IDC_EDITTEMPLATE)) + 1;
+ templates[lpnmtv->itemOld.lParam].tmpValue = (TCHAR *)malloc(length * sizeof(TCHAR));
+ GetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[lpnmtv->itemOld.lParam].tmpValue, length);
+ }
+
+ CurrentTemplate = tvi.lParam;
- case IDC_DISCARD:
+ if (templates[CurrentTemplate].tmpValue)
{
- if (templates[CurrentTemplate].tmpValue)
- free(templates[CurrentTemplate].tmpValue);
- templates[CurrentTemplate].tmpValue = 0;
+ SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].tmpValue);
+ }
+ else
if (templates[CurrentTemplate].value)
{
SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].value);
- } else
+ }
+ else
{
SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].defvalue);
}
- PostMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_UPDATEPREVIEW,0), 0);
- break;
- }
- }
- break;
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->idFrom)
+ PostMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_UPDATEPREVIEW, 0), 0);
+
+ break;
+ }
+ case TVN_KEYDOWN:
+ case NM_CLICK:
{
- case 0:
- {
- switch (((LPNMHDR)lParam)->code)
- {
- case PSN_RESET:
- {
- for (int i = 0; i < TPL_COUNT; i++)
- {
- if (templates[i].tmpValue)
- {
- if (templates[i].tmpValue)
- free(templates[i].tmpValue);
- }
- }
- return TRUE;
- }
-
- case PSN_APPLY:
- {
- for (int i = 0; i < TPL_COUNT; i++)
- {
- if (templates[i].tmpValue)
- {
- if (templates[i].value)
- free(templates[i].value);
- templates[i].value = templates[i].tmpValue;
- templates[i].tmpValue = 0;
- }
- }
- SaveTemplates();
- return TRUE;
- }
- }
- break;
- }
+ SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
+ break;
+ }
- case IDC_TEMPLATES:
- {
- switch (((LPNMHDR)lParam)->code)
- {
- case TVN_SELCHANGED:
- case TVN_SELCHANGING:
- {
- LPNMTREEVIEW lpnmtv = (LPNMTREEVIEW)lParam;
-
- TVITEM tvi;
- tvi.hItem = TreeView_GetSelection(GetDlgItem(hwnd, IDC_TEMPLATES));
- tvi.mask = TVIF_PARAM;
- TreeView_GetItem(GetDlgItem(hwnd, IDC_TEMPLATES), &tvi);
-
- if ((tvi.lParam < 0) || (tvi.lParam >= TPL_COUNT))
- {
- EnableWindow(GetDlgItem(hwnd, IDC_EDITTEMPLATE), FALSE);
- EnableWindow(GetDlgItem(hwnd, IDC_GPREVIEW), FALSE);
- EnableWindow(GetDlgItem(hwnd, IDC_PREVIEW), FALSE);
- EnableWindow(GetDlgItem(hwnd, IDC_DISCARD), FALSE);
- EnableWindow(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), FALSE);
- EnableWindow(GetDlgItem(hwnd, IDC_VARHELP), FALSE);
-/* HTREEITEM hItem = TreeView_GetChild(GetDlgItem(hwnd, IDC_TEMPLATES), tvi.hItem);
- if (hItem)
- {
- TreeView_Expand(GetDlgItem(hwnd, IDC_TEMPLATES), tvi.hItem, TVE_EXPAND);
- TreeView_SelectItem(GetDlgItem(hwnd, IDC_TEMPLATES), hItem);
- }*/
- break;
- } else
- {
- EnableWindow(GetDlgItem(hwnd, IDC_EDITTEMPLATE), TRUE);
- EnableWindow(GetDlgItem(hwnd, IDC_GPREVIEW), TRUE);
- EnableWindow(GetDlgItem(hwnd, IDC_PREVIEW), TRUE);
- EnableWindow(GetDlgItem(hwnd, IDC_DISCARD), TRUE);
- EnableWindow(GetDlgItem(hwnd, IDC_UPDATEPREVIEW), TRUE);
- EnableWindow(GetDlgItem(hwnd, IDC_VARHELP), TRUE);
- }
-
- if ((lpnmtv->itemOld.mask&TVIF_HANDLE) && lpnmtv->itemOld.hItem && (lpnmtv->itemOld.hItem != lpnmtv->itemNew.hItem) && (lpnmtv->itemOld.lParam >= 0) && (lpnmtv->itemOld.lParam < TPL_COUNT))
- {
- if (templates[lpnmtv->itemOld.lParam].tmpValue)
- free(templates[lpnmtv->itemOld.lParam].tmpValue);
- int length = GetWindowTextLength(GetDlgItem(hwnd, IDC_EDITTEMPLATE))+1;
- templates[lpnmtv->itemOld.lParam].tmpValue = (TCHAR *)malloc(length*sizeof(TCHAR));
- GetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[lpnmtv->itemOld.lParam].tmpValue, length);
- }
-
- CurrentTemplate = tvi.lParam;
-
- if (templates[CurrentTemplate].tmpValue)
- {
- SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].tmpValue);
- } else
- if (templates[CurrentTemplate].value)
- {
- SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].value);
- } else
- {
- SetWindowText(GetDlgItem(hwnd, IDC_EDITTEMPLATE), templates[CurrentTemplate].defvalue);
- }
-
- PostMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_UPDATEPREVIEW,0), 0);
-
- break;
- }
- case TVN_KEYDOWN:
- case NM_CLICK:
- {
- SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
- break;
- }
-
-/*
- {
- TVHITTESTINFO hti;
- hti.pt.x = (short)LOWORD(GetMessagePos());
- hti.pt.y = (short)HIWORD(GetMessagePos());
- ScreenToClient(((LPNMHDR)lParam)->hwndFrom,&hti.pt);
- if(TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom,&hti))
- if(hti.flags&TVHT_ONITEMSTATEICON)
- SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
- }
-*/
+ /*
+ {
+ TVHITTESTINFO hti;
+ hti.pt.x = (short)LOWORD(GetMessagePos());
+ hti.pt.y = (short)HIWORD(GetMessagePos());
+ ScreenToClient(((LPNMHDR)lParam)->hwndFrom,&hti.pt);
+ if(TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom,&hti))
+ if(hti.flags&TVHT_ONITEMSTATEICON)
+ SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
+ }
+ */
- }
- break;
- }
}
break;
+ }
+ }
+ break;
}
return FALSE;
}
diff --git a/plugins/NewStory/src/templates.h b/plugins/NewStory/src/templates.h
index 93916bec29..2b703619f3 100644
--- a/plugins/NewStory/src/templates.h
+++ b/plugins/NewStory/src/templates.h
@@ -68,8 +68,8 @@ extern TemplateInfo templates[TPL_COUNT];
void LoadTemplates();
void SaveTemplates();
-TCHAR *TplFormatString(int tpl, HANDLE hContact, HistoryArray::ItemData *args);
-TCHAR *TplFormatStringEx(int tpl, TCHAR *sztpl, HANDLE hContact, HistoryArray::ItemData *args);
+TCHAR *TplFormatString(int tpl, MCONTACT hContact, HistoryArray::ItemData *args);
+TCHAR *TplFormatStringEx(int tpl, TCHAR *sztpl, MCONTACT hContact, HistoryArray::ItemData *args);
BOOL CALLBACK OptTemplatesDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);