-fpermissive to allow GCC to compile old C++
[oweals/cde.git] / cde / programs / dtmail / dtmail / DtMailWDM.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 /* $XConsortium: DtMailWDM.C /main/3 1996/04/21 19:41:45 drk $ */
24 /*
25  *+SNOTICE
26  *
27  *      RESTRICTED CONFIDENTIAL INFORMATION:
28  *      
29  *      The information in this document is subject to special
30  *      restrictions in a confidential disclosure agreement bertween
31  *      HP, IBM, Sun, USL, SCO and Univel.  Do not distribute this
32  *      document outside HP, IBM, Sun, USL, SCO, or Univel wihtout
33  *      Sun's specific written approval.  This documment and all copies
34  *      and derivative works thereof must be returned or destroyed at
35  *      Sun's request.
36  *
37  *      Copyright 1993 Sun Microsystems, Inc.  All rights reserved.
38  *
39  *+ENOTICE
40  */
41
42 ///////////////////////////////////////////////////////////
43 // DtMailWDM.C
44 //////////////////////////////////////////////////////////
45 #include "DtMailWDM.hh"
46 #include "Application.h"
47 #include <Xm/Xm.h>
48 #include <Xm/MessageB.h>
49 #include "BusyPixmap.h"
50 #include <assert.h>
51
52 DtMailWDM *theDtMailWDM =
53         new DtMailWDM ( "DtMailWDM" );
54
55 DtMailWDM::DtMailWDM ( char   *name ) 
56          : WorkingDialogManager ( name )
57 {
58     _text = NULL;
59 }
60
61
62 Widget 
63 DtMailWDM::post (char *title,
64                  char          *text, 
65                  void          *clientData,
66                  DialogCallback ok,
67                  DialogCallback cancel,
68                  DialogCallback help )
69 {
70     // The the dialog already exists, and is currently in use,
71     // just return this dialog. The DtMailWDM
72     // only supports one dialog.
73     
74     if ( _w && XtIsManaged ( _w ) )
75         return _w;
76     
77     // Pass the message on to the base class
78     
79     DialogManager::post (title, text, clientData, ok, cancel, help );
80     
81     forceUpdate( _w );
82     return _w;
83 }
84
85 Widget 
86 DtMailWDM::post (char *title,
87                  char          *text, 
88                  Widget wid,
89                  void          *clientData,
90                  DialogCallback ok,
91                  DialogCallback cancel,
92                  DialogCallback help )
93 {
94     // The the dialog already exists, and is currently in use,
95     // just return this dialog. The DtMailWDM
96     // only supports one dialog.
97     
98     if ( _w && XtIsManaged ( _w ) )
99         return _w;
100     
101     // Pass the message on to the base class
102     
103     DialogManager::post (title, text, wid, clientData, ok, cancel, help );
104     
105     forceUpdate( _w );
106     return _w;
107 }
108
109
110 void
111 DtMailWDM::updateAnimation()
112 {
113     if (_w) {
114         XtVaSetValues ( _w, 
115 //          XmNsymbolPixmap, _busyPixmaps->next(),
116             NULL );
117         forceUpdate( _w );
118     }
119 }
120     
121 void
122 DtMailWDM::updateDialog( 
123     char *text
124 )
125 {
126     
127     if ( _w )
128     {
129     
130         // Just change the string displayed in the dialog
131     
132         XmString xmstr = XmStringCreateLocalized ( text ); 
133
134         // Update the pixmap too...
135         XtVaSetValues ( _w, 
136 //                  XmNsymbolPixmap, _busyPixmaps->next(),
137                     XmNmessageString, xmstr, 
138                     NULL );
139         XmStringFree ( xmstr );
140
141     }
142
143     forceUpdate( _w );
144 }