-fpermissive to allow GCC to compile old C++
[oweals/cde.git] / cde / programs / dtmail / dtmail / PasswordDialogManager.C
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 librararies 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 /*
24  *+SNOTICE
25  *
26  *      $XConsortium: PasswordDialogManager.C /main/4 1996/04/21 19:42:53 drk $
27  *
28  *      RESTRICTED CONFIDENTIAL INFORMATION:
29  *      
30  *      The information in this document is subject to special
31  *      restrictions in a confidential disclosure agreement between
32  *      HP, IBM, Sun, USL, SCO and Univel.  Do not distribute this
33  *      document outside HP, IBM, Sun, USL, SCO, or Univel without
34  *      Sun's specific written approval.  This document and all copies
35  *      and derivative works thereof must be returned or destroyed at
36  *      Sun's request.
37  *
38  *      Copyright 1993 Sun Microsystems, Inc.  All rights reserved.
39  *
40  *+ENOTICE
41  */
42
43 #include "PasswordDialogManager.h"
44 #include <Xm/SelectioB.h>
45 #include <Xm/TextF.h>
46 #include <Xm/Label.h>
47 #include <Xm/RowColumn.h>
48
49 PasswordDialogManager *thePasswordDialogManager = 
50     new PasswordDialogManager ( "PasswordDialog" );
51
52
53 PasswordDialogManager::PasswordDialogManager ( char   *name ) : 
54                                  PromptDialogManager ( name )
55 {
56     // Empty
57     _pwd[0] = 0;
58 }
59
60 Widget PasswordDialogManager::createDialog ( Widget parent )
61 {
62    
63   Widget dialog = XmCreatePromptDialog ( parent, _name, NULL, 0);
64     
65   XtVaSetValues ( dialog,
66                   XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL,
67                   NULL );
68
69   XtUnmanageChild( XmSelectionBoxGetChild( dialog,
70                                       XmDIALOG_TEXT ) );
71
72   XtUnmanageChild( XmSelectionBoxGetChild( dialog,
73                                       XmDIALOG_SELECTION_LABEL ) );
74
75   Widget rc = XtCreateManagedWidget ( "PasswordArea",
76                                       xmRowColumnWidgetClass,
77                                       dialog,
78                                       NULL, 0 );
79
80   Widget _user_label = XtCreateManagedWidget
81     ( "UserLabel",
82       xmLabelWidgetClass,
83       rc,
84       NULL, 0);
85
86   _user = XtCreateManagedWidget
87     ( "User",
88       xmTextFieldWidgetClass,
89       rc,
90       NULL, 0);
91
92   Widget _password_label = XtCreateManagedWidget
93     ( "PasswordLabel",
94       xmLabelWidgetClass,
95       rc,
96       NULL, 0);
97
98   _password = XtCreateManagedWidget
99     ( "Password",
100       xmTextFieldWidgetClass,
101       rc,
102       NULL, 0);
103
104   XtManageChild( rc );
105   XtAddCallback ( _password,
106                   XmNmodifyVerifyCallback,
107                   (XtCallbackProc )
108                   &PasswordDialogManager::modifyVerifyCallback,
109                   ( XtPointer ) this );
110   return dialog;
111 }
112
113 #ifdef DEAD_WOOD
114 char *
115 PasswordDialogManager::userName(){
116   return ( XmTextFieldGetString( _user ) );
117 }
118
119 char *
120 PasswordDialogManager::password(){
121 //  return ( XmTextFieldGetString( _password ) );
122   return _pwd;
123 }
124 #endif /* DEAD_WOOD */
125
126 void
127 PasswordDialogManager::modifyVerifyCallback( Widget w,
128                       XtPointer clientData,
129                       XmTextVerifyCallbackStruct *cbs ) {
130   PasswordDialogManager *pdm=( PasswordDialogManager * ) clientData;
131   pdm->modifyVerify( w, cbs );
132 }
133                       
134 void
135 PasswordDialogManager::modifyVerify( Widget ,
136                                      XmTextVerifyCallbackStruct *cbs )
137 {
138  int len;
139
140   if ( cbs->text->ptr == NULL ) // Backspace
141     return;
142   for ( len=0; len< cbs->text->length; len++ ) {
143     strncat(_pwd, &cbs->text->ptr[len], 1);
144     cbs->text->ptr[len] = '*';
145   }
146 }
147
148 #ifdef DEAD_WOOD
149 void
150 PasswordDialogManager::resetPassword()
151 {
152     _pwd[0] = 0;
153 }
154 #endif /* DEAD_WOOD */