acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
application_acme.h
1//
2// Created by camilo on 2024-10-24 22:47 <3ThomasBorregaardSorensen!!
3//
4#pragma once
5
6
7#include "acme/prototype/text/text.h"
8
9
10namespace platform
11{
12
13
14// struct CLASS_DECL_ACME acme_application_layer_t
15// {
16//
17// // mutable ::apex::application* m_papexapplication;
18// // mutable ::aqua::application* m_paquaapplication;
19// // mutable ::aura::application* m_pauraapplication;
20// // mutable ::axis::application* m_paxisapplication;
21// // mutable ::berg::application* m_pbaseapplication;
22// // mutable ::bred::application* m_pbredapplication;
23// // mutable ::core::application* m_pcoreapplication;
24//
25// class user_message :
26// virtual public ::particle
27// {
28//
29// public:
30//
31// ::e_status m_estatus;
32// ::particle_pointer m_pparticle;
33// ::i64 m_hi;
34// void * m_p;
35//
36// };
37//
38// //bool m_bTransferToContainer;
39// //bool m_bTransferredToContainer;
40//#if REFERENCING_DEBUGGING
41// ::reference_referer* m_prefererCreation = nullptr;
42//#endif
43// //mutable ::platform::platform * m_pplatform;
44//
45// //::APPLICATION_FLAGS m_applicationflags;
46// ::pointer<main_hold_base> m_pmainholdbase;
47// // FROM ::main (Now main2)
48// ::pointer < ::filesystem::file_system_options > m_pfilesystemoptions;
49// ::pointer_array < user_message > m_usermessagea;
50// bool m_bGUIReady = false;
51// bool m_bModulePath = false;
52// ::file::path m_pathModule;
53//
54// bool m_bModuleFolder = false;
55// ::file::path m_pathModuleFolder;
56//
57//
58// string m_strProgName;
59// string m_strStandalone;
60// //::i32 m_iExitCode = 0;
61// bool m_bApplicationFirstRequest;
62// //::pointer < ::request > m_prequest;
63//
64//
65// // END FROM ::main (Now main2 : merge)
66//
67// //::pointer < ::platform::platform > m_pplatform;
68// string m_strAppId;
69// string m_strAppName;
70// string m_strRoot;
71// string m_strDomain;
72// string m_strLibraryName;
73// string m_strBuild;
74// string m_strInstallToken;
75// string_array_base m_straAppCategory;
76// bool m_bLicense;
77//
78// enum_application_capability_array m_eapplicationcapabilitya;
79// ::text::text m_textAppTitle;
80// ::text::text m_textAppName;
81//
82// ::pointer < ::mutex > m_pmutexMatterLocator;
83//
84// ::pointer < ::mutex > m_pmutexStr;
85//
86//
87// };
88
89
90 class CLASS_DECL_ACME acme_application_layer
91 {
92 public:
93
94
95 virtual ::release_time_for_project release_time();
96
97
98
99 virtual void prepare_application();
100 virtual void on_prepare_application();
101 virtual void on_after_prepare_application();
102
103 //virtual void initialize_application(::platform::platform * pplatform);
104
105 virtual void initialize_application();
106
107// #if REFERENCING_DEBUGGING
108//
109// void on_after_construct(::reference_referer* preferer) override;
110//
111// #endif
112
113 virtual void _001PostTryCloseApplication();
114
115 virtual void application_on_status(::e_status estatus, ::particle * pparticle = nullptr, ::i64 hi = 0, void * p = nullptr);
116
117
118 virtual void on_error_icloud_not_available(::particle * pparticle = nullptr, ::i64 hi = 0, void * p = nullptr);
119
120
121 //virtual void application_main(::platform::system * psystem);
122
123 virtual ::i32 application_main();
124
125
126 //void on_set_platform() override;
127
128
129 //void on_initialize_particle() override;
130
131
132 //void initialize(::particle * pparticle) override;
133
134
135 //virtual void start_application(::request* prequest);
136
137
140 //virtual void on_application_default_start();
141
142 //virtual void on_initialize_application();
143
144 virtual class ::application_menu * application_menu();
145
146// using ::platform::context::factory;
147
148// virtual ::factory::factory_pointer& factory() const override;
149
150 //virtual void implement_application();
151
152 virtual void initialize_application_flags();
153
154 virtual bool is_application() const;
155
156 // bool is_system() const override;
157 // bool is_session() const override;
158 //
159 // virtual bool is_service() const;
160 // virtual bool is_user_service() const;
161 //
162 // virtual bool can_exit_application() override;
163
164 virtual ::file::path get_module_path();
165 virtual ::file::path get_module_folder();
166
167
168 virtual ::string app_name();
169
170 //virtual ::string app_name();
171
172 virtual ::string app_root();
173
174 virtual ::string application_title();
175
176
177 virtual ::string application_name();
178//
179//#ifdef WINDOWS
180//
181// void get_arguments_from_command_line();
182//
183//#else
184//
185// void set_args(::i32 argc, char_pointer argv[], char_pointer envpb[]);
186//
187//#endif
188
189 virtual ::i32 __implement();
190
191 virtual ::i32 main_loop();
192
193 virtual ::enum_id key_command(const ::user::e_key & ekey);
194
195 virtual void on_before_launching();
196 //virtual void os_native_bergedge_start();
197
198 // virtual void init1();
199 // virtual void init2();
200 // virtual void init3();
201 //
202 //
203 // virtual void init();
204 // virtual void term();
205 //
206 // virtual void term3();
207 // virtual void term2();
208 // virtual void term1();
209 //
210
211 virtual void do_install();
212 virtual void do_uninstall();
213
214
215 virtual void on_install();
216 virtual void on_uninstall();
217
218
219 virtual void init_instance();
220 virtual void term_instance();
221
222 // void init_task() override;
223 // void term_task() override;
224
225
226 virtual bool has_capability(enum_application_capability eapplicationcapability) const;
227 virtual void add_capability(enum_application_capability ecapability);
228
229
230 //bool handle_call(::payload & payload, const ::scoped_string & scopedstrObject, const ::scoped_string & scopedstrMember, ::property_set & propertyset) override;
231 virtual bool handle_application_call(::payload & payload, const ::scoped_string & scopedstrMember, ::property_set & propertyset);
232
233
234 virtual ::file::path get_app_localconfig_folder();
235 virtual ::property_set get_ini(const ::scoped_string& scopedstrIniName = {});
236
237
238 virtual ::string get_visual_studio_build();
239
240
241 virtual ::string get_application_name();
242
243
244 virtual void on_application_message(::platform::message * pmessage);
245
246 virtual void locale_schema_matter(string_array_base & stra, const string_array_base & straMatterLocator, const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
247 virtual void matter_locator_locale_schema_matter(string_array_base & stra, const string_array_base & straMatterLocator, const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
248
249 virtual string get_locale_schema_dir(const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
250 virtual string get_locale_schema_dir(const ::scoped_string & scopedstrLocale);
251 virtual string get_locale_schema_dir();
252
253 virtual void set_locale(const ::scoped_string & scopedstrLocale, const ::action_context & action_context);
254
255 virtual void set_schema(const ::scoped_string& scopedstrSchema, const ::action_context & action_context);
256
257 virtual void on_set_locale(const ::scoped_string& scopedstrLocale, const ::action_context & action_context);
258
259 virtual void on_set_schema(const ::scoped_string& scopedstrSchema, const ::action_context & action_context);
260
261
262
263 virtual void fill_locale_schema(::text::international::locale_schema & localeschema);
264 virtual void fill_locale_schema(::text::international::locale_schema & localeschema, const ::scoped_string & scopedstrLocale, const ::scoped_string & scopedstrSchema);
265
266
267 virtual void process_init();
268 virtual void process_term();
269
270
275 virtual void process_command_line_options();
276
277 //virtual void pre_run();
278 //virtual void application_pre_run();
279
280 //virtual void pos_run();
281 //virtual void application_pos_run();
282
283 virtual void init_application();
284
285 virtual void term_application();
286
287 virtual ::string_array_base get_about_box_lines();
288
289 virtual void show_about_box(::user::activation_token * puseractivationtoken);
290 virtual void show_lines_box(const ::string_array_base & straLines, const ::string_array_base & straIconUrl, ::user::activation_token *puseractivationtoken);
291
292 virtual ::string_array_base get_operating_system_information_lines();
293
294 //bool on_command_final(const ::atom & atom, ::user::activation_token * puseractivationtoken) override;
295
296
297
298
299 virtual void add_impact_system(const ::atom & atom, const ::pointer<::user::impact_system> & pimpactsystem);
300 virtual ::pointer<::user::impact_system> impact_system(const ::atom & atom);
301
302
303 virtual get_file_extension_mime_type * get_get_file_extension_mime_type();
304
305 virtual void pick_browse(const ::function < void(const ::file::path & path) > & callback);
306 virtual void pick_media(const ::scoped_string & scopedstrMediaType);
307 virtual void did_pick_document_at_url(const ::scoped_string & scopedstrUrl);
308 virtual void did_pick_document_at_urls(const ::string_array_base & stra);
309 virtual void on_prompt_write_file(::user::controller * pusercontroller);
310 virtual void file_manager_save_as(::user::controller * pusercontroller);
311
312
313 virtual bool fill_system_menu(::operating_system::a_system_menu * psystemmenu);
314
315 };
316
317
318} // namespace platform
319
320
321
Definition action_context.h:9
Definition atom.h:237
Definition e_status.h:30
Definition a_system_menu.h:39
Definition particle.h:95
Definition payload.h:54
Definition application_acme.h:91
virtual void process_command_line_options()
Definition application_acme.cpp:389
virtual class::application_menu * application_menu()
Definition application_acme.cpp:98
Definition message.h:16
Definition property_set.h:512
Definition international_locale_schema.h:19
include "thread/AutoLock.h"
Definition _forward_declaration.h:877