acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
message_box.h
1//
2// conversation_message.hpp
3// acme
4//
5// Created by Camilo Sasuke Thomas Borregaard Soerensen on 01/Oct/22. 00:59
6// Copyright (c) 2022 Camilo Sasuke Thomas Borregaard Soerensen. All rights reserved.
7//
8#pragma once
9
10
11#include "acme/user/interface/dialog.h"
12
13
14namespace user_interface
15{
16
17
18// namespace user
19// {
20//
21//class message_box;
22//
23//
24//enum enum_dialog
25//{
26//
27// e_dialog_none,
28// e_dialog_message_box,
29//
30//
31//};
32//
33//
34//class dialog;
35//
36//
37//class CLASS_DECL_ACME dialog :
38//virtual public ::acme::user::interaction
39//{
40//public:
41//
42// enum_dialog m_edialog;
43// ::string m_strTitle;
44// ::payload m_payloadResult;
45// ::function<void(dialog *)> m_functionOnTimeOut;
46// ::function<void(const ::payload &)> m_functionOnDialogResult2;
47// class ::time m_timeShowStart;
48// class ::time m_timeTimeout;
49// class ::time m_timeCancelledTimeout;
50//
51// dialog();
52// ~dialog() override;
53//
54//
55// virtual ::string dialog_title() const;
56//
57//
58// virtual void display_dialog();
59// //virtual void display_dialog(::dialog * pdialog);
60// //virtual void display_dialog_and_wait_dialog_response(::dialog * pdialog);
61// //virtual void display_dialog(::dialog * pdialog);
62// virtual void display_dialog_and_wait_dialog_response();
63//
64//
65// virtual void set_dialog_result(const ::payload & payloadResult);
66//
67//
68// virtual void on_dialog_result(const ::payload & payloadResult);
69//
70//
71// //virtual message_box * get_message_box_payload();
72//
73// virtual class ::time dialog_time_remaining_from_timeout() const;
74// virtual class ::time dialog_timeout() const;
75// virtual ::string dialog_details() const;
76// virtual ::string_array_base dialog_details_icon_urls() const;
77//
78// // ::string dialog_title() const override;
79// //
80// //// using dialog::display_dialog;
81// // void display_dialog() override;
82// // void on_dialog_result(const ::payload & payloadResult) override;
83// //
84// //
85// // class ::time dialog_time_remaining_from_timeout() const override;
86// // class ::time dialog_timeout() const override;
87//
88//};
89
90
91//
92//class CLASS_DECL_ACME dialog_payload :
93// virtual public dialog
94//{
95//public:
96//
97//
98//
99//
100// dialog_payload();
101// ~dialog_payload() override;
102//
103//
104//
105//
106//};
107//
108
109//class CLASS_DECL_ACME dialog_reifier :
110// virtual public ::dialog
111//{
112//public:
113//
114//
115// ::pointer < ::dialog > m_pdialog;
116//
117// dialog_reifier();
118// ~dialog_reifier() override;
119//
120//
121// ::string dialog_title() const override;
122//
123//
124// void display_dialog() override;
125// //void display_dialog(::dialog * pdialog) override;
126//
127//
128// void set_dialog_result(const ::payload & payloadResult) override;
129//
130//
131// class ::time dialog_time_remaining_from_timeout() const override;
132// class ::time dialog_timeout() const override;
133//
134//
135// message_box_payload * get_message_box_payload() override;
136//
137//
138//
139//};
140//
141
142class CLASS_DECL_ACME message_box :
143//virtual public ::realizable < message_box >
144virtual public ::user_interface::dialog
145{
146public:
147
148
149
150 //
151 // bool m_bDetails = false;
152 // string m_strMessage;
153 // string m_strTitle;
154 // ::user::e_message_box m_emessagebox;
155 // string m_strDetails;
156 // ::string m_strDetailsTitle;
157 // ::string_array m_straDetailsIconUrl;
158 // ::pointer < ::nano::graphics::icon > m_picon2;
159 // ::string_array m_straIconUrl;
160 // ::pointer < ::user::activation_token > m_puseractivationtoken;
161 // ::function<void(::user_interface::message_box *)> m_functionOnMessageBoxResult;
162 // ::pointer<::nano::graphics::icon> m_picon;
163 //
164
165::pointer < ::user_interface::message_box > m_pmessagebox;
166
167
168 //message_box_payload(const ::scoped_string & scopedstrMessage, const ::scoped_string & scopedstrTitle = {}, const ::user::e_message_box & emessagebox = {}, const ::scoped_string & scopedstrDetails = nullptr, ::nano::graphics::icon * picon = nullptr);
169 //message_box(const ::scoped_string &scopedstrMessage, const ::scoped_string &scopedstrTitle = {},
170 // const ::user::e_message_box &emessagebox = {}, const ::scoped_string &scopedstrDetails = nullptr,
171 // const ::string_array_base &straIconUrl = {});
172 //message_box(const ::exception & exception, const ::scoped_string & strMoreDetails);
173 //message_box(const ::exception &exception, const ::scoped_string &strMessage,
174 // const ::scoped_string &scopedstrTitle, const ::user::e_message_box &emessagebox = {},
175 // const ::scoped_string &scopedstrDetails = nullptr, const ::string_array_base &straIconUrl = {});
176 message_box();
177 ~message_box() override;
178
179
180
181
182 virtual void initialize_message_box(const ::scoped_string &scopedstrMessage, const ::scoped_string &scopedstrTitle = {},
183 const ::user::e_message_box &emessagebox = {}, const ::scoped_string &scopedstrDetails = nullptr,
184 const ::string_array_base &straIconUrl = {});
185 virtual void initialize_message_box(const ::exception & exception, const ::scoped_string & strMoreDetails);
186 virtual void initialize_message_box(const ::exception &exception, const ::scoped_string &strMessage,
187 const ::scoped_string &scopedstrTitle, const ::user::e_message_box &emessagebox = {},
188 const ::scoped_string &scopedstrDetails = nullptr, const ::string_array_base &straIconUrl = {});
189
190
191 virtual ::string get_message() const;
192 virtual ::string get_title() const;
193 virtual ::user::e_message_box get_emessagebox() const;
194
195 //virtual void _001InitializeMessageBox();
196
197
198 ::i32_rectangle initial_frame_rectangle() override;
199
200
201
203
204 //
205 //#ifdef _DEBUG
206 // ::i64 increment_reference_count() override;
207 // ::i64 decrement_reference_count() override;
208 //#endif
209
210 //virtual ::string get_conversation_message();
211 //virtual ::string get_conversation_title();
212 //virtual ::user::e_message_box get_conversation_flags();
213 //virtual ::string get_conversation_details();
214 //virtual ::payload get_conversation_result();
215
216 //message_box_payload *get_message_box_payload() override;
217
219
220
221 void on_timed_out() override;
222
223 ::string dialog_details() const override;
224
225 virtual ::string dialog_details_title() const;
226
227
228 virtual void set_user_activation_token(::user::activation_token * puseractivationtoken);
229
230 virtual void set_dialog_details_title(const ::scoped_string & scopedstrTitle);
231
232 ::string_array_base dialog_details_icon_urls() const override;
233
234
235 ::string_array_base & dialog_details_icon_urls() override;
236
237
238 virtual ::function < void (::user_interface::message_box *) > & message_box_response_callback();
239
240
241 virtual void add_button(const ::scoped_string & scopedstrTitle, enum_dialog_result edialogresult, ::i8 chLetter);
242
243
244 void display(::e_display edisplay = e_display_default, const ::user::activation & useractivation = {}) override;
245// void display_dialog() override;
246 //virtual void async();
247 //virtual void sync();
248
249 //::payload do_synchronously(const class time & timeWait) override;
250 //void do_asynchronously() override;
251
254 void run() override;
255 //void complete_aggregation(sequence * psequence) override;
256 //
257
258 void on_dialog_response(const ::payload &payloadResult) override;
259
260};
261
262
263
264//} // namespace user
265
266} // namespace user_interface
Definition payload.h:54
Definition dialog.h:56
Definition message_box.h:145
::payload get_dialog_response() override
void _on_draw(::nano::graphics::context * pgraphicscontext) override;
Definition message_box.cpp:804
void run() override
Definition message_box.cpp:727