dthelp: Change to ANSI function definitions
[oweals/cde.git] / cde / programs / dtmail / dtmail / MailRetrievalOptions.h
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these libraries and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /* $TOG: MailRetrievalOptions.h /main/3 1998/02/17 12:35:42 mgreess $ */
24
25 #ifndef _MAIL_RETRIEVAL_OPTIONS_H
26 #define _MAIL_RETRIEVAL_OPTIONS_H
27
28 /*
29  *+SNOTICE
30  *
31  *      $:$
32  *
33  *      RESTRICTED CONFIDENTIAL INFORMATION:
34  *      
35  *      The information in this document is subject to special
36  *      restrictions in a confidential disclosure agreement between
37  *      HP, IBM, Sun, USL, SCO and Univel.  Do not distribute this
38  *      document outside HP, IBM, Sun, USL, SCO, or Univel without
39  *      Sun's specific written approval.  This document and all copies
40  *      and derivative works thereof must be returned or destroyed at
41  *      Sun's request.
42  *
43  *      Copyright 1994 Sun Microsystems, Inc.  All rights reserved.
44  *
45  *+ENOTICE
46  */
47 /*
48  *                   Common Desktop Environment
49  *
50  *   (c) Copyright 1993, 1994, 1995 Hewlett-Packard Company
51  *   (c) Copyright 1993, 1994, 1995 International Business Machines Corp.
52  *   (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
53  *   (c) Copyright 1993, 1994, 1995 Novell, Inc.
54  *   (c) Copyright 1995 Digital Equipment Corp.
55  *   (c) Copyright 1995 Fujitsu Limited
56  *   (c) Copyright 1995 Hitachi, Ltd.
57  *                                                                   
58  *
59  *                     RESTRICTED RIGHTS LEGEND                              
60  *
61  *Use, duplication, or disclosure by the U.S. Government is subject to
62  *restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
63  *Technical Data and Computer Software clause in DFARS 252.227-7013.  Rights
64  *for non-DOD U.S. Government Departments and Agencies are as set forth in
65  *FAR 52.227-19(c)(1,2).
66
67  *Hewlett-Packard Company, 3000 Hanover Street, Palo Alto, CA 94304 U.S.A.
68  *International Business Machines Corp., Route 100, Somers, NY 10589 U.S.A. 
69  *Sun Microsystems, Inc., 2550 Garcia Avenue, Mountain View, CA 94043 U.S.A.
70  *Novell, Inc., 190 River Road, Summit, NJ 07901 U.S.A.
71  *Digital Equipment Corp., 111 Powdermill Road, Maynard, MA 01754, U.S.A.
72  *Fujitsu Limited, 1015, Kamikodanaka Nakahara-Ku, Kawasaki 211, Japan
73  *Hitachi, Ltd., 6, Kanda Surugadai 4-Chome, Chiyoda-ku, Tokyo 101, Japan
74  */
75
76
77 #include <stdio.h>
78 #include <stdlib.h>
79 #include <unistd.h>
80 #include <string.h>
81 #include <sys/types.h>
82 #include <ctype.h>
83
84 #include <DtMail/EncryptedTextFieldUiItem.hh>
85 #include <DtMail/PropUi.hh>
86 #include <DtMail/DtMailServer.hh>
87 #include <DtMail/DtVirtArray.hh>
88 #include <DtMail/PropUi.hh>
89 #include "UIComponent.h"
90 #include "IndexedOptionMenu.h"
91
92 struct MrPropVal
93 {
94         char            *prop_value_string;
95         int             set_id;
96         int             msg_id;
97         char            *dflt_gui_string;
98 };
99
100 class MailRetrievalOptions : public UIComponent
101 {
102
103 private:
104     char                *_foldername;
105     DtVirtArray<PropUiItem *>
106                         *_propui_array;
107     int                  _propui_array_iterator;
108     EncryptedTextFieldUiItem
109                         *_password_pui;
110     DtVirtArray<Widget> *_retrieval_tbs;
111
112     Widget               _parent;
113     Widget               _form;
114
115     Widget               _inboxpath_label;
116     Widget               _inboxpath_tf;
117     Widget               _checkfornewmail_label;
118     Widget               _checkfornewmail_sb;
119  
120     Widget               _system_tb;
121
122     DtVirtArray<Widget> *_server_options;
123     Widget               _server_frame;
124     Widget               _server_tb;
125     Widget               _serverframe_form;
126     Widget               _serverprotocol_label;
127     IndexedOptionMenu   *_serverprotocol_iom;
128     Widget               _servername_label;
129     Widget               _servername_tf;
130     Widget               _username_label;
131     Widget               _username_tf;
132     Widget               _password_label;
133     Widget               _password_tf;
134     Widget               _rememberpassword_tb;
135     Widget               _removeafterdelivery_tb;
136     Widget               _retrieveold_tb;
137
138     DtVirtArray<Widget> *_custom_options;
139     Widget               _custom_frame;
140     Widget               _custom_tb;
141     Widget               _customframe_form;
142     Widget               _customcommand_label;
143     Widget               _customcommand_tf;
144
145     static void         rememberPasswordChangedCB(Widget,XtPointer,XtPointer);
146     static void         retrievalTBSValueChangedCB(Widget,XtPointer,XtPointer);
147
148 public:
149
150     MailRetrievalOptions(Widget, const char *foldername = NULL);
151     ~MailRetrievalOptions(void);
152
153     PropUiItem          *getFirstProp(void);
154     PropUiItem          *getNextProp(void);
155     int                  getNumProps(void);
156     void                 initOptionInteractions(void);
157     static char         *isValidInboxPath(PropUiItem* pui, void* data);
158     static char         *getPassword(char *foldername);
159 };
160
161 #endif // _MAIL_RETRIEVAL_OPTIONS_H