/[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 48 by werner, Mon Oct 31 21:14:11 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"  
27  #include "wptW32API.h"  #include "resource.h"
28  #include "wptErrors.h"  #include "wptTypes.h"
29    #include "wptNLS.h"
30  static void  #include "wptGPG.h"
31  switch_buttons( HWND dlg, int file )  #include "wptW32API.h"
32  {  #include "wptErrors.h"
33      int check1 = file? BST_CHECKED : BST_UNCHECKED;  
34      int check2 = file? BST_UNCHECKED: BST_CHECKED;  static void
35        switch_buttons( HWND dlg, int file )
36      CheckDlgButton( dlg, IDC_FILE_SAVE_TOFILE, check1 );  {
37      CheckDlgButton( dlg, IDC_FILE_SAVE_CLIP, check2 );          int check1 = file? BST_CHECKED : BST_UNCHECKED;
38  } /* switch_buttons */      int check2 = file? BST_UNCHECKED: BST_CHECKED;
39        
40        CheckDlgButton( dlg, IDC_FILE_SAVE_TOFILE, check1 );
41  BOOL CALLBACK      CheckDlgButton( dlg, IDC_FILE_SAVE_CLIP, check2 );    
42  file_save_dlg_proc( HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam )  } /* switch_buttons */
43  {      
44      gpgme_data_t sig, plain;  
45      gpgme_error_t err;  BOOL CALLBACK
46      const char *filename;  file_save_dlg_proc( HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam )
47      int has_data;  {    
48      char file[768];      gpgme_data_t sig, plain;
49            gpgme_error_t err;
50      switch ( msg ) {      const char *filename;
51      case WM_INITDIALOG:      int has_data;
52          #ifndef LANG_DE      char file[768];
53          SetWindowText( dlg, _("Save Plaintext") );      
54          #endif      switch ( msg ) {
55          switch_buttons( dlg, 0 );      case WM_INITDIALOG:
56          SetForegroundWindow( dlg );          #ifndef LANG_DE
57          return TRUE;          SetWindowText( dlg, _("Save Plaintext") );
58                    #endif
59      case WM_SYSCOMMAND:          switch_buttons( dlg, 0 );
60          if( LOWORD( wparam ) == SC_CLOSE )          SetForegroundWindow( dlg );
61              EndDialog( dlg, TRUE );          return TRUE;
62          return FALSE;          
63                case WM_SYSCOMMAND:
64      case WM_COMMAND:          if( LOWORD( wparam ) == SC_CLOSE )
65          switch ( LOWORD(wparam) ) {              EndDialog( dlg, TRUE );
66          case IDC_FILE_SAVE_SELECT:          return FALSE;
67              filename = get_filename_dlg( dlg, FILE_SAVE, _("Destination for Plaintext"), NULL, NULL );          
68              if( filename ) {      case WM_COMMAND:
69                  SetDlgItemText( dlg, IDC_FILE_SAVE_FILE, filename );          switch ( LOWORD(wparam) ) {
70                  switch_buttons( dlg, 1 );          case IDC_FILE_SAVE_SELECT:
71              }              filename = get_filesave_dlg( dlg, _("Destination for Plaintext"), NULL, NULL );
72              return TRUE;              if( filename ) {
73                                SetDlgItemText( dlg, IDC_FILE_SAVE_FILE, filename );
74          case IDOK:                  switch_buttons( dlg, 1 );
75              if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_TOFILE ) ) {              }
76                  if( !GetDlgItemText( dlg, IDC_FILE_SAVE_FILE, file, sizeof file - 1 ) ) {              return TRUE;
77                      msg_box( dlg, _("Please enter a filename."), _("Save Plaintext"), MB_INFO );              
78                      return FALSE;          case IDOK:
79                  }              if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_TOFILE ) ) {
80                  err = gpg_data_new_from_clipboard (&sig, 0);                  if( !GetDlgItemText( dlg, IDC_FILE_SAVE_FILE, file, sizeof file - 1 ) ) {
81                  if( err ) {                      msg_box( dlg, _("Please enter a filename."), _("Save Plaintext"), MB_INFO );
82                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );                      return FALSE;
83                      return FALSE;                  }
84                  }                  err = gpg_data_new_from_clipboard (&sig, 0);
85                  gpg_data_extract_plaintext( sig, &plain );                  if( err ) {
86                  gpg_data_release_and_set_file( plain, file );                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );
87                  gpgme_data_release( sig );                      return FALSE;
88                  msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );                  }
89              }                  gpg_data_extract_plaintext( sig, &plain );
90              else if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_CLIP ) ) {                  gpg_data_release_and_set_file( plain, file );
91                  if( !gpgme_clip_istext_avail( &has_data ) && !has_data ) {                  gpgme_data_release( sig );
92                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_ISEMPTY ), _("Save Plaintext"), MB_ERR );                  msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );
93                      return FALSE;              }
94                  }              else if( IsDlgButtonChecked( dlg, IDC_FILE_SAVE_CLIP ) ) {
95                  err = gpg_data_new_from_clipboard (&sig, 0);                  if( !gpg_clip_istext_avail( &has_data ) && !has_data ) {
96                  if( err ) {                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_ISEMPTY ), _("Save Plaintext"), MB_ERR );
97                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );                      return FALSE;
98                      return FALSE;                  }
99                  }                  err = gpg_data_new_from_clipboard (&sig, 0);
100                  gpg_data_extract_plaintext( sig, &plain );                  if( err ) {
101                  gpg_data_release_and_set_clipboard( plain, 0 );                      msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );
102                  gpgme_data_release( sig );                      return FALSE;
103                  msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );                  }
104              }                  gpg_data_extract_plaintext( sig, &plain );
105              EndDialog( dlg, TRUE );                  gpg_data_release_and_set_clipboard( plain, 0 );
106              return TRUE;                  gpgme_data_release( sig );
107                                msg_box( dlg, _("Finished"), _("Save Plaintext"), MB_OK );
108          case IDCANCEL:              }
109              EndDialog( dlg, FALSE );              EndDialog( dlg, TRUE );
110              return FALSE;              return TRUE;
111          }              
112          break;          case IDCANCEL:
113      }              EndDialog( dlg, FALSE );
114                    return FALSE;
115      return FALSE;          }
116            break;
117        }
118        
119        return FALSE;
120  } /* file_save_dlg_proc */  } /* file_save_dlg_proc */

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26