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

Contents of /trunk/Src/wptFileSaveDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 23 - (show annotations)
Fri Sep 30 10:10:16 2005 UTC (19 years, 5 months ago) by twoaday
File size: 4086 byte(s)
Almost finished phase 1 of the WinPT GPGME port.
Still need more cleanup, comments and tests.


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26