| 50 |
#include "helpid.h" |
#include "helpid.h" |
| 51 |
#include "addsetting.h" |
#include "addsetting.h" |
| 52 |
|
|
| 53 |
|
#include "TipWin.h" |
| 54 |
|
|
| 55 |
#ifdef _DEBUG |
#ifdef _DEBUG |
| 56 |
#define free(p) _free_dbg((p), _NORMAL_BLOCK) |
#define free(p) _free_dbg((p), _NORMAL_BLOCK) |
| 57 |
#define _strdup(s) _strdup_dbg((s), _NORMAL_BLOCK, __FILE__, __LINE__) |
#define _strdup(s) _strdup_dbg((s), _NORMAL_BLOCK, __FILE__, __LINE__) |
| 73 |
}; |
}; |
| 74 |
#define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1) |
#define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1) |
| 75 |
|
|
| 76 |
double round(double r) { |
static TipWin *ActiveOpacityTip; |
| 77 |
return ( r > 0.0 ) ? floor(r + 0.5) : ceil(r - 0.5); |
static TipWin *InactiveOpacityTip; |
|
} |
|
| 78 |
|
|
| 79 |
void CVisualPropPageDlg::SetupRGBbox(int index) |
void CVisualPropPageDlg::SetupRGBbox(int index) |
| 80 |
{ |
{ |
| 647 |
|
|
| 648 |
// CVisualPropPageDlg メッセージ ハンドラ |
// CVisualPropPageDlg メッセージ ハンドラ |
| 649 |
|
|
| 650 |
|
static void DestroyOpacityTip(TipWin** OpacityTip) { |
| 651 |
|
if (*OpacityTip) { |
| 652 |
|
TipWinDestroy(*OpacityTip); |
| 653 |
|
(*OpacityTip) = NULL; |
| 654 |
|
} |
| 655 |
|
} |
| 656 |
|
|
| 657 |
void CVisualPropPageDlg::OnInitDialog() |
void CVisualPropPageDlg::OnInitDialog() |
| 658 |
{ |
{ |
| 659 |
char buf[MAXPATHLEN]; |
char buf[MAXPATHLEN]; |
| 700 |
|
|
| 701 |
// (1)AlphaBlend |
// (1)AlphaBlend |
| 702 |
|
|
| 703 |
SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, (LONG)round((ts.AlphaBlendActive / 255.0) * 100.0)); |
SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, ts.AlphaBlendActive); |
| 704 |
|
DestroyOpacityTip(&ActiveOpacityTip); |
| 705 |
SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, (LONG)round((ts.AlphaBlendInactive / 255.0) * 100)); |
SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETRANGE, true, MAKELPARAM(0, 255)); |
| 706 |
|
SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETPOS, true, ts.AlphaBlendActive); |
| 707 |
|
|
| 708 |
|
SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, ts.AlphaBlendInactive); |
| 709 |
|
DestroyOpacityTip(&InactiveOpacityTip); |
| 710 |
|
SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETRANGE, true, MAKELPARAM(0, 255)); |
| 711 |
|
SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETPOS, true, ts.AlphaBlendInactive); |
| 712 |
|
|
| 713 |
// (2)[BG] BGEnable |
// (2)[BG] BGEnable |
| 714 |
SetCheck(IDC_ETERM_LOOKFEEL, ts.EtermLookfeel.BGEnable); |
SetCheck(IDC_ETERM_LOOKFEEL, ts.EtermLookfeel.BGEnable); |
| 819 |
::SetFocus(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE)); |
::SetFocus(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE)); |
| 820 |
} |
} |
| 821 |
|
|
| 822 |
|
void CVisualPropPageDlg::OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar) |
| 823 |
|
{ |
| 824 |
|
int pos; |
| 825 |
|
if ( pScrollBar == GetDlgItem(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR) ) { |
| 826 |
|
switch (nSBCode) { |
| 827 |
|
case SB_TOP: |
| 828 |
|
case SB_BOTTOM: |
| 829 |
|
case SB_LINEDOWN: |
| 830 |
|
case SB_LINEUP: |
| 831 |
|
case SB_PAGEDOWN: |
| 832 |
|
case SB_PAGEUP: |
| 833 |
|
case SB_THUMBPOSITION: |
| 834 |
|
case SB_THUMBTRACK: |
| 835 |
|
pos = SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_GETPOS, NULL, NULL); |
| 836 |
|
SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, pos); |
| 837 |
|
break; |
| 838 |
|
case SB_ENDSCROLL: |
| 839 |
|
default: |
| 840 |
|
return; |
| 841 |
|
} |
| 842 |
|
} |
| 843 |
|
else if ( pScrollBar == GetDlgItem(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR) ) { |
| 844 |
|
switch (nSBCode) { |
| 845 |
|
case SB_TOP: |
| 846 |
|
case SB_BOTTOM: |
| 847 |
|
case SB_LINEDOWN: |
| 848 |
|
case SB_LINEUP: |
| 849 |
|
case SB_PAGEDOWN: |
| 850 |
|
case SB_PAGEUP: |
| 851 |
|
case SB_THUMBPOSITION: |
| 852 |
|
case SB_THUMBTRACK: |
| 853 |
|
pos = SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_GETPOS, NULL, NULL); |
| 854 |
|
SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, pos); |
| 855 |
|
break; |
| 856 |
|
case SB_ENDSCROLL: |
| 857 |
|
default: |
| 858 |
|
return; |
| 859 |
|
} |
| 860 |
|
} |
| 861 |
|
} |
| 862 |
|
|
| 863 |
BOOL CVisualPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam) |
BOOL CVisualPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam) |
| 864 |
{ |
{ |
| 865 |
int sel; |
int sel; |
| 991 |
|
|
| 992 |
::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE); |
::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE); |
| 993 |
} |
} |
|
|
|
| 994 |
return TRUE; |
return TRUE; |
| 995 |
|
case IDC_ALPHA_BLEND_ACTIVE | (EN_CHANGE << 16): |
| 996 |
|
{ |
| 997 |
|
int pos; |
| 998 |
|
pos = GetDlgItemInt(IDC_ALPHA_BLEND_ACTIVE); |
| 999 |
|
SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETPOS, TRUE, pos); |
| 1000 |
|
|
| 1001 |
|
TCHAR tipbuf[32]; |
| 1002 |
|
TCHAR uimsg[MAX_UIMSG]; |
| 1003 |
|
RECT rc; |
| 1004 |
|
get_lang_msg("TOOLTIP_TITLEBAR_OPACITY", uimsg, sizeof(uimsg), "Opacity %.1f %%", ts.UILanguageFile); |
| 1005 |
|
_stprintf_s(tipbuf, _countof(tipbuf), _T(uimsg), (pos / 255.0) * 100); |
| 1006 |
|
|
| 1007 |
|
DestroyOpacityTip(&InactiveOpacityTip); |
| 1008 |
|
SetTimer(GetSafeHwnd(), IdOpacityTipTimer, 1000, NULL); |
| 1009 |
|
::GetWindowRect(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE), &rc); |
| 1010 |
|
if (ActiveOpacityTip == NULL) { |
| 1011 |
|
ActiveOpacityTip = TipWinCreate(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE), rc.right, rc.bottom, tipbuf); |
| 1012 |
|
} |
| 1013 |
|
else { |
| 1014 |
|
TipWinSetText(ActiveOpacityTip, tipbuf); |
| 1015 |
|
// ツールチップのリサイズが失敗したように見える問題の暫定対策 |
| 1016 |
|
TipWinSetText(ActiveOpacityTip, tipbuf); |
| 1017 |
|
} |
| 1018 |
|
return TRUE; |
| 1019 |
|
} |
| 1020 |
|
case IDC_ALPHA_BLEND_INACTIVE | (EN_CHANGE << 16): |
| 1021 |
|
{ |
| 1022 |
|
int pos; |
| 1023 |
|
pos = GetDlgItemInt(IDC_ALPHA_BLEND_INACTIVE); |
| 1024 |
|
SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETPOS, TRUE, pos); |
| 1025 |
|
|
| 1026 |
|
TCHAR tipbuf[32], uimsg[MAX_UIMSG]; |
| 1027 |
|
RECT rc; |
| 1028 |
|
get_lang_msg("TOOLTIP_TITLEBAR_OPACITY", uimsg, sizeof(uimsg), "Opacity %.1f %%", ts.UILanguageFile); |
| 1029 |
|
_stprintf_s(tipbuf, _countof(tipbuf), _T(uimsg), (pos / 255.0) * 100); |
| 1030 |
|
|
| 1031 |
|
DestroyOpacityTip(&ActiveOpacityTip); |
| 1032 |
|
SetTimer(GetSafeHwnd(), IdOpacityTipTimer, 1000, NULL); |
| 1033 |
|
::GetWindowRect(GetDlgItem(IDC_ALPHA_BLEND_INACTIVE), &rc); |
| 1034 |
|
if (InactiveOpacityTip == NULL) { |
| 1035 |
|
InactiveOpacityTip = TipWinCreate(GetDlgItem(IDC_ALPHA_BLEND_INACTIVE), rc.right, rc.bottom, tipbuf); |
| 1036 |
|
} |
| 1037 |
|
else { |
| 1038 |
|
TipWinSetText(InactiveOpacityTip, tipbuf); |
| 1039 |
|
// ツールチップのリサイズが失敗したように見える問題の暫定対策 |
| 1040 |
|
TipWinSetText(InactiveOpacityTip, tipbuf); |
| 1041 |
|
} |
| 1042 |
|
return TRUE; |
| 1043 |
|
} |
| 1044 |
} |
} |
| 1045 |
|
|
| 1046 |
return TTCPropertyPage::OnCommand(wParam, lParam); |
return TTCPropertyPage::OnCommand(wParam, lParam); |
| 1047 |
} |
} |
| 1048 |
|
|
| 1049 |
|
|
| 1050 |
|
void CVisualPropPageDlg::OnTimer(UINT_PTR nIDEvent) |
| 1051 |
|
{ |
| 1052 |
|
KillTimer(GetSafeHwnd(), nIDEvent); |
| 1053 |
|
switch (nIDEvent) { |
| 1054 |
|
case IdOpacityTipTimer: |
| 1055 |
|
DestroyOpacityTip(&ActiveOpacityTip); |
| 1056 |
|
DestroyOpacityTip(&InactiveOpacityTip); |
| 1057 |
|
break; |
| 1058 |
|
} |
| 1059 |
|
} |
| 1060 |
|
|
| 1061 |
HBRUSH CVisualPropPageDlg::OnCtlColor(HDC hDC, HWND hWnd) |
HBRUSH CVisualPropPageDlg::OnCtlColor(HDC hDC, HWND hWnd) |
| 1062 |
{ |
{ |
| 1063 |
if ( hWnd == GetDlgItem(IDC_SAMPLE_COLOR) ) { |
if ( hWnd == GetDlgItem(IDC_SAMPLE_COLOR) ) { |
| 1091 |
// (1) |
// (1) |
| 1092 |
GetDlgItemTextA(IDC_ALPHA_BLEND_ACTIVE, buf, sizeof(buf)); |
GetDlgItemTextA(IDC_ALPHA_BLEND_ACTIVE, buf, sizeof(buf)); |
| 1093 |
if (isdigit(buf[0])) { |
if (isdigit(buf[0])) { |
| 1094 |
int i = (int)round((double)(255 * atoi(buf) / 100)); |
int i = atoi(buf); |
| 1095 |
ts.AlphaBlendActive = |
ts.AlphaBlendActive = |
| 1096 |
(i < 0) ? 0 : |
(i < 0) ? 0 : |
| 1097 |
(i > 255) ? 255 : i; |
(i > 255) ? 255 : i; |
| 1098 |
} |
} |
| 1099 |
GetDlgItemTextA(IDC_ALPHA_BLEND_INACTIVE, buf, sizeof(buf)); |
GetDlgItemTextA(IDC_ALPHA_BLEND_INACTIVE, buf, sizeof(buf)); |
| 1100 |
if (isdigit(buf[0])) { |
if (isdigit(buf[0])) { |
| 1101 |
int i = (int)round((double)(255 * atoi(buf) / 100)); |
int i = atoi(buf); |
| 1102 |
ts.AlphaBlendInactive = |
ts.AlphaBlendInactive = |
| 1103 |
(i < 0) ? 0 : |
(i < 0) ? 0 : |
| 1104 |
(i > 255) ? 255 : i; |
(i > 255) ? 255 : i; |