Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/addsetting.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 8115 by yutakapon, Tue Sep 10 14:42:39 2019 UTC revision 8116 by yasuhide, Wed Sep 11 15:19:29 2019 UTC
# Line 50  Line 50 
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__)
# Line 71  const mouse_cursor_t MouseCursor[] = { Line 73  const mouse_cursor_t MouseCursor[] = {
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  {  {
# Line 646  CVisualPropPageDlg::~CVisualPropPageDlg( Line 647  CVisualPropPageDlg::~CVisualPropPageDlg(
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];
# Line 692  void CVisualPropPageDlg::OnInitDialog() Line 700  void CVisualPropPageDlg::OnInitDialog()
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);
# Line 805  void CVisualPropPageDlg::OnInitDialog() Line 819  void CVisualPropPageDlg::OnInitDialog()
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;
# Line 936  BOOL CVisualPropPageDlg::OnCommand(WPARA Line 991  BOOL CVisualPropPageDlg::OnCommand(WPARA
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) ) {
# Line 976  void CVisualPropPageDlg::OnOK() Line 1091  void CVisualPropPageDlg::OnOK()
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;

Legend:
Removed from v.8115  
changed lines
  Added in v.8116

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26