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

Annotation of /trunk/Src/wptFileSaveDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 23 - (hide 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 twoaday 2 /* 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 twoaday 23 err = gpg_data_new_from_clipboard (&sig, 0);
81 twoaday 2 if( err ) {
82     msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );
83     return FALSE;
84     }
85 twoaday 23 gpg_data_extract_plaintext( sig, &plain );
86     gpg_data_release_and_set_file( plain, file );
87 twoaday 2 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 twoaday 23 err = gpg_data_new_from_clipboard (&sig, 0);
96 twoaday 2 if( err ) {
97     msg_box( dlg, winpt_strerror( WPTERR_CLIP_GET ), _("Save Plaintext"), MB_ERR );
98     return FALSE;
99     }
100 twoaday 23 gpg_data_extract_plaintext( sig, &plain );
101     gpg_data_release_and_set_clipboard( plain, 0 );
102 twoaday 2 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