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

Diff of /trunk/Src/wptFileManagerDlg.cpp

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

revision 5 by twoaday, Mon Mar 7 13:21:36 2005 UTC revision 28 by twoaday, Thu Oct 20 12:35:59 2005 UTC
# Line 20  Line 20 
20    
21  #include <windows.h>  #include <windows.h>
22  #include <commctrl.h>  #include <commctrl.h>
23    #include <sys/stat.h>
24    
25  #include "../resource.h"  #include "../resource.h"
26  #include "wptCommonCtl.h"  #include "wptCommonCtl.h"
# Line 35  Line 36 
36  #include "wptFileManager.h"  #include "wptFileManager.h"
37  #include "wptRegistry.h"  #include "wptRegistry.h"
38    
39    #define FM_SEPARATOR_ID 10001
40    
41  #define send_cmd_id(hwnd, id) \  #define send_cmd_id(hwnd, id) \
42      PostMessage( (hwnd), WM_COMMAND, MAKEWPARAM( (id), 0), 0 )      PostMessage( (hwnd), WM_COMMAND, MAKEWPARAM( (id), 0), 0 )
43    
# Line 43  static subclass_s filelist_proc; Line 46  static subclass_s filelist_proc;
46  struct thread_ctx_s {  struct thread_ctx_s {
47      HWND   dlg;      HWND   dlg;
48      HANDLE fd;      HANDLE fd;
49      char * drive;      char *drive;
50  };  };
51  typedef struct thread_ctx_s * thread_ctx_t;  typedef struct thread_ctx_s *thread_ctx_t;
52    
53    
54    /* Dialog procedure for selecting recipients for encryption. */
55  BOOL CALLBACK  BOOL CALLBACK
56  file_encrypt_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  file_encrypt_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
57  {  {
# Line 55  file_encrypt_dlg_proc (HWND dlg, UINT ms Line 59  file_encrypt_dlg_proc (HWND dlg, UINT ms
59      static fm_state_t c;      static fm_state_t c;
60      static int req_signer = 0;      static int req_signer = 0;
61      static keylist_t list = NULL;      static keylist_t list = NULL;
62      gpgme_keycache_t kc;      gpg_keycache_t kc;
63      gpgme_ctx_t ctx;      gpgme_ctx_t ctx;
64      int force_trust = 0, count = 0;      int force_trust = 0, count = 0;
65            
# Line 78  file_encrypt_dlg_proc (HWND dlg, UINT ms Line 82  file_encrypt_dlg_proc (HWND dlg, UINT ms
82              seclist_init (dlg, IDC_ENCRYPT_SECLIST, KEYLIST_FLAG_SHORT, &list);              seclist_init (dlg, IDC_ENCRYPT_SECLIST, KEYLIST_FLAG_SHORT, &list);
83          }          }
84          lv = keylist_load (GetDlgItem (dlg, IDC_ENCRYPT_LIST), kc, NULL,          lv = keylist_load (GetDlgItem (dlg, IDC_ENCRYPT_LIST), kc, NULL,
85                              KEYLIST_ENCRYPT|KEYLIST_FLAG_FILE, GPGME_ATTR_USERID);                              KEYLIST_ENCRYPT|KEYLIST_FLAG_FILE, KEY_SORT_USERID);
86          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
87          return TRUE;          return TRUE;
88                    
# Line 99  file_encrypt_dlg_proc (HWND dlg, UINT ms Line 103  file_encrypt_dlg_proc (HWND dlg, UINT ms
103              int sortby = 0;              int sortby = 0;
104    
105              switch( p->iSubItem ) {              switch( p->iSubItem ) {
106              case 0: sortby = GPGME_ATTR_USERID; break;              case 0: sortby = KEY_SORT_USERID; break;
107              case 1: sortby = GPGME_ATTR_KEYID; break;              case 1: sortby = KEY_SORT_KEYID; break;
108              case 2: sortby = GPGME_ATTR_LEN; break;              case 2: sortby = KEY_SORT_LEN; break;
109              case 4: sortby = GPGME_ATTR_VALIDITY; break;              case 4: sortby = KEY_SORT_VALIDITY; break;
110              default:sortby = GPGME_ATTR_USERID; break;              default:sortby = KEY_SORT_USERID; break;
111              }              }
112              keylist_sort( lv, sortby );              keylist_sort( lv, sortby );
113          }          }
# Line 125  file_encrypt_dlg_proc (HWND dlg, UINT ms Line 129  file_encrypt_dlg_proc (HWND dlg, UINT ms
129          switch( LOWORD( wparam ) ) {          switch( LOWORD( wparam ) ) {
130          case IDOK:          case IDOK:
131              ctx = c->ctx;              ctx = c->ctx;
132              gpgme_recipients_release (c->recp);              if (c->recp)
133              c->recp = keylist_get_recipients (lv, &force_trust, &count);                  free (c->recp);
134              if( !gpgme_recipients_count (c->recp) ) {              c->recp = keylist_get_recipients (lv, &force_trust, &c->n_recp);
135                if (!c->n_recp) {
136                  msg_box (dlg, _("Please select at least one recipient."),                  msg_box (dlg, _("Please select at least one recipient."),
137                           _("File Encrypt"), MB_ERR);                           _("File Encrypt"), MB_ERR);
138                  gpgme_recipients_release(c->recp);                  free (c->recp);
139                  c->recp = NULL;                  c->recp = NULL;
140                  c->cancel = 1;                  c->cancel = 1;
141                  return FALSE;                  return TRUE;
142              }              }
143              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_SIGN)) {              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_SIGN)) {
144                  gpgme_key_t key;                  gpgme_key_t key;
145    
146                  if (seclist_select_key (dlg, IDC_ENCRYPT_SECLIST, &key))                  if (seclist_select_key (dlg, IDC_ENCRYPT_SECLIST, &key))
147                      return FALSE;                      return TRUE;
148                  else                  else
149                      gpgme_signers_add (c->ctx, key);                      gpgme_signers_add (c->ctx, key);
150              }              }
151    
             gpgme_control( ctx, GPGME_CTRL_FORCETRUST, force_trust );  
