/[winpt]/trunk/Src/wptFileVerifyDlg.cpp
ViewVC logotype

Diff of /trunk/Src/wptFileVerifyDlg.cpp

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

revision 25 by twoaday, Wed Oct 12 10:04:26 2005 UTC revision 32 by twoaday, Mon Oct 24 08:03:48 2005 UTC
# Line 32  Line 32 
32  #include "wptKeyserver.h"  #include "wptKeyserver.h"
33    
34  static listview_ctrl_t dlg_lv = NULL;  static listview_ctrl_t dlg_lv = NULL;
35  static HWND dlg_wnd = NULL;  static HWND dlg_wnd = NULL;             /* handle to the dialog box window */
36  static int use_dlg_event = 0;  static HANDLE dlg_event = NULL;         /* event for the dialog. */
 static HANDLE dlg_event = NULL;  
 static int dlg_init = 0;  
37    
38    
39    /* Dialog box procedure to show the verify results of a file. */
40  static BOOL CALLBACK  static BOOL CALLBACK
41  file_verify_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  file_verify_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
42  {  {
# Line 48  file_verify_dlg_proc (HWND dlg, UINT msg Line 47  file_verify_dlg_proc (HWND dlg, UINT msg
47      case WM_INITDIALOG:      case WM_INITDIALOG:
48          #ifndef LANG_DE          #ifndef LANG_DE
49          SetWindowText (dlg, _("File Verify"));          SetWindowText (dlg, _("File Verify"));
50            SetDlgItemText (dlg, IDC_VERIFY_SAVE, _("&Save"));
51          #endif          #endif
52          rc = verlist_build (&lv, GetDlgItem (dlg, IDC_VERIFY_SIGLIST), 1);          rc = verlist_build (&lv, GetDlgItem (dlg, IDC_VERIFY_SIGLIST), 1);
53          if (rc)          if (rc)
# Line 56  file_verify_dlg_proc (HWND dlg, UINT msg Line 56  file_verify_dlg_proc (HWND dlg, UINT msg
56          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
57          dlg_lv = lv;          dlg_lv = lv;
58          dlg_wnd = dlg;          dlg_wnd = dlg;
         dlg_init = 1;  
59          return TRUE;          return TRUE;
60                    
61      case WM_DESTROY:      case WM_DESTROY:
# Line 66  file_verify_dlg_proc (HWND dlg, UINT msg Line 65  file_verify_dlg_proc (HWND dlg, UINT msg
65          }          }
66          dlg_lv = NULL;          dlg_lv = NULL;
67          dlg_wnd = NULL;          dlg_wnd = NULL;
         dlg_init = 0;  
68          return FALSE;          return FALSE;
69    
70      case WM_NOTIFY:      case WM_NOTIFY:
# Line 78  file_verify_dlg_proc (HWND dlg, UINT msg Line 76  file_verify_dlg_proc (HWND dlg, UINT msg
76              char buf[64];              char buf[64];
77              listview_get_item_text (lv, listview_get_curr_pos (lv), 4, buf, 63);              listview_get_item_text (lv, listview_get_curr_pos (lv), 4, buf, 63);
78              if (strlen (buf) == 10 && buf[0] == '0' && buf[1] == 'x') {              if (strlen (buf) == 10 && buf[0] == '0' && buf[1] == 'x') {
79                  rc = msg_box (dlg, _("Do you want to retrieve the key?"), _("Verify"), MB_QUEST_ASK);                  rc = msg_box (dlg, _("Do you want to retrieve the key?"),
80                                  _("Verify"), MB_QUEST_ASK);
81                  if (rc == IDYES) {                  if (rc == IDYES) {
82                      if (!hkp_recv_key (dlg, default_keyserver, default_keyserver_port, buf, 0, 0))                      if (!hkp_recv_key (dlg, default_keyserver,
83                                           default_keyserver_port, buf, 0, 0))
84                          keycache_reload (dlg);                          keycache_reload (dlg);
85                  }                  }
86              }              }
# Line 96  file_verify_dlg_proc (HWND dlg, UINT msg Line 96  file_verify_dlg_proc (HWND dlg, UINT msg
96      case WM_COMMAND:      case WM_COMMAND:
97          switch (LOWORD (wparam)) {          switch (LOWORD (wparam)) {
98          case IDOK:          case IDOK:
99              if (use_dlg_event)              if (dlg_event)
100                  SetEvent (dlg_event);                  SetEvent (dlg_event);
101              EndDialog (dlg, TRUE);              EndDialog (dlg, TRUE);
102              return TRUE;              return TRUE;
# Line 105  file_verify_dlg_proc (HWND dlg, UINT msg Line 105  file_verify_dlg_proc (HWND dlg, UINT msg
105      }      }
106            
107      return FALSE;      return FALSE;
108  } /* file_verify_dlg_proc */  }
109    
110    
111    /* Thread which spawns the verify dialog. */
112  static DWORD CALLBACK  static DWORD CALLBACK
113  file_verify_dlg_thread (void *opaque)  file_verify_dlg_thread (void *opaque)
114  {  {
115      DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_VERIFY, GetActiveWindow(),      DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_VERIFY, GetActiveWindow(),
116                      file_verify_dlg_proc, NULL);                      file_verify_dlg_proc, NULL);
117      if (use_dlg_event) {      if (dlg_event) {
118          CloseHandle (dlg_event);          CloseHandle (dlg_event);
119          use_dlg_event = 0;          dlg_event = NULL;
120      }      }
     ExitThread (0);  
