From 5ac26cff397836222eb8d51d866890f96321c601 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> Date: Sun, 25 Apr 2010 15:57:51 +0000 Subject: Optimizations, removed redundant code, better compatibility with popup+ git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@512 4f64403b-2f21-0410-a795-97e2b3489a10 --- yapp/options.cpp | 56 +++++++++++++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) (limited to 'yapp/options.cpp') diff --git a/yapp/options.cpp b/yapp/options.cpp index 5edca0b..ea49116 100644 --- a/yapp/options.cpp +++ b/yapp/options.cpp @@ -2,8 +2,6 @@ #include "options.h" #include "resource.h" #include "popwin.h" -#include -#include "str_utils.h" #include "services.h" Options options; @@ -92,13 +90,15 @@ void ShowExamplePopups() { pd.ptzTitle = TranslateT("Example"); pd.ptzText = TranslateT("The quick brown fox jumped over the lazy dog."); - CallService(MS_YAPP_SHOWPOPUP, (WPARAM)&pd, 0); + ShowPopup(pd); + pd.ptzTitle = TranslateT("Example With a Long Title"); pd.ptzText = TranslateT("The quick brown fox jumped over the lazy dog."); - CallService(MS_YAPP_SHOWPOPUP, (WPARAM)&pd, 0); + ShowPopup(pd); + pd.ptzTitle = TranslateT("Example"); pd.ptzText = TranslateT("Thequickbrownfoxjumpedoverthelazydog."); - CallService(MS_YAPP_SHOWPOPUP, (WPARAM)&pd, 0); + ShowPopup(pd); HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); while(hContact) { @@ -107,7 +107,7 @@ void ShowExamplePopups() { if(ace && (ace->dwFlags & AVS_BITMAP_VALID)) { pd.hContact = hContact; pd.ptzText = TranslateT("An avatar."); - CallService(MS_YAPP_SHOWPOPUP, (WPARAM)&pd, 0); + ShowPopup(pd); break; } } @@ -183,15 +183,14 @@ static INT_PTR CALLBACK DlgProcOpts1(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR lvI.mask = LVIF_TEXT; char *strptr; - TCHAR buff[256]; int i = 0; for(; i < 10; i++) { strptr = (char *)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, (WPARAM)(ID_STATUS_OFFLINE + i), (LPARAM)0); - a2t(strptr, buff, 256); - lvI.pszText = buff; + lvI.pszText = mir_a2t(strptr); lvI.iItem = i; ListView_InsertItem(hwndList, &lvI); ListView_SetCheckState(hwndList, i, options.disable_status[i]); + mir_free(lvI.pszText); } lvI.pszText = TranslateT("Full-screen app running"); lvI.iItem = i; @@ -354,17 +353,17 @@ static INT_PTR CALLBACK DlgProcOpts1(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR return 0; } -PopupClass *newclasses = 0; +POPUPCLASS *newclasses = 0; static INT_PTR CALLBACK DlgProcOptsClasses(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch ( msg ) { case WM_INITDIALOG: TranslateDialogDefault( hwndDlg ); { if(num_classes) { - newclasses = (PopupClass *)malloc(num_classes * sizeof(PopupClass)); - memcpy(newclasses, classes, num_classes * sizeof(PopupClass)); + newclasses = (POPUPCLASS *)mir_alloc(num_classes * sizeof(POPUPCLASS)); + memcpy(newclasses, classes, num_classes * sizeof(POPUPCLASS)); - PopupClass *pc; + POPUPCLASS *pc; int index; for(int i = 0; i < num_classes; i++) { pc = &newclasses[i]; @@ -389,8 +388,8 @@ static INT_PTR CALLBACK DlgProcOptsClasses(HWND hwndDlg, UINT msg, WPARAM wParam int i = SendDlgItemMessage(hwndDlg, IDC_LST_CLASSES, LB_GETITEMDATA, index, 0); SendDlgItemMessage(hwndDlg, IDC_COL_TEXT, CPM_SETCOLOUR, 0, (LPARAM)newclasses[i].colorText); SendDlgItemMessage(hwndDlg, IDC_COL_BG, CPM_SETCOLOUR, 0, (LPARAM)newclasses[i].colorBack); - CheckDlgButton(hwndDlg, IDC_CHK_TIMEOUT, newclasses[i].timeout != -1); - SetDlgItemInt(hwndDlg, IDC_ED_TIMEOUT, newclasses[i].timeout, TRUE); + CheckDlgButton(hwndDlg, IDC_CHK_TIMEOUT, newclasses[i].iSeconds != -1); + SetDlgItemInt(hwndDlg, IDC_ED_TIMEOUT, newclasses[i].iSeconds, TRUE); } EnableWindow(GetDlgItem(hwndDlg, IDC_ED_TIMEOUT), index != -1 && IsDlgButtonChecked(hwndDlg, IDC_CHK_TIMEOUT)); return TRUE; @@ -400,7 +399,7 @@ static INT_PTR CALLBACK DlgProcOptsClasses(HWND hwndDlg, UINT msg, WPARAM wParam int i = SendDlgItemMessage(hwndDlg, IDC_LST_CLASSES, LB_GETITEMDATA, index, 0); BOOL tr; int t = GetDlgItemInt(hwndDlg, IDC_ED_TIMEOUT, &tr, FALSE); - newclasses[i].timeout = t; + newclasses[i].iSeconds = t; SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } @@ -413,9 +412,9 @@ static INT_PTR CALLBACK DlgProcOptsClasses(HWND hwndDlg, UINT msg, WPARAM wParam { BOOL isChecked = IsDlgButtonChecked(hwndDlg, IDC_CHK_TIMEOUT); EnableWindow(GetDlgItem(hwndDlg, IDC_ED_TIMEOUT), isChecked); - if(isChecked) newclasses[i].timeout = 0; - else newclasses[i].timeout = -1; - SetDlgItemInt(hwndDlg, IDC_ED_TIMEOUT, newclasses[i].timeout, TRUE); + if(isChecked) newclasses[i].iSeconds = 0; + else newclasses[i].iSeconds = -1; + SetDlgItemInt(hwndDlg, IDC_ED_TIMEOUT, newclasses[i].iSeconds, TRUE); } SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 ); break; @@ -429,16 +428,16 @@ static INT_PTR CALLBACK DlgProcOptsClasses(HWND hwndDlg, UINT msg, WPARAM wParam break; case IDC_BTN_PREVIEW: if(newclasses[i].flags & PCF_UNICODE) { - PopupClass pc = newclasses[i]; - pc.windowProc = 0; - PopupClassInstance d = {sizeof(d), pc.pszName}; + POPUPCLASS pc = newclasses[i]; + pc.PluginWindowProc = 0; + POPUPDATACLASS d = {sizeof(d), pc.pszName}; d.pwszTitle = L"Preview"; d.pwszText = L"The quick brown fox jumps over the lazy dog."; CallService(MS_POPUP_ADDPOPUPCLASS, (WPARAM)&pc, (LPARAM)&d); } else { - PopupClass pc = newclasses[i]; - pc.windowProc = 0; - PopupClassInstance d = {sizeof(d), pc.pszName}; + POPUPCLASS pc = newclasses[i]; + pc.PluginWindowProc = 0; + POPUPDATACLASS d = {sizeof(d), pc.pszName}; d.pszTitle = "Preview"; d.pszText = "The quick brown fox jumps over the lazy dog."; CallService(MS_POPUP_ADDPOPUPCLASS, (WPARAM)&pc, (LPARAM)&d); @@ -450,11 +449,11 @@ static INT_PTR CALLBACK DlgProcOptsClasses(HWND hwndDlg, UINT msg, WPARAM wParam break; case WM_NOTIFY: if (((LPNMHDR)lParam)->code == (unsigned)PSN_APPLY ) { - memcpy(classes, newclasses, num_classes * sizeof(PopupClass)); + memcpy(classes, newclasses, num_classes * sizeof(POPUPCLASS)); char setting[256]; for(int i = 0; i < num_classes; i++) { mir_snprintf(setting, 256, "%s/Timeout", classes[i].pszName); - DBWriteContactSettingWord(0, MODULE, setting, classes[i].timeout); + DBWriteContactSettingWord(0, MODULE, setting, classes[i].iSeconds); mir_snprintf(setting, 256, "%s/TextCol", classes[i].pszName); DBWriteContactSettingDword(0, MODULE, setting, (DWORD)classes[i].colorText); mir_snprintf(setting, 256, "%s/BgCol", classes[i].pszName); @@ -464,7 +463,7 @@ static INT_PTR CALLBACK DlgProcOptsClasses(HWND hwndDlg, UINT msg, WPARAM wParam } break; case WM_DESTROY: - if(newclasses) free(newclasses); + mir_free(newclasses); break; } return 0; @@ -506,5 +505,4 @@ void InitOptions() { void DeinitOptions() { UnhookEvent(hEventOptInit); - DestroyIcon(hPopupIcon); } -- cgit v1.2.3