152              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_ARMOR))              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_ARMOR))
153                  gpgme_control (ctx, GPGME_CTRL_ARMOR, 1);                  gpgme_set_armor (ctx, 1);
154              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_WIPE))              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_WIPE))
155                  c->wipe = 1;                  c->wipe = 1;
156              if (force_trust)              /* XXX: implement this
                 gpgme_control (ctx, GPGME_CTRL_FORCETRUST, 1);  
157              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_ANON))              if (IsDlgButtonChecked (dlg, IDC_ENCRYPT_ANON))
158                  gpgme_control (ctx, GPGME_CTRL_THROWKEYID, 1);                  ;
159                */
160              c->cancel = 0;              c->cancel = 0;
161              EndDialog (dlg, TRUE);              EndDialog (dlg, TRUE);
162              return TRUE;              return TRUE;
# Line 160  file_encrypt_dlg_proc (HWND dlg, UINT ms Line 164  file_encrypt_dlg_proc (HWND dlg, UINT ms
164          case IDCANCEL:          case IDCANCEL:
165              c->cancel = 1;              c->cancel = 1;
166              EndDialog (dlg, FALSE);              EndDialog (dlg, FALSE);
167              return FALSE;              return TRUE;
168          }          }
169          return TRUE;          return TRUE;
170      }      }
# Line 181  file_import_dlg_proc (HWND dlg, UINT msg Line 185  file_import_dlg_proc (HWND dlg, UINT msg
185          c = (fm_state_s *)lparam;          c = (fm_state_s *)lparam;
186          if (!c)          if (!c)
187              dlg_fatal_error( dlg, "Could not get dialog param!" );              dlg_fatal_error( dlg, "Could not get dialog param!" );
188  #ifndef LANG_DE          #ifndef LANG_DE
189          SetWindowText (dlg, _("File Import"));          SetWindowText (dlg, _("Key Import"));
190  #endif          #endif
191          ShowWindow( GetDlgItem( dlg, IDC_IMPORT_KEYMNGT ), WS_DISABLED );          ShowWindow( GetDlgItem( dlg, IDC_IMPORT_KEYMNGT ), WS_DISABLED );
192          /* fixme: use the new code */          /* XXX: use the new code */
193          implist_build( &lv, GetDlgItem( dlg, IDC_IMPORT_KEYLIST ) );          implist_build (&lv, GetDlgItem (dlg, IDC_IMPORT_KEYLIST));
194          implist_load( lv, c->opaque, &is_revcert, &has_seckeys );          implist_load (lv, c->opaque, &is_revcert, &has_seckeys);
195          SetForegroundWindow( dlg );          if (!listview_count_items (lv, 0)) {
196          if( !listview_count_items( lv, 0 ) ) {              msg_box (dlg, _("No valid OpenPGP data found."), _("Key Import"), MB_ERR);
             msg_box( dlg, _("No valid OpenPGP data found."), _("File Import"), MB_ERR );  
197              c->cancel = 1;              c->cancel = 1;
198              EndDialog( dlg, FALSE );              EndDialog (dlg, FALSE);
199          }          }
200            else {
201                const char *s = "File contain(s) %d key(s).";
202                char *p = new char[strlen (s) + 32];
203                if (!p)
204                    BUG (0);
205                sprintf (p, s, listview_count_items (lv, 0));
206                SetDlgItemText (dlg, IDC_IMPORT_INFO, p);
207                free_if_alloc (p);
208            }
209            SetForegroundWindow (dlg);
210          return TRUE;          return TRUE;
211                    
212      case WM_DESTROY:      case WM_DESTROY:
213          if( lv ) {          if (lv) {
214              listview_release( lv );              listview_release (lv);
215              lv = NULL;              lv = NULL;
216          }          }
217          return FALSE;          return FALSE;
218                    
219      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
220          if( LOWORD( wparam ) == SC_CLOSE ) {          if (LOWORD (wparam) == SC_CLOSE) {
221              c->cancel = 1;              c->cancel = 1;
222              EndDialog( dlg, FALSE );              EndDialog (dlg, FALSE);
223          }          }
224          return FALSE;          return FALSE;
225                    
226      case WM_COMMAND:      case WM_COMMAND:
227          switch( LOWORD( wparam ) ) {          switch (LOWORD (wparam)) {
228          case IDC_IMPORT_DOIT:          case IDC_IMPORT_DOIT:
229              c->cancel = 0;              c->cancel = 0;
230              c->implist_revcert = is_revcert? 1 : 0;              c->import.revcert = is_revcert? 1 : 0;
231              EndDialog( dlg, TRUE );              c->import.has_seckey = has_seckeys? 1 : 0;
232                EndDialog (dlg, TRUE);
233              return TRUE;              return TRUE;
234                            
235          case IDCANCEL:          case IDCANCEL:
236              c->cancel = 1;              c->cancel = 1;
237              EndDialog( dlg, FALSE );              EndDialog (dlg, FALSE);
238              return FALSE;              return FALSE;
239          }          }
240          break;          break;
# Line 235  file_sign_dlg_proc( HWND dlg, UINT msg, Line 249  file_sign_dlg_proc( HWND dlg, UINT msg,
249  {  {
250      static fm_state_t c;      static fm_state_t c;
251      static listview_ctrl_t lv;      static listview_ctrl_t lv;
252      gpgme_keycache_t kc, sec_kc;          gpg_keycache_t kc, sec_kc;    
253      gpgme_key_t key;      gpgme_key_t key;
254      int lv_idx;      int lv_idx;
255      char signer[32];      char signer[32];
# Line 260  file_sign_dlg_proc( HWND dlg, UINT msg, Line 274  file_sign_dlg_proc( HWND dlg, UINT msg,
274          if (!sec_kc)          if (!sec_kc)
275              BUG( dlg );              BUG( dlg );
276          lv = keylist_load( GetDlgItem(dlg, IDC_FILE_SIG_LIST), kc, sec_kc,          lv = keylist_load( GetDlgItem(dlg, IDC_FILE_SIG_LIST), kc, sec_kc,
277                              KEYLIST_SIGN, GPGME_ATTR_USERID );                              KEYLIST_SIGN, KEY_SORT_USERID );
278          SetForegroundWindow( dlg );          SetForegroundWindow( dlg );
279          return TRUE;          return TRUE;
280                    
# Line 280  file_sign_dlg_proc( HWND dlg, UINT msg, Line 294  file_sign_dlg_proc( HWND dlg, UINT msg,
294          switch( LOWORD( wparam ) ) {          switch( LOWORD( wparam ) ) {
295          case IDOK:          case IDOK:
296              if( IsDlgButtonChecked( dlg, IDC_FILE_SIG_ARMOR ) )              if( IsDlgButtonChecked( dlg, IDC_FILE_SIG_ARMOR ) )
297                  gpgme_control( c->ctx, GPGME_CTRL_ARMOR, 1 );                  gpgme_set_armor (c->ctx, 1);
298              if( IsDlgButtonChecked( dlg, IDC_FILE_SIG_NORMAL ) )              if( IsDlgButtonChecked( dlg, IDC_FILE_SIG_NORMAL ) )
299                  c->sigmode = GPGME_SIG_MODE_NORMAL;                  c->sigmode = GPGME_SIG_MODE_NORMAL;
300              else if( IsDlgButtonChecked( dlg, IDC_FILE_SIG_DETACH ) )              else if( IsDlgButtonChecked( dlg, IDC_FILE_SIG_DETACH ) )
# Line 326  file_sign_dlg_proc( HWND dlg, UINT msg, Line 340  file_sign_dlg_proc( HWND dlg, UINT msg,
340    
341    
342    
343  BOOL CALLBACK  static BOOL CALLBACK
344  filelist_subclass_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  filelist_subclass_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
345  {  {
346      switch (msg)      switch (msg) {
     {  
347          case WM_KEYUP:          case WM_KEYUP:
348          int virt_key = (int)wparam;          int virt_key = (int)wparam;
349          if (virt_key == VK_DELETE)          if (virt_key == VK_DELETE)
# Line 341  filelist_subclass_proc (HWND dlg, UINT m Line 354  filelist_subclass_proc (HWND dlg, UINT m
354  }  }
355    
356    
357    /* Setup status bar for the main window @dlg. */
358    static HWND
359    setup_status_bar (HWND dlg)
360    {
361        HWND statbar;
362        RECT r;
363        int partpos[3];
364        int i;
365    
366        GetClientRect (dlg, &r);
367        for (i=1; i <= 3; i++)
368            partpos[i-1] = r.right/3*i;
369    
370        statbar = CreateStatusWindow (WS_CHILD | WS_VISIBLE | CCS_BOTTOM,
371                                       "", dlg, FM_SEPARATOR_ID);
372        ShowWindow (statbar, SW_SHOW);
373        SendMessage (statbar, SB_SETPARTS, (WPARAM)3, (LPARAM)partpos);
374        return statbar;
375    }
376    
377    
378    /* Refresh the status bar text with the selected item from @lv. */
379    static void
380    update_status_bar (HWND statbar, listview_ctrl_t lv)
381    {
382        struct stat st;
383        char buf[128];
384        int n = listview_count_items (lv, 1);
385        _snprintf (buf, sizeof (buf)-1, "%d Object(s) marked", n);
386        SendMessage (statbar, SB_SETTEXT, 0, (LPARAM)buf);
387        listview_get_item_text (lv, listview_get_curr_pos (lv), 1, buf, 127);
388        if (stat (buf, &st) == 0) {
389            _snprintf (buf, sizeof (buf)-1, "%d KB", st.st_size/1024);
390            SendMessage (statbar, SB_SETTEXT, 1, (LPARAM)buf);
391        }
392    }
393    
394    
395  BOOL CALLBACK  BOOL CALLBACK
396  file_manager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  file_manager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
397  {  {
398        static HWND statbar;
399      static listview_ctrl_t lv = NULL;      static listview_ctrl_t lv = NULL;
400      static HMENU menu = NULL;      static HMENU menu = NULL;
401      static int always_ontop = 1;      static int always_ontop = 1;
402      HWND fl;      HWND fl;
403            
404      switch (msg)      switch (msg) {
     {  
405      case WM_INITDIALOG:      case WM_INITDIALOG:
406          always_ontop = 1;          always_ontop = 1;
407          menu = LoadMenu (glob_hinst, (LPCSTR)IDR_WINPT_FILEMISC);          menu = LoadMenu (glob_hinst, (LPCSTR)IDR_WINPT_FILEMISC);
408          SetWindowText( dlg, _("File Manager (use drag & drop to add files)") );          SetWindowText (dlg, _("File Manager (use drag & drop to add files)"));
409          set_menu_text( menu, ID_FILEMISC_OPEN, _("&Open...") );          set_menu_text (menu, ID_FILEMISC_OPEN, _("&Open...") );
410          set_menu_text( menu, ID_FILEMISC_ENCRYPT, _("&Encrypt") );          set_menu_text (menu, ID_FILEMISC_ENCRYPT, _("&Encrypt") );
411          set_menu_text( menu, ID_FILEMISC_DECRYPT, _("&Decrypt") );          set_menu_text (menu, ID_FILEMISC_DECRYPT, _("&Decrypt") );
412          set_menu_text( menu, ID_FILEMISC_SIGN, _("&Sign") );          set_menu_text (menu, ID_FILEMISC_SIGN, _("&Sign") );
413          set_menu_text( menu, ID_FILEMISC_SIGNENC, _("Sign && Encrypt") );          set_menu_text (menu, ID_FILEMISC_SIGNENC, _("Sign && Encrypt") );
414          set_menu_text( menu, ID_FILEMISC_VERIFY, _("&Verify") );          set_menu_text (menu, ID_FILEMISC_VERIFY, _("&Verify") );
415          set_menu_text( menu, ID_FILEMISC_WIPE, _("&Wipe") );          set_menu_text (menu, ID_FILEMISC_WIPE, _("&Wipe") );
416          set_menu_text( menu, ID_FILEMISC_SYMENC, _("S&ymmetric") );          set_menu_text (menu, ID_FILEMISC_SYMENC, _("S&ymmetric") );
417          set_menu_text( menu, ID_FILEMISC_IMPORT, _("&Import") );          set_menu_text (menu, ID_FILEMISC_IMPORT, _("&Import") );
418          set_menu_text( menu, ID_FILEMISC_EXPORT, _("E&xport") );          set_menu_text (menu, ID_FILEMISC_EXPORT, _("E&xport") );
419          set_menu_text( menu, ID_FILEMISC_QUIT, _("Exit"));          set_menu_text (menu, ID_FILEMISC_QUIT, _("Exit"));
420          set_menu_text( menu, ID_FILEMISC_PREFS, _("Preferences") );          set_menu_text (menu, ID_FILEMISC_CLEAR, _("&Reset") );
421          set_menu_text( menu, ID_FILEMISC_CLEAR, _("Clear List") );          set_menu_text (menu, ID_FILEMISC_ONTOP, _("Always on Top"));
422            set_menu_text (menu, ID_FILEMISC_PASTE _("&Paste"));
423            set_menu_text (menu, ID_FILEMISC_SELALL _("&Select All"));
424            set_menu_text (menu, ID_FILEMISC_PREFS _("&Preferences"));
425          fl = GetDlgItem (dlg, IDC_FILE_LIST);          fl = GetDlgItem (dlg, IDC_FILE_LIST);
426          filelist_proc.dlg = dlg;          filelist_proc.dlg = dlg;
427          filelist_proc.current = (WNDPROC)filelist_subclass_proc;          filelist_proc.current = (WNDPROC)filelist_subclass_proc;
# Line 375  file_manager_dlg_proc (HWND dlg, UINT ms Line 429  file_manager_dlg_proc (HWND dlg, UINT ms
429          if (filelist_proc.old) {          if (filelist_proc.old) {
430              if (!SetWindowLong (fl, GWL_WNDPROC, (LONG)filelist_proc.current)) {              if (!SetWindowLong (fl, GWL_WNDPROC, (LONG)filelist_proc.current)) {
431                  msg_box (dlg, _("Could not set filelist window procedure."), _("Key Manager"), MB_ERR);                  msg_box (dlg, _("Could not set filelist window procedure."), _("Key Manager"), MB_ERR);
432                  BUG (0);                  BUG (NULL);
433              }              }
434          }          }
435          SetMenu (dlg, menu);          SetMenu (dlg, menu);
436          fm_build (&lv, GetDlgItem (dlg, IDC_FILE_LIST));          fm_build (&lv, GetDlgItem (dlg, IDC_FILE_LIST));
437          center_window2 (dlg, HWND_TOPMOST);          center_window2 (dlg, NULL, HWND_TOPMOST);
438          center_window (dlg);          center_window (dlg, NULL);
439          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
440            statbar = setup_status_bar (dlg);
441          return TRUE;          return TRUE;
442    
443      case WM_DESTROY:      case WM_DESTROY:
# Line 406  file_manager_dlg_proc (HWND dlg, UINT ms Line 461  file_manager_dlg_proc (HWND dlg, UINT ms
461          HMENU hm;          HMENU hm;
462    
463          notify = (NMHDR *)lparam;          notify = (NMHDR *)lparam;
464            if (notify && notify->code == NM_CLICK &&
465                notify->idFrom == IDC_FILE_LIST)
466                update_status_bar (statbar, lv);
467          if (notify && notify->code == NM_RCLICK          if (notify && notify->code == NM_RCLICK
468              && notify->idFrom == IDC_FILE_LIST) {              && notify->idFrom == IDC_FILE_LIST) {
469              POINT p;              POINT p;
# Line 482  file_manager_dlg_proc (HWND dlg, UINT ms Line 540  file_manager_dlg_proc (HWND dlg, UINT ms
540              always_ontop ^= 1;                                always_ontop ^= 1;                  
541              set_menu_state (menu, ID_FILEMISC_ONTOP,              set_menu_state (menu, ID_FILEMISC_ONTOP,
542                              always_ontop == 0? MFS_UNCHECKED : MFS_CHECKED);                              always_ontop == 0? MFS_UNCHECKED : MFS_CHECKED);
543              center_window2 (dlg, always_ontop == 0? HWND_NOTOPMOST : HWND_TOPMOST);              center_window2 (dlg, NULL, always_ontop == 0? HWND_NOTOPMOST : HWND_TOPMOST);
544              break;              break;
545    
546          case ID_FILEMISC_SEND:          case ID_FILEMISC_SEND:
# Line 509  file_manager_dlg_proc (HWND dlg, UINT ms Line 567  file_manager_dlg_proc (HWND dlg, UINT ms
567          case ID_FILEMISC_MD_MD5:          case ID_FILEMISC_MD_MD5:
568          case ID_FILEMISC_MD_SHA1:          case ID_FILEMISC_MD_SHA1:
569          case ID_FILEMISC_MD_RMD160:          case ID_FILEMISC_MD_RMD160:
570              fm_print_md (lv, dlg, LOWORD (wparam)-40136);          case ID_FILEMISC_MD_SHA256:
571                int algo;
572    
573                switch (LOWORD (wparam)) {
574                case ID_FILEMISC_MD_MD5: algo = GPGME_MD_MD5; break;
575                case ID_FILEMISC_MD_SHA1: algo = GPGME_MD_SHA1; break;
576                case ID_FILEMISC_MD_RMD160: algo = GPGME_MD_RMD160; break;
577                case ID_FILEMISC_MD_SHA256:algo = GPGME_MD_SHA256; break;
578                }
579                fm_print_md (lv, dlg, algo);
580              SetForegroundWindow (dlg);              SetForegroundWindow (dlg);
581              return TRUE;              return TRUE;
582                            
# Line 545  file_preferences_dlg_proc (HWND dlg, UIN Line 612  file_preferences_dlg_proc (HWND dlg, UIN
612      case WM_INITDIALOG:      case WM_INITDIALOG:
613          CheckDlgButton (dlg, IDC_FPREFS_PROGRESS, reg_prefs.fm.progress? BST_CHECKED : BST_UNCHECKED);          CheckDlgButton (dlg, IDC_FPREFS_PROGRESS, reg_prefs.fm.progress? BST_CHECKED : BST_UNCHECKED);
614          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
615          center_window (dlg);          center_window (dlg, NULL);
616          break;          break;
617    
618      case WM_COMMAND:      case WM_COMMAND:
# Line 567  file_preferences_dlg_proc (HWND dlg, UIN Line 634  file_preferences_dlg_proc (HWND dlg, UIN
634  } /* file_preferences_dlg_proc */  } /* file_preferences_dlg_proc */
635    
636    
637    static void
638    add_files_from_lv (HWND dlg, listview_ctrl_t lv)
639    {
640        char fname[384+1];
641        int i;
642    
643        for (i = 0;  i < listview_count_items (lv, 0); i++) {
644            if (!listview_get_item_state (lv, i))
645                continue;      
646            listview_get_item_text (lv, i, 1, fname, sizeof (fname)-1);
647            SendDlgItemMessage (dlg, IDC_SECDEL_FILES, LB_ADDSTRING,
648                                NULL, (WPARAM)(char *)fname);
649        }
650    }
651    
652    
653  BOOL CALLBACK  BOOL CALLBACK
654  file_secdel_confirm_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  file_secdel_confirm_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
655  {  {
656      static secdel_confirm_s * ctx;      static secdel_confirm_s * ctx;
     const char * s;  
     void * tmp;  
657    
658      switch (msg) {      switch (msg) {
659      case WM_INITDIALOG:      case WM_INITDIALOG:
660          ctx = (struct secdel_confirm_s *)lparam;          ctx = (struct secdel_confirm_s *)lparam;
661          if( !ctx )          if (!ctx)
662              BUG( NULL );              BUG (NULL);
663          gpgme_recipients_enum_open( ctx->rset, &tmp );          add_files_from_lv (dlg, ctx->lv_files);
         while( (s =gpgme_recipients_enum_read( ctx->rset, &tmp )) )  
             SendDlgItemMessage( dlg, IDC_SECDEL_FILES, LB_ADDSTRING,  
                                 NULL, (WPARAM)(char *)s );  
664          break;          break;
665    
666      case WM_COMMAND:      case WM_COMMAND:
# Line 686  space_wipefrees_dlg_proc (HWND dlg, UINT Line 764  space_wipefrees_dlg_proc (HWND dlg, UINT
764      case WM_INITDIALOG:      case WM_INITDIALOG:
765          fill_drive_combobox (dlg);          fill_drive_combobox (dlg);
766          update_disc_stats (dlg);          update_disc_stats (dlg);
767          center_window (dlg);          center_window (dlg, NULL);
768          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
769          break;          break;
770                    

Legend:
Removed from v.5  
changed lines
  Added in v.28

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26