121    
122        ExitThread (0);
123      return 0;      return 0;
124  } /* file_verify_dlg_thread */  }
125    
126    
127    /* Create the verify dialog asynchronly. */
128  int  int
129  file_verify_create_dlg (void)  file_verify_create_dlg (void)
130  {  {
# Line 130  file_verify_create_dlg (void) Line 132  file_verify_create_dlg (void)
132      HANDLE thread_hd;      HANDLE thread_hd;
133      SECURITY_ATTRIBUTES sec_attr;      SECURITY_ATTRIBUTES sec_attr;
134            
135      if (dlg_init == 1)      if (dlg_wnd)
136          return 0;          return 0;
137            
138      memset (&sec_attr, 0, sizeof (sec_attr));      memset (&sec_attr, 0, sizeof (sec_attr));
# Line 140  file_verify_create_dlg (void) Line 142  file_verify_create_dlg (void)
142      thread_hd = CreateThread (&sec_attr, 0, file_verify_dlg_thread, NULL, 0, &tid);      thread_hd = CreateThread (&sec_attr, 0, file_verify_dlg_thread, NULL, 0, &tid);
143      if (thread_hd == NULL) {      if (thread_hd == NULL) {
144          msg_box (NULL, "Could not create verify thread.", _("Verify"), MB_ERR);          msg_box (NULL, "Could not create verify thread.", _("Verify"), MB_ERR);
145          return 1;          return -1;
146      }      }
147            
148      return 0;      return 0;
149  } /* file_verify_create_dlg */  }
150    
151    
152  int  /* Add the signature + information in @c to the verify dialog. */
153    void
154  file_verify_add_state (file_sig_ctx_t c)  file_verify_add_state (file_sig_ctx_t c)
155  {  {
156      if (dlg_lv)      if (dlg_lv)
157          return verlist_add_sig_log (dlg_lv, c);          verlist_add_sig_log (dlg_lv, c);
158      return 1;  }
 } /* file_verify_add_state */  
159    
160    
161    /* Create an event for the verify dialog. */
162  void  void
163  file_verify_use_event (void)  file_verify_use_event (void)
164  {  {
# Line 165  file_verify_use_event (void) Line 168  file_verify_use_event (void)
168      sec_attr.bInheritHandle = FALSE;      sec_attr.bInheritHandle = FALSE;
169      sec_attr.nLength = sizeof (sec_attr);      sec_attr.nLength = sizeof (sec_attr);
170      dlg_event = CreateEvent (&sec_attr, TRUE, FALSE, NULL);      dlg_event = CreateEvent (&sec_attr, TRUE, FALSE, NULL);
171    }
     use_dlg_event = 1;  
 } /* file_verify_use_event */  
172    
173    
174    /* Wait until the verify event is signaled. */
175  void  void
176  file_verify_wait (void)  file_verify_wait (void)
177  {  {
178      WaitForSingleObject (dlg_event, INFINITE);      WaitForSingleObject (dlg_event, INFINITE);
179  } /* file_verify_wait */  }

Legend:
Removed from v.25  
changed lines
  Added in v.32

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26