Convert uses of XKeycodeToKeysym (deprecated) to XkbKeycodeToKeysym
[oweals/cde.git] / cde / programs / dtinfo / dtinfo / src / Managers / MessageMgr.hh
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 /*
24  * $XConsortium: MessageMgr.hh /main/7 1996/11/23 14:04:55 cde-hal $
25  *
26  * Copyright (c) 1991 HaL Computer Systems, Inc.  All rights reserved.
27  * UNPUBLISHED -- rights reserved under the Copyright Laws of the United
28  * States.  Use of a copyright notice is precautionary only and does not
29  * imply publication or disclosure.
30  * 
31  * This software contains confidential information and trade secrets of HaL
32  * Computer Systems, Inc.  Use, disclosure, or reproduction is prohibited
33  * without the prior express written permission of HaL Computer Systems, Inc.
34  * 
35  *                         RESTRICTED RIGHTS LEGEND
36  * Use, duplication, or disclosure by the Government is subject to
37  * restrictions as set forth in subparagraph (c)(l)(ii) of the Rights in
38  * Technical Data and Computer Software clause at DFARS 252.227-7013.
39  *                        HaL Computer Systems, Inc.
40  *                  1315 Dell Avenue, Campbell, CA  95008
41  * 
42  */
43
44 # include "UAS.hh"
45 #include <X11/Intrinsic.h>
46
47 class MessageAgent;
48 class PrefAgent;
49 class demoException ;
50
51 struct CancelOperation {
52     int fDummy;
53 };
54
55 class MessageMgr : public Long_Lived, public UAS_Receiver<CancelOperation>
56 {
57 public: // functions
58   // Initializing
59   MessageMgr();
60   ~MessageMgr();
61
62   // Message display
63   // NOTE: need way to get answer back in some cases!!
64   
65   Widget create_dialog(unsigned char dialog_type,
66                        char *message_text, Widget parent = NULL);
67   void quit_dialog    (char *message_text, Widget parent = NULL);
68   void error_dialog   (char *message_text, Widget parent = NULL);
69   void warning_dialog (char *message_text, Widget parent = NULL);
70   void info_dialog    (char *message_text, Widget parent = NULL);
71   void progress_dialog (char *message_text, Widget parent = NULL);
72   void progress_dialog_done ();
73   bool question_dialog (char *message_text, Widget parent = NULL);
74   void assert_failed (char *statement, char *file,
75                       int line, Widget parent = NULL);
76   int get_integer (const char* msg, const char* title,
77                    int default_value, Widget parent = NULL);
78   const char *get_string (const char* msg, const char* title,
79                           const char *default_value, Widget parent = NULL);
80   void receive (CancelOperation &, void *client_data);
81
82   STATIC_SENDER_HH(UAS_CancelRetrievalMsg);
83   
84   void demo_failure(demoException &, Widget parent = NULL);
85
86   void set_max_length(int, Widget parent = NULL);
87
88   void ok_cb();
89   void cancel_cb();
90
91   // Accessing
92
93 private: // functions
94
95   void show_it(Widget dialog);
96   void destroy_it(Widget dialog);
97   
98 private: // variables
99   MessageAgent          &f_booklist_message;
100   MessageAgent          &f_nodeview_message;
101
102   int                   f_booklist_process;
103   int                   f_nodeview_process;
104
105   bool                  f_popped_up;
106   bool                  f_pressed_ok;
107   bool                  f_exit_flag;
108
109 private:
110   LONG_LIVED_HH(MessageMgr,message_mgr);
111 };
112
113 LONG_LIVED_HH2(MessageMgr,message_mgr);
114
115
116
117 #ifdef __STDC__
118 #define Xassert(STMT) \
119 if (!(STMT)) { \
120   message_mgr().assert_failed ((char*)#STMT, (char*)__FILE__, __LINE__); \
121   return; \
122 };
123 #else
124 #define Xassert(STMT) \
125 if (!(STMT)) { \
126   message_mgr().assert_failed ("STMT", __FILE__, __LINE__); \
127   return; \
128 };
129 #endif