diff options
Diffstat (limited to 'plugins/FloatingContacts/src/options.cpp')
-rw-r--r-- | plugins/FloatingContacts/src/options.cpp | 1355 |
1 files changed, 257 insertions, 1098 deletions
diff --git a/plugins/FloatingContacts/src/options.cpp b/plugins/FloatingContacts/src/options.cpp index b794b79156..7525300237 100644 --- a/plugins/FloatingContacts/src/options.cpp +++ b/plugins/FloatingContacts/src/options.cpp @@ -1,1168 +1,327 @@ #include "stdhdr.h"
-/////////////////////////////////////////////////////////////////////////////
-//
-
-#define SAMEASF_FACE 1
-#define SAMEASF_SIZE 2
-#define SAMEASF_STYLE 4
-#define SAMEASF_COLOUR 8
-
-typedef struct _SFontSettings
-{
- BYTE sameAsFlags,sameAs;
- COLORREF colour;
- char size;
- BYTE style;
- BYTE charset;
- char szFace[LF_FACESIZE];
-} SFontSettings;
-
-static SFontSettings s_rgFontSettings[FLT_FONTIDS];
-static SFontSettings s_rgFontSettingsMiranda[FLT_FONTIDS];
-
-#define FLT_SAME_AS_NONE ((BYTE)0xFF)
-#define FLT_SAME_AS_MIRANDA ((BYTE)0xFE)
-
-static char* s_rgszFontSizes[] = {"8","10","14","16","18","20","24","28"};
-
-static const TCHAR* s_rgszFontIdDescr[FLT_FONTIDS] =
-{
- LPGENT("Standard contacts"),
- LPGENT("Online contacts to whom you have a different visibility"),
- LPGENT("Offline contacts"),
- LPGENT("Offline contacts to whom you have a different visibility"),
- LPGENT("Contacts which are 'not on list'"),
-};
-
-static WORD s_rgwFontSameAsDefault[FLT_FONTIDS] =
-{
- MAKEWORD(FLT_SAME_AS_MIRANDA, 0x0F),
- MAKEWORD(FLT_SAME_AS_MIRANDA, 0x0F),
- MAKEWORD(FLT_SAME_AS_MIRANDA, 0x0F),
- MAKEWORD(FLT_SAME_AS_MIRANDA, 0x0F),
- MAKEWORD(FLT_SAME_AS_MIRANDA, 0x0F),
-};
-
-static int s_rgnMirandaFontId[FLT_FONTIDS] =
-{
- FONTID_CONTACTS,
- FONTID_INVIS,
- FONTID_OFFLINE,
- FONTID_OFFINVIS,
- FONTID_NOTONLIST
-};
-
-#define M_REBUILDFONTGROUP (WM_USER + 10)
-#define M_REMAKESAMPLE (WM_USER + 11)
-#define M_RECALCONEFONT (WM_USER + 12)
-#define M_RECALCOTHERFONTS (WM_USER + 13)
-#define M_SAVEFONT (WM_USER + 14)
-#define M_REFRESHSAMEASBOXES (WM_USER + 15)
-#define M_FILLSCRIPTCOMBO (WM_USER + 16)
-#define M_LOADFONT (WM_USER + 17)
#define M_GUESSSAMEASBOXES (WM_USER + 18)
-#define M_SETSAMEASBOXES (WM_USER + 19)
#define M_REFRESHBKGBOXES (WM_USER + 20)
#define M_REFRESHBORDERPICKERS (WM_USER + 21)
-/////////////////////////////////////////////////////////////////////////////
-//
-
-static
-INT_PTR
-APIENTRY
-OptWndProc
- ( IN HWND hwndDlg
- , IN UINT uMsg
- , IN WPARAM wParam
- , IN LPARAM lParam
- );
+/////////////////////////////////////////////////////////////////////////////////////////
-static
-INT_PTR
-APIENTRY
-OptSknWndProc
- ( IN HWND hwndDlg
- , IN UINT uMsg
- , IN WPARAM wParam
- , IN LPARAM lParam
- );
-
-/////////////////////////////////////////////////////////////////////////////
-//
-
-int
-OnOptionsInitialize
- ( IN WPARAM wParam
- , IN LPARAM lParam
- )
+static INT_PTR APIENTRY OptWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
- OPTIONSDIALOGPAGE odp = { 0 };
- odp.cbSize = sizeof(odp);
- odp.hInstance = hInst;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_FLTCONT);
- odp.pszTitle = LPGEN("Floating Contacts");
- odp.pszGroup = LPGEN("Contact List");
- odp.pszTab = LPGEN("Main Features");
- odp.flags = ODPF_BOLDGROUPS;
- odp.pfnDlgProc = OptWndProc;
- Options_AddPage(wParam, &odp);
+ switch ( uMsg ) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_SKIN);
- odp.pszTab = LPGEN("Appearance");
- odp.pfnDlgProc = OptSknWndProc;
- Options_AddPage(wParam, &odp);
+ // Properties
+ CheckDlgButton(hwndDlg, IDC_CHK_HIDE_OFFLINE, (fcOpt.bHideOffline ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_CHK_HIDE_ALL, (fcOpt.bHideAll ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_CHK_HIDE_WHEN_FULSCREEN, (fcOpt.bHideWhenFullscreen ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_CHK_STICK, (fcOpt.bMoveTogether ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_CHK_WIDTH, (fcOpt.bFixedWidth ? BST_CHECKED : BST_UNCHECKED));
- return 0;
-}
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_WIDTH), fcOpt.bFixedWidth);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_WIDTH), fcOpt.bFixedWidth);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_WIDTHSPIN), fcOpt.bFixedWidth);
-static
-int
-CALLBACK
-EnumFontsProc
- ( IN ENUMLOGFONTEXA* lpelfe
- , IN NEWTEXTMETRICEXA* lpntme
- , IN int FontType
- , IN LPARAM lParam
- )
-{
- if (IsWindow((HWND)lParam))
- {
- if (CB_ERR == SendMessageA((HWND)lParam, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)lpelfe->elfLogFont.lfFaceName))
- SendMessageA((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfLogFont.lfFaceName);
- return TRUE;
- }
- return FALSE;
-}
+ SendDlgItemMessage(hwndDlg, IDC_WIDTHSPIN, UDM_SETRANGE, 0, MAKELONG(255,0));
+ SendDlgItemMessage(hwndDlg, IDC_WIDTHSPIN, UDM_SETPOS, 0, fcOpt.nThumbWidth);
-void
-FillFontListThread
- ( IN HWND hwndDlg
- )
-{
- LOGFONTA lf = {0};
- HDC hdc = GetDC(hwndDlg);
+ CheckDlgButton(hwndDlg, IDC_CHK_TIP, (fcOpt.bShowTip ? BST_CHECKED : BST_UNCHECKED));
- lf.lfCharSet = DEFAULT_CHARSET;
- lf.lfFaceName[0] = 0;
- lf.lfPitchAndFamily = 0;
- EnumFontFamiliesExA(hdc, &lf, (FONTENUMPROCA)EnumFontsProc, (LPARAM)GetDlgItem(hwndDlg,IDC_TYPEFACE), 0);
- ReleaseDC(hwndDlg, hdc);
- return;
-}
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CHK_TIP), bEnableTip);
-static
-int
-CALLBACK
-EnumFontScriptsProc
- ( IN ENUMLOGFONTEX* lpelfe
- , IN NEWTEXTMETRICEX* lpntme
- , IN int FontType
- , IN LPARAM lParam
- )
-{
- if (CB_ERR == SendMessage((HWND)lParam, CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)lpelfe->elfScript))
- {
- int i = SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfScript);
- SendMessage((HWND)lParam, CB_SETITEMDATA, i, lpelfe->elfLogFont.lfCharSet);
- }
- return TRUE;
-}
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN), bEnableTip && fcOpt.bShowTip);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN_CMT), bEnableTip && fcOpt.bShowTip);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TIMEIN), bEnableTip && fcOpt.bShowTip);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TIMEINSPIN), bEnableTip && fcOpt.bShowTip);
-static
-void
-GetDefaultFontSetting
- ( IN BOOL bFltContacts
- , IN int nFontId
- , IN LOGFONTA* lf
- , IN COLORREF* colour
- )
-{
- SystemParametersInfoA(SPI_GETICONTITLELOGFONT, sizeof(LOGFONTA), lf, FALSE);
- *colour = GetSysColor(COLOR_WINDOWTEXT);
- if (bFltContacts)
- {
- switch (nFontId)
- {
- case FLT_FONTID_OFFINVIS:
- case FLT_FONTID_INVIS:
- lf->lfItalic = !lf->lfItalic;
- break;
+ SendDlgItemMessage(hwndDlg, IDC_TIMEINSPIN, UDM_SETRANGE, 0, MAKELONG(5000,0));
+ SendDlgItemMessage(hwndDlg, IDC_TIMEINSPIN, UDM_SETPOS, 0, fcOpt.TimeIn);
- case FLT_FONTID_NOTONLIST:
- *colour = GetSysColor(COLOR_3DSHADOW);
- break;
- }
- }
- else
- {
- switch (s_rgnMirandaFontId[nFontId])
- {
- case FONTID_OFFINVIS:
- case FONTID_INVIS:
- lf->lfItalic = !lf->lfItalic;
- break;
+ CheckDlgButton(hwndDlg, IDC_CHK_TOTOP, (fcOpt.bToTop ? BST_CHECKED : BST_UNCHECKED));
- case FONTID_NOTONLIST:
- *colour = GetSysColor(COLOR_3DSHADOW);
- break;
- }
- }
-}
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TOTOP), fcOpt.bToTop);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TOTOPTIME), fcOpt.bToTop);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TOTOPTIMESPIN), fcOpt.bToTop);
-void
-GetFontSetting
- ( IN BOOL bFltContacts
- , IN int nFontId
- , IN LOGFONTA* lf
- , IN COLORREF* colour
- )
-{
- DBVARIANT dbv;
- char idstr[10];
- BYTE style;
- const char* pModule = (bFltContacts ? sModule : "CLC");
-
- GetDefaultFontSetting(bFltContacts, nFontId, lf, colour);
- if (!bFltContacts)
- nFontId = s_rgnMirandaFontId[nFontId];
- wsprintfA(idstr, "Font%dName", nFontId);
- if (!DBGetContactSetting(NULL, pModule, idstr, &dbv))
- {
- lstrcpyA(lf->lfFaceName, dbv.pszVal);
- DBFreeVariant(&dbv);
- }
-
- wsprintfA(idstr, "Font%dCol", nFontId);
- *colour = DBGetContactSettingDword(NULL, pModule, idstr, *colour);
-
- wsprintfA(idstr, "Font%dSize", nFontId);
- lf->lfHeight = (char)DBGetContactSettingByte(NULL, pModule, idstr, lf->lfHeight);
-
- wsprintfA(idstr, "Font%dSty", nFontId);
- style = (BYTE)DBGetContactSettingByte(NULL, pModule, idstr
- , (lf->lfWeight == FW_NORMAL ? 0 : DBFONTF_BOLD)
- | (lf->lfItalic ? DBFONTF_ITALIC : 0)
- | (lf->lfUnderline ? DBFONTF_UNDERLINE : 0)
- );
- lf->lfWidth = lf->lfEscapement = lf->lfOrientation = 0;
- lf->lfWeight = ((style & DBFONTF_BOLD) ? FW_BOLD : FW_NORMAL);
- lf->lfItalic = (0 != (style & DBFONTF_ITALIC));
- lf->lfUnderline = (0 != (style & DBFONTF_UNDERLINE));
- lf->lfStrikeOut = 0;
-
- wsprintfA(idstr, "Font%dSet", nFontId);
- lf->lfCharSet = (BYTE)DBGetContactSettingByte(NULL, pModule, idstr, lf->lfCharSet);
- lf->lfOutPrecision = OUT_DEFAULT_PRECIS;
- lf->lfClipPrecision = CLIP_DEFAULT_PRECIS;
- lf->lfQuality = DEFAULT_QUALITY;
- lf->lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
+ SendDlgItemMessage(hwndDlg, IDC_TOTOPTIMESPIN, UDM_SETRANGE, 0, MAKELONG(TOTOPTIME_MAX,1));
+ SendDlgItemMessage(hwndDlg, IDC_TOTOPTIMESPIN, UDM_SETPOS, 0, fcOpt.ToTopTime);
- if (bFltContacts)
- {
- WORD wSameAs;
- BYTE bySameAs;
- BYTE bySameAsFlags;
+ CheckDlgButton(hwndDlg, IDC_CHK_HIDE_WHEN_CLISTSHOW, (fcOpt.bHideWhenCListShow ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_CHK_SINGLECLK, (fcOpt.bUseSingleClick ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_CHK_SHOWIDLE, (fcOpt.bShowIdle ? BST_CHECKED : BST_UNCHECKED));
- wsprintfA(idstr, "Font%dAs", nFontId);
- wSameAs = (WORD)DBGetContactSettingWord(NULL, sModule, idstr, s_rgwFontSameAsDefault[nFontId]);
- bySameAs = LOBYTE(wSameAs);
- bySameAsFlags = HIBYTE(wSameAs);
+ return TRUE;
- if (FLT_SAME_AS_MIRANDA == bySameAs)
- {
- LOGFONTA lfMiranda;
- COLORREF colourMiranda;
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDC_CHK_WIDTH:
+ if (BN_CLICKED == HIWORD(wParam)) {
+ BOOL bChecked = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_WIDTH);
- GetFontSetting(FALSE, nFontId, &lfMiranda, &colourMiranda);
- if (bySameAsFlags & SAMEASF_FACE)
- {
- lstrcpyA(lf->lfFaceName, lfMiranda.lfFaceName);
- lf->lfCharSet = lfMiranda.lfCharSet;
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_WIDTH ), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_WIDTH ), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_WIDTHSPIN), bChecked);
}
- if (bySameAsFlags & SAMEASF_SIZE)
- lf->lfHeight = lfMiranda.lfHeight;
- if (bySameAsFlags & SAMEASF_STYLE)
- {
- lf->lfWeight = lfMiranda.lfWeight;
- lf->lfItalic = lfMiranda.lfItalic;
- lf->lfUnderline = lfMiranda.lfUnderline;
- }
- if (bySameAsFlags & SAMEASF_COLOUR)
- *colour = colourMiranda;
- }
- }
-}
-
-static
-INT_PTR
-APIENTRY
-OptWndProc
- ( IN HWND hwndDlg
- , IN UINT uMsg
- , IN WPARAM wParam
- , IN LPARAM lParam
- )
-{
- switch ( uMsg )
- {
- case WM_INITDIALOG:
- {
- TranslateDialogDefault(hwndDlg);
-
- // Properties
- CheckDlgButton(hwndDlg, IDC_CHK_HIDE_OFFLINE, (fcOpt.bHideOffline ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_CHK_HIDE_ALL, (fcOpt.bHideAll ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_CHK_HIDE_WHEN_FULSCREEN, (fcOpt.bHideWhenFullscreen ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_CHK_STICK, (fcOpt.bMoveTogether ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_CHK_WIDTH, (fcOpt.bFixedWidth ? BST_CHECKED : BST_UNCHECKED));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_WIDTH), fcOpt.bFixedWidth);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_WIDTH), fcOpt.bFixedWidth);
- EnableWindow(GetDlgItem(hwndDlg, IDC_WIDTHSPIN), fcOpt.bFixedWidth);
-
- SendDlgItemMessage(hwndDlg, IDC_WIDTHSPIN, UDM_SETRANGE, 0, MAKELONG(255,0));
- SendDlgItemMessage(hwndDlg, IDC_WIDTHSPIN, UDM_SETPOS, 0, fcOpt.nThumbWidth);
-
- CheckDlgButton(hwndDlg, IDC_CHK_TIP, (fcOpt.bShowTip ? BST_CHECKED : BST_UNCHECKED));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_CHK_TIP), bEnableTip);
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN), bEnableTip && fcOpt.bShowTip);
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN_CMT), bEnableTip && fcOpt.bShowTip);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TIMEIN), bEnableTip && fcOpt.bShowTip);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TIMEINSPIN), bEnableTip && fcOpt.bShowTip);
-
- SendDlgItemMessage(hwndDlg, IDC_TIMEINSPIN, UDM_SETRANGE, 0, MAKELONG(5000,0));
- SendDlgItemMessage(hwndDlg, IDC_TIMEINSPIN, UDM_SETPOS, 0, fcOpt.TimeIn);
-
- CheckDlgButton(hwndDlg, IDC_CHK_TOTOP, (fcOpt.bToTop ? BST_CHECKED : BST_UNCHECKED));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TOTOP), fcOpt.bToTop);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TOTOPTIME), fcOpt.bToTop);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TOTOPTIMESPIN), fcOpt.bToTop);
+ break;
- SendDlgItemMessage(hwndDlg, IDC_TOTOPTIMESPIN, UDM_SETRANGE, 0, MAKELONG(TOTOPTIME_MAX,1));
- SendDlgItemMessage(hwndDlg, IDC_TOTOPTIMESPIN, UDM_SETPOS, 0, fcOpt.ToTopTime);
+ case IDC_TXT_TIMEIN:
+ case IDC_TXT_TOTOPTIME:
+ case IDC_TXT_WIDTH:
+ if (EN_CHANGE != HIWORD(wParam) || (HWND)lParam != GetFocus())
+ return 0;
+ break;
- CheckDlgButton(hwndDlg, IDC_CHK_HIDE_WHEN_CLISTSHOW, (fcOpt.bHideWhenCListShow ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_CHK_SINGLECLK, (fcOpt.bUseSingleClick ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_CHK_SHOWIDLE, (fcOpt.bShowIdle ? BST_CHECKED : BST_UNCHECKED));
+ case IDC_CHK_TIP:
+ if (BN_CLICKED == HIWORD(wParam)) {
+ BOOL bChecked = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TIP);
- return TRUE;
- }
- case WM_COMMAND:
- {
- switch (LOWORD(wParam))
- {
- case IDC_CHK_WIDTH:
- {
- if (BN_CLICKED == HIWORD(wParam))
- {
- BOOL bChecked = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_WIDTH);
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_WIDTH ), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_WIDTH ), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_WIDTHSPIN), bChecked);
- }
- break;
- }
- case IDC_TXT_WIDTH:
- {
- if (EN_CHANGE != HIWORD(wParam) || (HWND)lParam != GetFocus())
- return 0;
- break;
- }
- case IDC_CHK_TIP:
- {
- if (BN_CLICKED == HIWORD(wParam))
- {
- BOOL bChecked = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TIP);
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN ), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN_CMT ), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TIMEIN ), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TIMEINSPIN), bChecked);
- }
- break;
- }
- case IDC_TXT_TIMEIN:
- {
- if (EN_CHANGE != HIWORD(wParam) || (HWND)lParam != GetFocus())
- return 0;
- break;
- }
- case IDC_CHK_TOTOP:
- {
- if (BN_CLICKED == HIWORD(wParam))
- {
- BOOL bChecked = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TOTOP);
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TOTOP ), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TOTOPTIME ), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TOTOPTIMESPIN), bChecked);
- }
- break;
- }
- case IDC_TXT_TOTOPTIME:
- {
- if (EN_CHANGE != HIWORD(wParam) || (HWND)lParam != GetFocus())
- return 0;
- break;
- }
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN ), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TIMEIN_CMT ), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TIMEIN ), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TIMEINSPIN), bChecked);
}
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
break;
- }
- case WM_NOTIFY:
- {
- LPNMHDR phdr = (LPNMHDR)(lParam);
-
- if (0 == phdr->idFrom)
- {
- switch (phdr->code)
- {
- case PSN_APPLY:
- {
- BOOL bSuccess = FALSE;
- fcOpt.bHideOffline = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_OFFLINE);
- DBWriteContactSettingByte(NULL, sModule, "HideOffline", (BYTE)fcOpt.bHideOffline);
-
- fcOpt.bHideAll = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_ALL);
- DBWriteContactSettingByte(NULL, sModule, "HideAll", (BYTE)fcOpt.bHideAll);
-
- fcOpt.bHideWhenFullscreen = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_WHEN_FULSCREEN);
- DBWriteContactSettingByte(NULL, sModule, "HideWhenFullscreen", (BYTE)fcOpt.bHideWhenFullscreen);
-
- fcOpt.bMoveTogether = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_STICK);
- DBWriteContactSettingByte(NULL, sModule, "MoveTogether", (BYTE)fcOpt.bMoveTogether);
-
- fcOpt.bFixedWidth = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_WIDTH);
- DBWriteContactSettingByte(NULL, sModule, "FixedWidth", (BYTE)fcOpt.bFixedWidth);
- fcOpt.nThumbWidth = GetDlgItemInt(hwndDlg, IDC_TXT_WIDTH, &bSuccess, FALSE);
- DBWriteContactSettingDword(NULL, sModule, "Width", fcOpt.nThumbWidth );
-
- if (bEnableTip)
- {
- fcOpt.bShowTip = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TIP);
- DBWriteContactSettingByte(NULL, sModule, "ShowTip", (BYTE)fcOpt.bShowTip);
- fcOpt.TimeIn = GetDlgItemInt(hwndDlg, IDC_TXT_TIMEIN, &bSuccess, FALSE);
- DBWriteContactSettingWord(NULL, sModule, "TimeIn", fcOpt.TimeIn );
- }
+ case IDC_CHK_TOTOP:
+ if (BN_CLICKED == HIWORD(wParam)) {
+ BOOL bChecked = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TOTOP);
- fcOpt.bToTop = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TOTOP);
- DBWriteContactSettingByte(NULL, sModule, "ToTop", (BYTE)fcOpt.bToTop);
- fcOpt.ToTopTime = GetDlgItemInt(hwndDlg, IDC_TXT_TOTOPTIME, &bSuccess, FALSE);
- DBWriteContactSettingWord(NULL, sModule, "ToTopTime", fcOpt.ToTopTime );
-
- fcOpt.bHideWhenCListShow = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_WHEN_CLISTSHOW);
- DBWriteContactSettingByte(NULL, sModule, "HideWhenCListShow", (BYTE)fcOpt.bHideWhenCListShow);
-
- fcOpt.bUseSingleClick = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_SINGLECLK);
- DBWriteContactSettingByte(NULL, sModule, "UseSingleClick", (BYTE)fcOpt.bUseSingleClick);
-
- fcOpt.bShowIdle = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_SHOWIDLE);
- DBWriteContactSettingByte(NULL, sModule, "ShowIdle", (BYTE)fcOpt.bShowIdle);
-
- ApplyOptionsChanges();
- OnStatusChanged();
- return TRUE;
- }
- }
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LBL_TOTOP ), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_TOTOPTIME ), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TOTOPTIMESPIN), bChecked);
}
break;
}
- }
- return FALSE;
-}
-
-static
-INT_PTR
-APIENTRY
-OptSknWndProc
- ( IN HWND hwndDlg
- , IN UINT uMsg
- , IN WPARAM wParam
- , IN LPARAM lParam
- )
-{
- static HFONT hFontSample;
-
- switch ( uMsg )
- {
- case WM_INITDIALOG:
- {
- BYTE btOpacity;
- char szPercent[20];
-
- TranslateDialogDefault(hwndDlg);
-
- // Border
- CheckDlgButton(hwndDlg, IDC_DRAWBORDER
- , DBGetContactSettingByte(NULL, sModule, "DrawBorder", FLT_DEFAULT_DRAWBORDER)
- ? BST_CHECKED : BST_UNCHECKED
- );
- SendMessage(hwndDlg, M_REFRESHBORDERPICKERS, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_LTEDGESCOLOR, CPM_SETDEFAULTCOLOUR, 0, FLT_DEFAULT_LTEDGESCOLOR);
- SendDlgItemMessage(hwndDlg, IDC_LTEDGESCOLOR, CPM_SETCOLOUR, 0
- , DBGetContactSettingDword(NULL, sModule, "LTEdgesColor", FLT_DEFAULT_LTEDGESCOLOR)
- );
- SendDlgItemMessage(hwndDlg, IDC_RBEDGESCOLOR, CPM_SETDEFAULTCOLOUR, 0, FLT_DEFAULT_RBEDGESCOLOR);
- SendDlgItemMessage(hwndDlg, IDC_RBEDGESCOLOR, CPM_SETCOLOUR, 0
- , DBGetContactSettingDword(NULL, sModule, "RBEdgesColor", FLT_DEFAULT_RBEDGESCOLOR)
- );
-
- // Background
- CheckDlgButton(hwndDlg, IDC_CHK_WIDTH, (fcOpt.bFixedWidth ? BST_CHECKED : BST_UNCHECKED));
-
- SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_SETDEFAULTCOLOUR, 0, FLT_DEFAULT_BKGNDCOLOR);
- SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_SETCOLOUR, 0
- , DBGetContactSettingDword(NULL, sModule, "BkColor", FLT_DEFAULT_BKGNDCOLOR)
- );
- CheckDlgButton(hwndDlg, IDC_BITMAP
- , DBGetContactSettingByte(NULL, sModule, "BkUseBitmap", FLT_DEFAULT_BKGNDUSEBITMAP)
- ? BST_CHECKED : BST_UNCHECKED
- );
- SendMessage(hwndDlg, M_REFRESHBKGBOXES, 0, 0);
- {
- DBVARIANT dbv;
-
- if (!DBGetContactSetting(NULL, sModule, "BkBitmap", &dbv))
- {
- SetDlgItemTextA(hwndDlg, IDC_FILENAME, dbv.pszVal);
- DBFreeVariant(&dbv);
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case WM_NOTIFY:
+ LPNMHDR phdr = (LPNMHDR)(lParam);
+ if (0 == phdr->idFrom) {
+ switch (phdr->code) {
+ case PSN_APPLY:
+ BOOL bSuccess = FALSE;
+
+ fcOpt.bHideOffline = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_OFFLINE);
+ db_set_b(NULL, MODULE, "HideOffline", (BYTE)fcOpt.bHideOffline);
+
+ fcOpt.bHideAll = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_ALL);
+ db_set_b(NULL, MODULE, "HideAll", (BYTE)fcOpt.bHideAll);
+
+ fcOpt.bHideWhenFullscreen = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_WHEN_FULSCREEN);
+ db_set_b(NULL, MODULE, "HideWhenFullscreen", (BYTE)fcOpt.bHideWhenFullscreen);
+
+ fcOpt.bMoveTogether = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_STICK);
+ db_set_b(NULL, MODULE, "MoveTogether", (BYTE)fcOpt.bMoveTogether);
+
+ fcOpt.bFixedWidth = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_WIDTH);
+ db_set_b(NULL, MODULE, "FixedWidth", (BYTE)fcOpt.bFixedWidth);
+ fcOpt.nThumbWidth = GetDlgItemInt(hwndDlg, IDC_TXT_WIDTH, &bSuccess, FALSE);
+ db_set_dw(NULL, MODULE, "Width", fcOpt.nThumbWidth );
+
+ if (bEnableTip) {
+ fcOpt.bShowTip = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TIP);
+ db_set_b(NULL, MODULE, "ShowTip", (BYTE)fcOpt.bShowTip);
+ fcOpt.TimeIn = GetDlgItemInt(hwndDlg, IDC_TXT_TIMEIN, &bSuccess, FALSE);
+ db_set_w(NULL, MODULE, "TimeIn", fcOpt.TimeIn );
}
- }
- {
- WORD bmpUse = (WORD)DBGetContactSettingWord(NULL, sModule, "BkBitmapOpt", FLT_DEFAULT_BKGNDBITMAPOPT);
- CheckDlgButton(hwndDlg, IDC_STRETCHH, ((bmpUse & CLB_STRETCHH) ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_STRETCHV, ((bmpUse & CLB_STRETCHV) ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_TILEH, ((bmpUse & CLBF_TILEH) ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_TILEV, ((bmpUse & CLBF_TILEV) ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_PROPORTIONAL, ((bmpUse & CLBF_PROPORTIONAL) ? BST_CHECKED : BST_UNCHECKED));
- }
- {
- HRESULT (STDAPICALLTYPE *MySHAutoComplete)(HWND,DWORD);
+ fcOpt.bToTop = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_TOTOP);
+ db_set_b(NULL, MODULE, "ToTop", (BYTE)fcOpt.bToTop);
+ fcOpt.ToTopTime = GetDlgItemInt(hwndDlg, IDC_TXT_TOTOPTIME, &bSuccess, FALSE);
+ db_set_w(NULL, MODULE, "ToTopTime", fcOpt.ToTopTime );
- MySHAutoComplete = (HRESULT (STDAPICALLTYPE*)(HWND,DWORD))GetProcAddress(GetModuleHandle(_T("shlwapi")), "SHAutoComplete");
- if (MySHAutoComplete)
- MySHAutoComplete(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- }
+ fcOpt.bHideWhenCListShow = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE_WHEN_CLISTSHOW);
+ db_set_b(NULL, MODULE, "HideWhenCListShow", (BYTE)fcOpt.bHideWhenCListShow);
- // Windows 2K/XP
- btOpacity = (BYTE)DBGetContactSettingByte(NULL, sModule, "Opacity", 100);
- SendDlgItemMessage(hwndDlg, IDC_SLIDER_OPACITY, TBM_SETRANGE, TRUE, MAKELONG(0, 100));
- SendDlgItemMessage(hwndDlg, IDC_SLIDER_OPACITY, TBM_SETPOS, TRUE, btOpacity);
-
- wsprintfA(szPercent, "%d%%", btOpacity);
- SetDlgItemTextA(hwndDlg, IDC_OPACITY, szPercent);
+ fcOpt.bUseSingleClick = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_SINGLECLK);
+ db_set_b(NULL, MODULE, "UseSingleClick", (BYTE)fcOpt.bUseSingleClick);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SLIDER_OPACITY), (NULL != pSetLayeredWindowAttributes));
- EnableWindow(GetDlgItem(hwndDlg, IDC_OPACITY), (NULL != pSetLayeredWindowAttributes));
+ fcOpt.bShowIdle = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_CHK_SHOWIDLE);
+ db_set_b(NULL, MODULE, "ShowIdle", (BYTE)fcOpt.bShowIdle);
- // Fonts
- hFontSample = NULL;
- SetDlgItemText(hwndDlg, IDC_SAMPLE, TranslateT("Sample"));
- FillFontListThread(hwndDlg);
- {
- int i;
- int itemId;
- LOGFONTA lf;
- COLORREF colour;
- WORD sameAs;
- char str[32];
-
- for (i = 0; i < FLT_FONTIDS; i++)
- {
- // Floating contacts fonts
- GetFontSetting(TRUE, i, &lf, &colour);
- wsprintfA(str, "Font%dAs", i);
- sameAs = (WORD)DBGetContactSettingWord(NULL, sModule, str, s_rgwFontSameAsDefault[i]);
- s_rgFontSettings[i].sameAs = LOBYTE(sameAs);
- s_rgFontSettings[i].sameAsFlags = HIBYTE(sameAs);
- s_rgFontSettings[i].style = (FW_NORMAL == lf.lfWeight? 0 : DBFONTF_BOLD)
- | (lf.lfItalic ? DBFONTF_ITALIC : 0)
- | (lf.lfUnderline ? DBFONTF_UNDERLINE : 0);
- if (lf.lfHeight < 0)
- {
- HDC hdc;
- SIZE size;
- HFONT hFont = CreateFontIndirectA(&lf);
-
- hdc = GetDC(hwndDlg);
- SelectObject(hdc, hFont);
- GetTextExtentPoint32A(hdc, "x", 1, &size);
- ReleaseDC(hwndDlg, hdc);
- DeleteObject(hFont);
- s_rgFontSettings[i].size = (char)size.cy;
- }
- else
- s_rgFontSettings[i].size = (char)lf.lfHeight;
- s_rgFontSettings[i].charset = lf.lfCharSet;
- s_rgFontSettings[i].colour = colour;
- lstrcpyA(s_rgFontSettings[i].szFace, lf.lfFaceName);
- itemId = SendDlgItemMessage(hwndDlg, IDC_FONTID, CB_ADDSTRING, 0, (LPARAM)TranslateTS(s_rgszFontIdDescr[i]));
- SendDlgItemMessage(hwndDlg, IDC_FONTID, CB_SETITEMDATA, itemId, i);
-
- // Miranda contact list fonts
- GetFontSetting(FALSE, i, &lf, &colour);
- s_rgFontSettingsMiranda[i].sameAs = 0;
- s_rgFontSettingsMiranda[i].sameAsFlags = 0;
- lstrcpyA(s_rgFontSettingsMiranda[i].szFace, lf.lfFaceName);
- s_rgFontSettingsMiranda[i].charset = lf.lfCharSet;
- s_rgFontSettingsMiranda[i].style = (FW_NORMAL == lf.lfWeight? 0 : DBFONTF_BOLD)
- | (lf.lfItalic ? DBFONTF_ITALIC : 0)
- | (lf.lfUnderline ? DBFONTF_UNDERLINE : 0);
- if (lf.lfHeight < 0)
- {
- HDC hdc;
- SIZE size;
- HFONT hFont = CreateFontIndirectA(&lf);
-
- hdc = GetDC(hwndDlg);
- SelectObject(hdc, hFont);
- GetTextExtentPoint32A(hdc, "x", 1, &size);
- ReleaseDC(hwndDlg, hdc);
- DeleteObject(hFont);
- s_rgFontSettingsMiranda[i].size = (char)size.cy;
- }
- else
- s_rgFontSettingsMiranda[i].size = (char)lf.lfHeight;
- s_rgFontSettingsMiranda[i].colour = colour;
- }
- SendDlgItemMessage(hwndDlg, IDC_FONTID, CB_SETCURSEL, 0, 0);
- for (i = 0; i < sizeof(s_rgszFontSizes)/sizeof(s_rgszFontSizes[0]); i++)
- SendDlgItemMessageA(hwndDlg, IDC_FONTSIZE, CB_ADDSTRING, 0, (LPARAM)s_rgszFontSizes[i]);
+ ApplyOptionsChanges();
+ OnStatusChanged();
+ return TRUE;
}
- SendMessage(hwndDlg, M_REBUILDFONTGROUP, 0, 0);
- SendMessage(hwndDlg, M_SAVEFONT, 0, 0);
- return TRUE;
}
- case M_REFRESHBKGBOXES:
- {
- BOOL bEnable = IsDlgButtonChecked(hwndDlg, IDC_BITMAP);
+ break;
+ }
+ return FALSE;
+}
- EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), bEnable);
- EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), bEnable);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STRETCHH), bEnable);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STRETCHV), bEnable);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TILEH), bEnable);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TILEV), bEnable);
- EnableWindow(GetDlgItem(hwndDlg, IDC_PROPORTIONAL), bEnable);
- break;
- }
- case M_REFRESHBORDERPICKERS:
- {
- BOOL bEnable = IsDlgButtonChecked(hwndDlg, IDC_DRAWBORDER);
+/////////////////////////////////////////////////////////////////////////////////////////
- EnableWindow(GetDlgItem(hwndDlg, IDC_LTEDGESCOLOR), bEnable);
- EnableWindow(GetDlgItem(hwndDlg, IDC_RBEDGESCOLOR), bEnable);
- break;
- }
- // remake all the needed controls when the user changes the font selector at the top
- case M_REBUILDFONTGROUP:
+static INT_PTR APIENTRY OptSknWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ BOOL bEnable;
+
+ switch ( uMsg ) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ // Border
+ CheckDlgButton(hwndDlg, IDC_DRAWBORDER, db_get_b(NULL, MODULE, "DrawBorder", FLT_DEFAULT_DRAWBORDER));
+ SendMessage(hwndDlg, M_REFRESHBORDERPICKERS, 0, 0);
+ SendDlgItemMessage(hwndDlg, IDC_LTEDGESCOLOR, CPM_SETDEFAULTCOLOUR, 0, FLT_DEFAULT_LTEDGESCOLOR);
+ SendDlgItemMessage(hwndDlg, IDC_LTEDGESCOLOR, CPM_SETCOLOUR, 0, db_get_dw(NULL, MODULE, "LTEdgesColor", FLT_DEFAULT_LTEDGESCOLOR));
+ SendDlgItemMessage(hwndDlg, IDC_RBEDGESCOLOR, CPM_SETDEFAULTCOLOUR, 0, FLT_DEFAULT_RBEDGESCOLOR);
+ SendDlgItemMessage(hwndDlg, IDC_RBEDGESCOLOR, CPM_SETCOLOUR, 0, db_get_dw(NULL, MODULE, "RBEdgesColor", FLT_DEFAULT_RBEDGESCOLOR));
+
+ // Background
+ CheckDlgButton(hwndDlg, IDC_CHK_WIDTH, (fcOpt.bFixedWidth ? BST_CHECKED : BST_UNCHECKED));
+
+ SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_SETDEFAULTCOLOUR, 0, FLT_DEFAULT_BKGNDCOLOR);
+ SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_SETCOLOUR, 0, db_get_dw(NULL, MODULE, "BkColor", FLT_DEFAULT_BKGNDCOLOR));
+ CheckDlgButton(hwndDlg, IDC_BITMAP, db_get_b(NULL, MODULE, "BkUseBitmap", FLT_DEFAULT_BKGNDUSEBITMAP));
+ SendMessage(hwndDlg, M_REFRESHBKGBOXES, 0, 0);
{
- int i = SendDlgItemMessage(hwndDlg, IDC_FONTID, CB_GETCURSEL, 0, 0);
- int j;
- int itemId;
- int nSameAs = FLT_SAME_AS_NONE;
- char szText[256];
-
- SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_RESETCONTENT, 0, 0);
- itemId = SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_ADDSTRING, 0, (LPARAM)TranslateT("<none>"));
- SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_SETITEMDATA, itemId, FLT_SAME_AS_NONE);
- SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_SETCURSEL, itemId, 0);
- itemId = SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_ADDSTRING, 0, (LPARAM)TranslateT("<Contact List Text>"));
- SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_SETITEMDATA, itemId, FLT_SAME_AS_MIRANDA);
- if (FLT_SAME_AS_MIRANDA == s_rgFontSettings[i].sameAs)
- {
- SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_SETCURSEL, itemId, 0);
- nSameAs = FLT_SAME_AS_MIRANDA;
+ DBVARIANT dbv;
+ if ( !DBGetContactSettingTString(NULL, MODULE, "BkBitmap", &dbv)) {
+ SetDlgItemText(hwndDlg, IDC_FILENAME, dbv.ptszVal);
+ db_free(&dbv);
}
- for (j = 0; j < FLT_FONTIDS; j++)
- {
- int nDependsOn = j;
- while (nDependsOn != i)
- {
- if (FLT_SAME_AS_NONE == nDependsOn || FLT_SAME_AS_MIRANDA == nDependsOn)
- {
- SendDlgItemMessage(hwndDlg, IDC_FONTID, CB_GETLBTEXT, j, (LPARAM)szText);
- itemId = SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_ADDSTRING, 0, (LPARAM)szText);
- SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_SETITEMDATA, itemId, j);
- if (j == s_rgFontSettings[i].sameAs)
- {
- SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_SETCURSEL, itemId, 0);
- nSameAs = j;
- }
- break;
- }
- else
- nDependsOn = s_rgFontSettings[nDependsOn].sameAs;
- }
- }
- if (FLT_SAME_AS_NONE == nSameAs)
- s_rgFontSettings[i].sameAsFlags = 0;
+ WORD bmpUse = (WORD)db_get_w(NULL, MODULE, "BkBitmapOpt", FLT_DEFAULT_BKGNDBITMAPOPT);
+ CheckDlgButton(hwndDlg, IDC_STRETCHH, ((bmpUse & CLB_STRETCHH) ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_STRETCHV, ((bmpUse & CLB_STRETCHV) ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_TILEH, ((bmpUse & CLBF_TILEH) ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_TILEV, ((bmpUse & CLBF_TILEV) ? BST_CHECKED : BST_UNCHECKED));
+ CheckDlgButton(hwndDlg, IDC_PROPORTIONAL, ((bmpUse & CLBF_PROPORTIONAL) ? BST_CHECKED : BST_UNCHECKED));
- SendMessage(hwndDlg, M_LOADFONT, i, 0);
- SendMessage(hwndDlg, M_SETSAMEASBOXES, i, 0);
- SendMessage(hwndDlg, M_REFRESHSAMEASBOXES, i, 0);
- SendMessage(hwndDlg, M_REMAKESAMPLE, 0, 0);
- break;
+ if (fnSHAutoComplete)
+ fnSHAutoComplete(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
}
- //fill the script combo box and set the selection to the value for fontid wParam
- case M_FILLSCRIPTCOMBO:
- {
- int i;
- HDC hdc = GetDC(hwndDlg);
- LOGFONT lf = {0};
+ return TRUE;
- lf.lfCharSet = DEFAULT_CHARSET;
- lf.lfPitchAndFamily = 0;
- GetDlgItemText(hwndDlg, IDC_TYPEFACE, lf.lfFaceName, sizeof(lf.lfFaceName));
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_RESETCONTENT, 0, 0);
- EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontScriptsProc, (LPARAM)GetDlgItem(hwndDlg, IDC_SCRIPT), 0);
- ReleaseDC(hwndDlg, hdc);
- for (i = SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETCOUNT, 0, 0) - 1; i >= 0; i--)
- {
- if (SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETITEMDATA, i, 0) == s_rgFontSettings[wParam].charset)
- {
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_SETCURSEL, i, 0);
- break;
- }
- }
- if (i < 0)
- SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_SETCURSEL, 0, 0);
- break;
- }
- // set the check mark in the 'same as' boxes to the right value for fontid wParam
- case M_SETSAMEASBOXES:
- {
- CheckDlgButton(hwndDlg, IDC_SAMETYPE, (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_FACE ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_SAMESIZE, (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_SIZE ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_SAMESTYLE, (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_STYLE ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_SAMECOLOUR, (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_COLOUR ? BST_CHECKED : BST_UNCHECKED));
+ case M_REFRESHBKGBOXES:
+ bEnable = IsDlgButtonChecked(hwndDlg, IDC_BITMAP);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_FILENAME), bEnable);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_BROWSE), bEnable);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_STRETCHH), bEnable);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_STRETCHV), bEnable);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TILEH), bEnable);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TILEV), bEnable);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PROPORTIONAL), bEnable);
+ break;
+
+ case M_REFRESHBORDERPICKERS:
+ bEnable = IsDlgButtonChecked(hwndDlg, IDC_DRAWBORDER);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LTEDGESCOLOR), bEnable);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_RBEDGESCOLOR), bEnable);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDC_DRAWBORDER:
+ SendMessage(hwndDlg, M_REFRESHBORDERPICKERS, 0, 0);
break;
- }
- // set the disabled flag on the 'same as' checkboxes to the values for fontid wParam
- case M_REFRESHSAMEASBOXES:
- {
- BOOL bSameAsNone = (FLT_SAME_AS_NONE == s_rgFontSettings[wParam].sameAs);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAMETYPE), !bSameAsNone);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAMESIZE), !bSameAsNone);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAMESTYLE), !bSameAsNone);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SAMECOLOUR), !bSameAsNone);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TYPEFACE), bSameAsNone || !(s_rgFontSettings[wParam].sameAsFlags & SAMEASF_FACE));
- EnableWindow(GetDlgItem(hwndDlg, IDC_SCRIPT), bSameAsNone || !(s_rgFontSettings[wParam].sameAsFlags & SAMEASF_FACE));
- EnableWindow(GetDlgItem(hwndDlg, IDC_FONTSIZE), bSameAsNone || !(s_rgFontSettings[wParam].sameAsFlags & SAMEASF_SIZE));
- EnableWindow(GetDlgItem(hwndDlg, IDC_BOLD), bSameAsNone || !(s_rgFontSettings[wParam].sameAsFlags & SAMEASF_STYLE));
- EnableWindow(GetDlgItem(hwndDlg, IDC_ITALIC), bSameAsNone || !(s_rgFontSettings[wParam].sameAsFlags & SAMEASF_STYLE));
- EnableWindow(GetDlgItem(hwndDlg, IDC_UNDERLINE), bSameAsNone || !(s_rgFontSettings[wParam].sameAsFlags & SAMEASF_STYLE));
- EnableWindow(GetDlgItem(hwndDlg, IDC_COLOUR), bSameAsNone || !(s_rgFontSettings[wParam].sameAsFlags & SAMEASF_COLOUR));
- break;
- }
- // remake the sample edit box font based on the settings in the controls
- case M_REMAKESAMPLE:
- {
- LOGFONTA lf;
-
- if (hFontSample)
- {
- SendDlgItemMessage(hwndDlg, IDC_SAMPLE, WM_SETFONT, SendDlgItemMessage(hwndDlg, IDC_FONTID, WM_GETFONT, 0, 0), 0);
- DeleteObject(hFontSample);
- }
- lf.lfHeight = GetDlgItemInt(hwndDlg, IDC_FONTSIZE, NULL, FALSE);
+ case IDC_BROWSE:
{
- HDC hdc = GetDC(NULL);
- lf.lfHeight = -MulDiv(lf.lfHeight, GetDeviceCaps(hdc, LOGPIXELSY), 72);
- ReleaseDC(NULL,hdc);
+ char str[MAX_PATH];
+ OPENFILENAMEA ofn = {0};
+ char filter[512];
+
+ GetDlgItemTextA(hwndDlg, IDC_FILENAME, str, sizeof(str));
+ ofn.lStructSize = sizeof(OPENFILENAMEA);
+ ofn.hwndOwner = hwndDlg;
+ ofn.hInstance = NULL;
+ CallService(MS_UTILS_GETBITMAPFILTERSTRINGS, sizeof(filter), (LPARAM)filter);
+ ofn.lpstrFilter = filter;
+ ofn.lpstrFile = str;
+ ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
+ ofn.nMaxFile = sizeof(str);
+ ofn.nMaxFileTitle = MAX_PATH;
+ ofn.lpstrDefExt = "bmp";
+ if (!GetOpenFileNameA(&ofn))
+ return FALSE;
+ SetDlgItemTextA(hwndDlg, IDC_FILENAME, str);
}
- lf.lfWidth = 0;
- lf.lfEscapement = 0;
- lf.lfOrientation = 0;
- lf.lfWeight = (IsDlgButtonChecked(hwndDlg, IDC_BOLD) ? FW_BOLD : FW_NORMAL);
- lf.lfItalic = (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ITALIC);
- lf.lfUnderline = (BYTE)IsDlgButtonChecked(hwndDlg, IDC_UNDERLINE);
- lf.lfStrikeOut = 0;
- lf.lfCharSet = (BYTE)SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETITEMDATA, SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETCURSEL, 0, 0), 0);
- lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
- lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
- lf.lfQuality = DEFAULT_QUALITY;
- lf.lfPitchAndFamily = (DEFAULT_PITCH | FF_DONTCARE);
- GetDlgItemTextA(hwndDlg, IDC_TYPEFACE, lf.lfFaceName, sizeof(lf.lfFaceName));
- if (NULL != (hFontSample = CreateFontIndirectA(&lf)))
- SendDlgItemMessage(hwndDlg, IDC_SAMPLE, WM_SETFONT, (WPARAM)hFontSample, TRUE);
break;
- }
- // copy the 'same as' settings for fontid wParam from their sources
- case M_RECALCONEFONT:
- {
- if (FLT_SAME_AS_NONE != s_rgFontSettings[wParam].sameAs)
- {
- SFontSettings* pSameAs = ((FLT_SAME_AS_MIRANDA == s_rgFontSettings[wParam].sameAs)
- ? &s_rgFontSettingsMiranda[wParam]
- : &s_rgFontSettings[s_rgFontSettings[wParam].sameAs]
- );
- if (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_FACE)
- {
- lstrcpyA(s_rgFontSettings[wParam].szFace, pSameAs->szFace);
- s_rgFontSettings[wParam].charset = pSameAs->charset;
- }
- if (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_SIZE)
- s_rgFontSettings[wParam].size = pSameAs->size;
- if (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_STYLE)
- s_rgFontSettings[wParam].style = pSameAs->style;
- if (s_rgFontSettings[wParam].sameAsFlags & SAMEASF_COLOUR)
- s_rgFontSettings[wParam].colour = pSameAs->colour;
- }
+ case IDC_FILENAME:
+ if (EN_CHANGE != HIWORD(wParam) || (HWND)lParam != GetFocus())
+ return FALSE;
break;
- }
- // recalculate the 'same as' settings for all fonts but wParam
- case M_RECALCOTHERFONTS:
- {
- int nFont;
- int nDepth;
- int nRecalcedFonts = 1;
- int nRecalcDepth;
- int nFontId = (int)wParam;
- int nSameAs;
- for (nRecalcDepth = 0; nRecalcedFonts < FLT_FONTIDS && nRecalcDepth < FLT_FONTIDS; nRecalcDepth++)
- {
- for (nFont = 0; nFont < FLT_FONTIDS; nFont++)
- {
- if (nFontId == nFont)
- continue;
-
- nSameAs = s_rgFontSettings[nFont].sameAs;
- for (nDepth = 0; nDepth < nRecalcDepth; nDepth++)
- {
- if (FLT_SAME_AS_NONE == nSameAs || FLT_SAME_AS_MIRANDA == nSameAs || nFontId == nSameAs)
- break;
-
- nSameAs = s_rgFontSettings[nSameAs].sameAs;
- }
- if (nDepth == nRecalcDepth)
- {
- if (nFontId == nSameAs)
- {
- SendMessage(hwndDlg, M_RECALCONEFONT, nFont, 0);
- nRecalcedFonts++;
- }
- else if (FLT_SAME_AS_NONE == nSameAs || FLT_SAME_AS_MIRANDA == nSameAs)
- nRecalcedFonts++;
- }
- }
- }
- break;
- }
- //save the font settings from the controls to font wParam
- case M_SAVEFONT:
- {
- s_rgFontSettings[wParam].sameAsFlags = (IsDlgButtonChecked(hwndDlg, IDC_SAMETYPE) ? SAMEASF_FACE : 0)
- | (IsDlgButtonChecked(hwndDlg, IDC_SAMESIZE) ? SAMEASF_SIZE : 0)
- | (IsDlgButtonChecked(hwndDlg, IDC_SAMESTYLE) ? SAMEASF_STYLE : 0)
- | (IsDlgButtonChecked(hwndDlg, IDC_SAMECOLOUR) ? SAMEASF_COLOUR : 0);
- s_rgFontSettings[wParam].sameAs = (BYTE)SendDlgItemMessage(hwndDlg
- , IDC_SAMEAS
- , CB_GETITEMDATA
- , SendDlgItemMessage(hwndDlg, IDC_SAMEAS, CB_GETCURSEL, 0, 0)
- , 0
- );
- GetDlgItemTextA(hwndDlg, IDC_TYPEFACE, s_rgFontSettings[wParam].szFace, sizeof(s_rgFontSettings[wParam].szFace));
- s_rgFontSettings[wParam].charset = (BYTE)SendDlgItemMessage(hwndDlg
- , IDC_SCRIPT
- , CB_GETITEMDATA
- , SendDlgItemMessage(hwndDlg, IDC_SCRIPT, CB_GETCURSEL, 0, 0)
- , 0
- );
- s_rgFontSettings[wParam].size = (char)GetDlgItemInt(hwndDlg, IDC_FONTSIZE, NULL, FALSE);
- s_rgFontSettings[wParam].style = (IsDlgButtonChecked(hwndDlg, IDC_BOLD) ? DBFONTF_BOLD : 0)
- | (IsDlgButtonChecked(hwndDlg, IDC_ITALIC) ? DBFONTF_ITALIC : 0)
- | (IsDlgButtonChecked(hwndDlg, IDC_UNDERLINE) ? DBFONTF_UNDERLINE : 0);
- s_rgFontSettings[wParam].colour = SendDlgItemMessage(hwndDlg, IDC_COLOUR, CPM_GETCOLOUR, 0, 0);
+ case IDC_BITMAP:
+ SendMessage(hwndDlg, M_REFRESHBKGBOXES, 0, 0);
break;
}
- // load font wParam into the controls
- case M_LOADFONT:
- {
- LOGFONTA lf;
- COLORREF colour;
- SetDlgItemTextA(hwndDlg, IDC_TYPEFACE, s_rgFontSettings[wParam].szFace);
- SendMessage(hwndDlg, M_FILLSCRIPTCOMBO, wParam, 0);
- SetDlgItemInt(hwndDlg, IDC_FONTSIZE, s_rgFontSettings[wParam].size, FALSE);
- CheckDlgButton(hwndDlg, IDC_BOLD, ((s_rgFontSettings[wParam].style & DBFONTF_BOLD) ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_ITALIC, ((s_rgFontSettings[wParam].style & DBFONTF_ITALIC) ? BST_CHECKED : BST_UNCHECKED));
- CheckDlgButton(hwndDlg, IDC_UNDERLINE, ((s_rgFontSettings[wParam].style & DBFONTF_UNDERLINE) ? BST_CHECKED : BST_UNCHECKED));
- GetDefaultFontSetting(TRUE, wParam, &lf, &colour);
- SendDlgItemMessage(hwndDlg, IDC_COLOUR, CPM_SETDEFAULTCOLOUR, 0, colour);
- SendDlgItemMessage(hwndDlg, IDC_COLOUR, CPM_SETCOLOUR, 0, s_rgFontSettings[wParam].colour);
- break;
- }
- // guess suitable values for the 'same as' checkboxes for fontId wParam
- case M_GUESSSAMEASBOXES:
- {
- s_rgFontSettings[wParam].sameAsFlags = 0;
- if (FLT_SAME_AS_NONE != s_rgFontSettings[wParam].sameAs)
- {
- SFontSettings* pSameAs = ((FLT_SAME_AS_MIRANDA == s_rgFontSettings[wParam].sameAs)
- ? &s_rgFontSettingsMiranda[wParam]
- : &s_rgFontSettings[s_rgFontSettings[wParam].sameAs]
- );
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
- if (!lstrcmpA(s_rgFontSettings[wParam].szFace, pSameAs->szFace) && s_rgFontSettings[wParam].charset == pSameAs->charset)
- s_rgFontSettings[wParam].sameAsFlags |= SAMEASF_FACE;
- if (s_rgFontSettings[wParam].size == pSameAs->size)
- s_rgFontSettings[wParam].sameAsFlags |= SAMEASF_SIZE;
- if (s_rgFontSettings[wParam].style == pSameAs->style)
- s_rgFontSettings[wParam].sameAsFlags |= SAMEASF_STYLE;
- if (s_rgFontSettings[wParam].colour == pSameAs->colour)
- s_rgFontSettings[wParam].sameAsFlags |= SAMEASF_COLOUR;
- SendMessage(hwndDlg,M_SETSAMEASBOXES,wParam,0);
- }
- break;
- }
- case WM_CTLCOLORSTATIC:
- {
- if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_SAMPLE))
- {
- SetTextColor((HDC)wParam, SendDlgItemMessage(hwndDlg, IDC_COLOUR, CPM_GETCOLOUR, 0, 0));
- SetBkColor((HDC)wParam, GetSysColor(COLOR_3DFACE));
- return (BOOL)GetSysColorBrush(COLOR_3DFACE);
- }
- break;
- }
- case WM_HSCROLL:
- {
- if (wParam != TB_ENDTRACK)
- {
- int nPos;
- char szPercent[20];
-
- nPos = (BYTE)SendDlgItemMessage(hwndDlg, IDC_SLIDER_OPACITY, TBM_GETPOS, 0, 0);
- fcOpt.thumbAlpha = (BYTE)(( nPos * 255 ) / 100 );
+ case WM_NOTIFY:
+ if (0 == ((LPNMHDR)lParam)->idFrom) {
+ switch (((LPNMHDR)lParam)->code) {
+ case PSN_RESET:
+ fcOpt.thumbAlpha = (BYTE)((double)db_get_b(NULL, MODULE, "Opacity", 100) * 2.55);
SetThumbsOpacity(fcOpt.thumbAlpha);
-
- wsprintfA(szPercent, "%d%%", nPos);
- SetDlgItemTextA(hwndDlg, IDC_OPACITY, szPercent);
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
- break;
- }
- case WM_COMMAND:
- {
- int nFontId = SendDlgItemMessage(hwndDlg, IDC_FONTID, CB_GETITEMDATA
- , SendDlgItemMessage(hwndDlg, IDC_FONTID, CB_GETCURSEL, 0, 0)
- , 0
- );
-
- switch (LOWORD(wParam))
- {
- case IDC_DRAWBORDER:
- {
- SendMessage(hwndDlg, M_REFRESHBORDERPICKERS, 0, 0);
- break;
- }
- case IDC_BROWSE:
- {
- char str[MAX_PATH];
- OPENFILENAMEA ofn = {0};
- char filter[512];
-
- GetDlgItemTextA(hwndDlg, IDC_FILENAME, str, sizeof(str));
- ofn.lStructSize = sizeof(OPENFILENAMEA);
- ofn.hwndOwner = hwndDlg;
- ofn.hInstance = NULL;
- CallService(MS_UTILS_GETBITMAPFILTERSTRINGS, sizeof(filter), (LPARAM)filter);
- ofn.lpstrFilter = filter;
- ofn.lpstrFile = str;
- ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
- ofn.nMaxFile = sizeof(str);
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = "bmp";
- if (!GetOpenFileNameA(&ofn))
- return FALSE;
- SetDlgItemTextA(hwndDlg, IDC_FILENAME, str);
- break;
- }
- case IDC_FILENAME:
- {
- if (EN_CHANGE != HIWORD(wParam) || (HWND)lParam != GetFocus())
- return FALSE;
- break;
- }
- case IDC_BITMAP:
- {
- SendMessage(hwndDlg, M_REFRESHBKGBOXES, 0, 0);
- break;
- }
- case IDC_FONTID:
- {
- if (CBN_SELCHANGE == HIWORD(wParam))
- SendMessage(hwndDlg, M_REBUILDFONTGROUP, 0, 0);
- return FALSE;
- }
- case IDC_SAMETYPE:
- case IDC_SAMESIZE:
- case IDC_SAMESTYLE:
- case IDC_SAMECOLOUR:
- {
- SendMessage(hwndDlg, M_SAVEFONT, nFontId, 0);
- SendMessage(hwndDlg, M_RECALCONEFONT, nFontId, 0);
- SendMessage(hwndDlg, M_RECALCOTHERFONTS, nFontId, 0);
- SendMessage(hwndDlg, M_LOADFONT, nFontId, 0);
- SendMessage(hwndDlg, M_REFRESHSAMEASBOXES, nFontId, 0);
- SendMessage(hwndDlg, M_REMAKESAMPLE, 0, 0);
- break;
- }
- case IDC_SAMEAS:
- {
- if (CBN_SELCHANGE != HIWORD(wParam))
- return FALSE;
- SendMessage(hwndDlg, M_SAVEFONT, nFontId, 0);
- SendMessage(hwndDlg, M_GUESSSAMEASBOXES, nFontId, 0);
- SendMessage(hwndDlg, M_REFRESHSAMEASBOXES, nFontId, 0);
- break;
- }
- case IDC_TYPEFACE:
- case IDC_SCRIPT:
- case IDC_FONTSIZE:
- {
- if (CBN_EDITCHANGE != HIWORD(wParam) && CBN_SELCHANGE != HIWORD(wParam))
- return FALSE;
- if (CBN_SELCHANGE == HIWORD(wParam))
- SendDlgItemMessage(hwndDlg, LOWORD(wParam), CB_SETCURSEL, SendDlgItemMessage(hwndDlg, LOWORD(wParam), CB_GETCURSEL, 0, 0), 0);
- if (IDC_TYPEFACE == LOWORD(wParam))
- SendMessage(hwndDlg, M_FILLSCRIPTCOMBO, nFontId, 0);
- // FALL THRU
- }
- case IDC_BOLD:
- case IDC_ITALIC:
- case IDC_UNDERLINE:
- case IDC_COLOUR:
- {
- SendMessage(hwndDlg, M_SAVEFONT, nFontId, 0);
- //SendMessage(hwndDlg, M_GUESSSAMEASBOXES, nFontId, 0);
- //SendMessage(hwndDlg, M_REFRESHSAMEASBOXES, nFontId, 0);
- SendMessage(hwndDlg, M_RECALCOTHERFONTS, nFontId, 0);
- SendMessage(hwndDlg, M_REMAKESAMPLE, 0, 0);
- break;
- }
- case IDC_SAMPLE:
- return 0;
- }
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- }
- case WM_NOTIFY:
- {
- LPNMHDR phdr = (LPNMHDR)(lParam);
-
- if (0 == phdr->idFrom)
- {
- switch (phdr->code)
- {
- case PSN_APPLY:
- {
- int i;
- char str[20];
- //BOOL bSuccess = FALSE;
-
- // Border
- DBWriteContactSettingByte(NULL, sModule, "DrawBorder", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DRAWBORDER));
- {
- COLORREF col;
-
- col = SendDlgItemMessage(hwndDlg, IDC_LTEDGESCOLOR, CPM_GETCOLOUR, 0, 0);
- DBWriteContactSettingDword(NULL, sModule, "LTEdgesColor", col);
- col = SendDlgItemMessage(hwndDlg, IDC_RBEDGESCOLOR, CPM_GETCOLOUR, 0, 0);
- DBWriteContactSettingDword(NULL, sModule, "RBEdgesColor", col);
- }
-
- // Backgroud
- {
- COLORREF col;
-
- col = SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_GETCOLOUR, 0, 0);
- DBWriteContactSettingDword(NULL, sModule, "BkColor", col);
- }
- DBWriteContactSettingByte(NULL, sModule, "BkUseBitmap", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_BITMAP));
- {
- char str[MAX_PATH];
-
- GetDlgItemTextA(hwndDlg, IDC_FILENAME, str, sizeof(str));
- DBWriteContactSettingString(NULL, sModule, "BkBitmap", str);
- }
- {
- WORD flags = 0;
-
- if (IsDlgButtonChecked(hwndDlg, IDC_STRETCHH))
- flags |= CLB_STRETCHH;
- if (IsDlgButtonChecked(hwndDlg, IDC_STRETCHV))
- flags |= CLB_STRETCHV;
- if (IsDlgButtonChecked(hwndDlg, IDC_TILEH))
- flags |= CLBF_TILEH;
- if (IsDlgButtonChecked(hwndDlg, IDC_TILEV))
- flags |= CLBF_TILEV;
- if (IsDlgButtonChecked(hwndDlg, IDC_PROPORTIONAL))
- flags |= CLBF_PROPORTIONAL;
- DBWriteContactSettingWord(NULL, sModule, "BkBitmapOpt", flags);
- }
-
- DBWriteContactSettingByte(NULL, sModule, "Opacity"
- , (BYTE)SendDlgItemMessage(hwndDlg, IDC_SLIDER_OPACITY, TBM_GETPOS, 0, 0)
- );
-
- for (i = 0; i < FLT_FONTIDS; i++)
- {
- wsprintfA(str, "Font%dName", i);
- DBWriteContactSettingString(NULL, sModule, str, s_rgFontSettings[i].szFace);
- wsprintfA(str, "Font%dSet", i);
- DBWriteContactSettingByte(NULL, sModule, str, s_rgFontSettings[i].charset);
- wsprintfA(str, "Font%dSize", i);
- DBWriteContactSettingByte(NULL, sModule, str, s_rgFontSettings[i].size);
- wsprintfA(str, "Font%dSty", i);
- DBWriteContactSettingByte(NULL, sModule, str, s_rgFontSettings[i].style);
- wsprintfA(str, "Font%dCol", i);
- DBWriteContactSettingDword(NULL, sModule, str, s_rgFontSettings[i].colour);
- wsprintfA(str, "Font%dAs", i);
- DBWriteContactSettingWord(NULL, sModule, str, MAKEWORD(s_rgFontSettings[i].sameAs, s_rgFontSettings[i].sameAsFlags));
- }
-
- ApplyOptionsChanges();
- OnStatusChanged();
- return TRUE;
- }
- case PSN_RESET:
- //case PSN_KILLACTIVE:
- {
- fcOpt.thumbAlpha = (BYTE)((double)DBGetContactSettingByte(NULL, sModule, "Opacity", 100) * 2.55);
- SetThumbsOpacity(fcOpt.thumbAlpha);
- break;
- }
- }
+ break;
+
+ case PSN_APPLY:
+ // Border
+ db_set_b(NULL, MODULE, "DrawBorder", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DRAWBORDER));
+
+ COLORREF col = SendDlgItemMessage(hwndDlg, IDC_LTEDGESCOLOR, CPM_GETCOLOUR, 0, 0);
+ db_set_dw(NULL, MODULE, "LTEdgesColor", col);
+ col = SendDlgItemMessage(hwndDlg, IDC_RBEDGESCOLOR, CPM_GETCOLOUR, 0, 0);
+ db_set_dw(NULL, MODULE, "RBEdgesColor", col);
+
+ // Backgroud
+ col = SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_GETCOLOUR, 0, 0);
+ db_set_dw(NULL, MODULE, "BkColor", col);
+
+ db_set_b(NULL, MODULE, "BkUseBitmap", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_BITMAP));
+
+ TCHAR str[MAX_PATH];
+ GetDlgItemText(hwndDlg, IDC_FILENAME, str, SIZEOF(str));
+ DBWriteContactSettingTString(NULL, MODULE, "BkBitmap", str);
+
+ WORD flags = 0;
+ if (IsDlgButtonChecked(hwndDlg, IDC_STRETCHH))
+ flags |= CLB_STRETCHH;
+ if (IsDlgButtonChecked(hwndDlg, IDC_STRETCHV))
+ flags |= CLB_STRETCHV;
+ if (IsDlgButtonChecked(hwndDlg, IDC_TILEH))
+ flags |= CLBF_TILEH;
+ if (IsDlgButtonChecked(hwndDlg, IDC_TILEV))
+ flags |= CLBF_TILEV;
+ if (IsDlgButtonChecked(hwndDlg, IDC_PROPORTIONAL))
+ flags |= CLBF_PROPORTIONAL;
+ db_set_w(NULL, MODULE, "BkBitmapOpt", flags);
+
+ ApplyOptionsChanges();
+ OnStatusChanged();
+ return TRUE;
}
- break;
}
- case WM_DESTROY:
- {
- if (hFontSample)
- {
- SendDlgItemMessage(hwndDlg, IDC_SAMPLE, WM_SETFONT, SendDlgItemMessage(hwndDlg, IDC_FONTID, WM_GETFONT, 0, 0), 0);
- DeleteObject(hFontSample);
- }
- break;
- }
-
+ break;
}
return FALSE;
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
+int OnOptionsInitialize(WPARAM wParam, LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp = { sizeof(odp) };
+ odp.hInstance = hInst;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_FLTCONT);
+ odp.pszTitle = LPGEN("Floating Contacts");
+ odp.pszGroup = LPGEN("Contact List");
+ odp.pszTab = LPGEN("Main Features");
+ odp.flags = ODPF_BOLDGROUPS;
+ odp.pfnDlgProc = OptWndProc;
+ Options_AddPage(wParam, &odp);
+
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_SKIN);
+ odp.pszTab = LPGEN("Appearance");
+ odp.pfnDlgProc = OptSknWndProc;
+ Options_AddPage(wParam, &odp);
+ return 0;
+}
|