Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/filesys_log.cpp

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

revision 10798 by zmatsuo, Wed Jul 5 14:43:20 2023 UTC revision 10799 by zmatsuo, Thu Jul 6 14:45:17 2023 UTC
# Line 420  typedef struct { Line 420  typedef struct {
420          // work          // work
421          BOOL file_exist;          BOOL file_exist;
422          int current_bom; // 存在するファイルのエンコーディング(ファイルのBOMから判定)          int current_bom; // 存在するファイルのエンコーディング(ファイルのBOMから判定)
423            UINT_PTR timer;
424            BOOL enable_timer;
425            WNDPROC proc;
426          TTTSet *pts;          TTTSet *pts;
427          TComVar *pcv;          TComVar *pcv;
428  } LogDlgWork_t;  } LogDlgWork_t;
# Line 522  static void CheckLogFile(HWND Dialog, co Line 525  static void CheckLogFile(HWND Dialog, co
525          work->current_bom = bom;          work->current_bom = bom;
526  }  }
527    
528    static LRESULT CALLBACK FNameEditProc(HWND dlg, UINT msg,
529                                                                              WPARAM wParam, LPARAM lParam)
530    {
531            LogDlgWork_t *work = (LogDlgWork_t *)GetWindowLongPtr(dlg, GWLP_USERDATA);
532            switch (msg) {
533            case WM_KEYDOWN:
534            case WM_LBUTTONDOWN:
535            case WM_RBUTTONDOWN:
536            case WM_KILLFOCUS:
537                    work->enable_timer = FALSE;
538                    break;
539            }
540            return CallWindowProcW(work->proc, dlg, msg, wParam, lParam);
541    }
542    
543  static INT_PTR CALLBACK LogFnHook(HWND Dialog, UINT Message, WPARAM wParam, LPARAM lParam)  static INT_PTR CALLBACK LogFnHook(HWND Dialog, UINT Message, WPARAM wParam, LPARAM lParam)
544  {  {
545          static const DlgTextInfo TextInfos[] = {          static const DlgTextInfo TextInfos[] = {
# Line 571  static INT_PTR CALLBACK LogFnHook(HWND D Line 589  static INT_PTR CALLBACK LogFnHook(HWND D
589                  // ファイル名を設定する                  // ファイル名を設定する
590                  //   ファイルのチェック、コントロールの設定も行われる                  //   ファイルのチェック、コントロールの設定も行われる
591                  //              WM_COMMAND, EN_CHANGE が発生する                  //              WM_COMMAND, EN_CHANGE が発生する
592                  SetDlgItemTextW(Dialog, IDC_FOPT_FILENAME_EDIT, work->info->filename);                  wchar_t *fname = FLogGetLogFilename(work->info->filename);
593                  work->info->filename = NULL;                  SetDlgItemTextW(Dialog, IDC_FOPT_FILENAME_EDIT, fname);
594                    free(fname);
595                    HWND file_edit = GetDlgItem(Dialog, IDC_FOPT_FILENAME_EDIT);
596                    SetWindowLongPtr(file_edit, GWLP_USERDATA, (LONG_PTR)work);
597                    work->proc = (WNDPROC)SetWindowLongPtrW(file_edit, GWLP_WNDPROC, (LONG_PTR)FNameEditProc);
598    
599                  // timestamp 種別                  // timestamp 種別
600                  int tstype = pts->LogTimestampType == TIMESTAMP_LOCAL ? 0 :                  int tstype = pts->LogTimestampType == TIMESTAMP_LOCAL ? 0 :
# Line 593  static INT_PTR CALLBACK LogFnHook(HWND D Line 615  static INT_PTR CALLBACK LogFnHook(HWND D
615    
616                  CenterWindow(Dialog, GetParent(Dialog));                  CenterWindow(Dialog, GetParent(Dialog));
617    
618                    SetFocus(GetDlgItem(Dialog, IDC_FOPT_FILENAME_EDIT));
619    
620                    work->enable_timer = TRUE;
621                    work->timer = SetTimer(Dialog, 0, 1000, NULL);
622    
623                  return TRUE;                  return TRUE;
624          }          }
625    
# Line 704  static INT_PTR CALLBACK LogFnHook(HWND D Line 731  static INT_PTR CALLBACK LogFnHook(HWND D
731                  DragFinish(hDrop);                  DragFinish(hDrop);
732                  return TRUE;                  return TRUE;
733          }          }
734            case WM_TIMER: {
735                    if (!work->enable_timer) {
736                            KillTimer(Dialog, work->timer);
737                            work->timer = 0;
738                            break;
739                    }
740                    wchar_t *fname = FLogGetLogFilename(work->info->filename);
741                    SetDlgItemTextW(Dialog, IDC_FOPT_FILENAME_EDIT, fname);
742                    SendDlgItemMessageW(Dialog, IDC_FOPT_FILENAME_EDIT, EM_SETSEL, 0, -1);
743                    free(fname);
744                    work->timer = SetTimer(Dialog, 0, 1000, NULL);
745                    break;
746            }
747            case WM_DESTROY:
748                    if (work->timer != 0) {
749                            KillTimer(Dialog, work->timer);
750                    }
751                    break;
752          }          }
753          return FALSE;          return FALSE;
754  }  }
# Line 1354  const wchar_t *FLogGetFilename(void) Line 1399  const wchar_t *FLogGetFilename(void)
1399  BOOL FLogOpenDialog(HINSTANCE hInst, HWND hWnd, FLogDlgInfo_t *info)  BOOL FLogOpenDialog(HINSTANCE hInst, HWND hWnd, FLogDlgInfo_t *info)
1400  {  {
1401          LogDlgWork_t *work = (LogDlgWork_t *)calloc(sizeof(LogDlgWork_t), 1);          LogDlgWork_t *work = (LogDlgWork_t *)calloc(sizeof(LogDlgWork_t), 1);
         wchar_t *srcfnameW = FLogGetLogFilename(info->filename);  
1402          work->info = info;          work->info = info;
         work->info->filename = srcfnameW;  
1403          work->pts = &ts;          work->pts = &ts;
1404          work->pcv = &cv;          work->pcv = &cv;
1405          INT_PTR ret = TTDialogBoxParam(          INT_PTR ret = TTDialogBoxParam(
1406                  hInst, MAKEINTRESOURCE(IDD_LOGDLG),                  hInst, MAKEINTRESOURCE(IDD_LOGDLG),
1407                  hWnd, LogFnHook, (LPARAM)work);                  hWnd, LogFnHook, (LPARAM)work);
         free(srcfnameW);  
1408          free(work);          free(work);
1409          return ret == IDOK ? TRUE : FALSE;          return ret == IDOK ? TRUE : FALSE;
1410  }  }

Legend:
Removed from v.10798  
changed lines
  Added in v.10799

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