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

Diff of /trunk/Src/wptFileSaveDlg.cpp

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

revision 23 by twoaday, Fri Sep 30 10:10:16 2005 UTC revision 36 by werner, Thu Oct 27 15:25:13 2005 UTC
# Line 1  Line 1 
1  /* wptFileSaveDlg.cpp - Save a file  /* wptFileSaveDlg.cpp - Save a file
2   *      Copyright (C) 2002, 2003 Timo Schulz   *      Copyright (C) 2002, 2003 Timo Schulz
3   *   *
4   * This file is part of WinPT.   * This file is part of WinPT.
5   *   *
6   * WinPT is free software; you can redistribute it and/or modify   * WinPT is free software; you can redistribute it and/or modify
7   * it under the terms of the GNU General Public License as published by   * it under the terms of the GNU General Public License as published by
8   * the Free Software Foundation; either version 2 of the License, or   * the Free Software Foundation; either version 2 of the License, or
9   * (at your option) any later version.   * (at your option) any later version.
10   *   *
11   * WinPT is distributed in the hope that it will be useful,   * WinPT is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.   * GNU General Public License for more details.
15   *   *
16   * You should have received a copy of the GNU General Public License   * You should have received a copy of the GNU General Public License
17   * along with WinPT; if not, write to the Free Software Foundation,   * along with WinPT; if not, write to the Free Software Foundation,
18   * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA   * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19   */   */
20    
21  #include <windows.h>  #ifdef HAVE_CONFIG_H
22    #include <config.h>
23  #include "../resource.h"  #endif
24  #include "wptTypes.h"  
25  #include "wptNLS.h"  #include <windows.h>
26  #include "wptGPG.h"  #include <windows.h>
27  #include "wptW32API.h"  
28  #include "wptErrors.h"  #include "../resource.h"
29    #include "wptTypes.h"
30  static void  #include "wptNLS.h"
31  switch_buttons( HWND dlg, int file )  #include "wptGPG.h"
32  {  #include "wptW32API.h"
33      int check1 = file? BST_CHECKED : BST_UNCHECKED;  #include "wptErrors.h"
34      int check2 = file? BST_UNCHECKED: BST_CHECKED;  
35        static void
36      CheckDlgButton( dlg, IDC_FILE_SAVE_TOFILE, check1 );  switch_buttons( HWND dlg, int file )
37      CheckDlgButton( dlg, IDC_FILE_SAVE_CLIP, check2 );      {
38  } /* switch_buttons */      int check1 = file? BST_CHECKED : BST_UNCHECKED;
39        int check2 = file? BST_UNCHECKED: BST_CHECKED;
40        
41  BOOL CALLBACK      CheckDlgButton( dlg, IDC_FILE_SAVE_TOFILE, check1 );
42  file_save_dlg_proc( HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam )      CheckDlgButton( dlg, IDC_FILE_SAVE_CLIP, check2 );    
43  {      } /* switch_buttons */
44      gpgme_data_t sig, plain;  
45      gpgme_error_t err;  
46      const char *filename;  BOOL CALLBACK
47      int has_data;  file_save_dlg_proc( HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam )
48      char file[768];  {    
49            gpgme_data_t sig, plain;
50      switch ( msg ) {      gpgme_error_t err;
51      case WM_INITDIALOG:      const char *filename;
52          #ifndef LANG_DE      int has_data;
53          SetWindowText( dlg, _("Save Plaintext") );      char file[768];
54          #endif      
55          switch_buttons( dlg, 0 );      switch ( msg ) {
56          SetForegroundWindow( dlg );      case WM_INITDIALOG:
57          return TRUE;          #ifndef LANG_DE
58                    SetWindowText( dlg, _("Save Plaintext") );
59      case WM_SYSCOMMAND:          #endif
60          if( LOWORD( wparam ) == SC_CLOSE )          switch_buttons( dlg, 0 );
61              EndDialog( dlg, TRUE );          SetForegroundWindow( dlg );
62          return FALSE;          return TRUE;
63                    
64      case WM_COMMAND:      case WM_SYSCOMMAND:
65          switch ( LOWORD(wparam) ) {          if( LOWORD( wparam ) == SC_CLOSE )
66          case IDC_FILE_SAVE_SELECT:              EndDialog( dlg, TRUE );
67              filename = get_filename_dlg( dlg, FILE_SAVE, _("Destination for Plaintext"), NULL, NULL );          return FALSE;
68              if( filename ) {          
69                  SetDlgItemText( dlg, IDC_FILE_SAVE_FILE, filename );      case WM_COMMAND:
70                  switch_buttons( dlg, 1 );          switch ( LOWORD(wparam) ) {
71              }          case IDC_FILE_SAVE_SELECT:
72              return TRUE;              filename = get_filesave_dlg( dlg, _("Destination for Plaintext"), NULL, NULL );
73                            if( filename ) {
74          case IDOK:                  SetDlgItemText( dlg, IDC_FILE_SAVE_FILE, filename );
75              if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_TOFILE ) ) {                  switch_buttons( dlg, 1 );
76                  if( !GetDlgItemText( dlg, IDC_FILE_SAVE_FILE, file, sizeof file - 1 ) ) {              }
77                      msg_box( dlg, _("Please enter a filename."), _("Save Plaintext"), MB_INFO );              return TRUE;
78                      return FALSE;              
79                  }          case IDOK:
80                  err = gpg_data_new_from_clipboard (&sig, 0);              if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_TOFILE ) ) {
81                  if( err ) {                  if( !GetDlgItemText( dlg, IDC_FILE_SAVE_FILE, file, sizeof file - 1 ) ) {
82                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );                      msg_box( dlg, _("Please enter a filename."), _("Save Plaintext"), MB_INFO );
83                      return FALSE;                      return FALSE;
84                  }                  }
85                  gpg_data_extract_plaintext( sig, &plain );                  err = gpg_data_new_from_clipboard (&sig, 0);
86                  gpg_data_release_and_set_file( plain, file );                  if( err ) {
87                  gpgme_data_release( sig );                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );
88                  msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );                      return FALSE;
89              }                  }
90              else if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_CLIP ) ) {                  gpg_data_extract_plaintext( sig, &plain );
91                  if( !gpgme_clip_istext_avail( &has_data ) && !has_data ) {                  gpg_data_release_and_set_file( plain, file );
92                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_ISEMPTY ), _("Save Plaintext"), MB_ERR );                  gpgme_data_release( sig );
93                      return FALSE;                  msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );
94                  }              }
95                  err = gpg_data_new_from_clipboard (&sig, 0);              else if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_CLIP ) ) {
96                  if( err ) {                  if( !gpg_clip_istext_avail( &has_data ) && !has_data ) {
97                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_ISEMPTY ), _("Save Plaintext"), MB_ERR );
98                      return FALSE;                      return FALSE;
99                  }                  }
100                  gpg_data_extract_plaintext( sig, &plain );                  err = gpg_data_new_from_clipboard (&sig, 0);
101                  gpg_data_release_and_set_clipboard( plain, 0 );                  if( err ) {
102                  gpgme_data_release( sig );                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );
103                  msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );                      return FALSE;
104              }                  }
105              EndDialog( dlg, TRUE );                  gpg_data_extract_plaintext( sig, &plain );
106              return TRUE;                  gpg_data_release_and_set_clipboard( plain, 0 );
107                                gpgme_data_release( sig );
108          case IDCANCEL:                  msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );
109              EndDialog( dlg, FALSE );              }
110              return FALSE;              EndDialog( dlg, TRUE );
111          }              return TRUE;
112          break;              
113      }          case IDCANCEL:
114                    EndDialog( dlg, FALSE );
115      return FALSE;              return FALSE;
116            }
117            break;
118        }
119        
120        return FALSE;
121  } /* file_save_dlg_proc */  } /* file_save_dlg_proc */

Legend:
Removed from v.23  
changed lines
  Added in v.36

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26