Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ttxssh.c

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

revision 3007 by maya, Sun Sep 2 05:20:58 2007 UTC revision 3008 by maya, Tue Sep 4 13:40:18 2007 UTC
# Line 805  static void enable_dlg_items(HWND dlg, i Line 805  static void enable_dlg_items(HWND dlg, i
805          }          }
806  }  }
807    
808    // C-n/C-p をサポート (2007.9.4 maya)
809    // ドロップダウンの中のエディットコントロールを
810    // サブクラス化するためのウインドウプロシージャ
811    static WNDPROC OrigHostnameEditProc; // Original window procedure
812    static LRESULT CALLBACK HostnameEditProc(HWND dlg, UINT msg,
813                                             WPARAM wParam, LPARAM lParam)
814    {
815            HWND parent;
816            int  max_item, select_item;
817    
818            switch (msg) {
819                    // キーが押されたのを検知する
820                    case WM_KEYDOWN:
821                            if (GetKeyState(VK_CONTROL) < 0) {
822                                    switch (wParam) {
823                                            case 0x4e: // Ctrl+n
824                                                    parent = GetParent(dlg);
825                                                    max_item = SendMessage(parent, CB_GETCOUNT, 0, 0);
826                                                    select_item = SendMessage(parent, CB_GETCURSEL, 0, 0);
827                                                    if (select_item < max_item - 1) {
828                                                            PostMessage(parent, CB_SETCURSEL, select_item + 1, 0);
829                                                    }
830                                                    return 0;
831                                            case 0x50: // Ctrl+p
832                                                    parent = GetParent(dlg);
833                                                    select_item = SendMessage(parent, CB_GETCURSEL, 0, 0);
834                                                    if (select_item > 0) {
835                                                            PostMessage(parent, CB_SETCURSEL, select_item - 1, 0);
836                                                    }
837                                                    return 0;
838                                    }
839                            }
840                            break;
841    
842                    // C-n/C-p の結果送られる文字で音が鳴るので捨てる
843                    case WM_CHAR:
844                            switch (wParam) {
845                                    case 0x0e:
846                                    case 0x10:
847                                            return 0;
848                            }
849            }
850    
851            return CallWindowProc(OrigHostnameEditProc, dlg, msg, wParam, lParam);
852    }
853    
854  static BOOL CALLBACK TTXHostDlg(HWND dlg, UINT msg, WPARAM wParam,  static BOOL CALLBACK TTXHostDlg(HWND dlg, UINT msg, WPARAM wParam,
855                                  LPARAM lParam)                                  LPARAM lParam)
856  {  {
# Line 820  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 866  static BOOL CALLBACK TTXHostDlg(HWND dlg
866          LOGFONT logfont;          LOGFONT logfont;
867          HFONT font;          HFONT font;
868          char uimsg[MAX_UIMSG];          char uimsg[MAX_UIMSG];
869            HWND hwndHostname;     // HOSTNAME dropdown
870            HWND hwndHostnameEdit; // Edit control on HOSTNAME dropdown
871    
872          GET_VAR();          GET_VAR();
873    
# Line 897  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 945  static BOOL CALLBACK TTXHostDlg(HWND dlg
945    
946                  SendDlgItemMessage(dlg, IDC_HOSTNAME, CB_SETCURSEL, 0, 0);                  SendDlgItemMessage(dlg, IDC_HOSTNAME, CB_SETCURSEL, 0, 0);
947    
948                    // C-n/C-p のためにサブクラス化 (2007.9.4 maya)
949                    hwndHostname = GetDlgItem(dlg, IDC_HOSTNAME);
950                    hwndHostnameEdit = GetWindow(hwndHostname, GW_CHILD);
951                    OrigHostnameEditProc = (WNDPROC)GetWindowLong(hwndHostnameEdit, GWL_WNDPROC);
952                    SetWindowLong(hwndHostnameEdit, GWL_WNDPROC, (LONG)HostnameEditProc);
953    
954                  CheckRadioButton(dlg, IDC_HOSTTELNET, IDC_HOSTOTHER,                  CheckRadioButton(dlg, IDC_HOSTTELNET, IDC_HOSTOTHER,
955                                   pvar->settings.Enabled ? IDC_HOSTSSH : GetHNRec->                                   pvar->settings.Enabled ? IDC_HOSTSSH : GetHNRec->
956                                   Telnet ? IDC_HOSTTELNET : IDC_HOSTOTHER);                                   Telnet ? IDC_HOSTTELNET : IDC_HOSTOTHER);

Legend:
Removed from v.3007  
changed lines
  Added in v.3008

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