initial commit
Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
93
libs/wxWidgets-3.3.1/include/wx/private/init.h
Normal file
93
libs/wxWidgets-3.3.1/include/wx/private/init.h
Normal file
@@ -0,0 +1,93 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/private/init.h
|
||||
// Purpose: Private initialization-related data.
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2023-09-02
|
||||
// Copyright: (c) 2023 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_PRIVATE_INIT_H_
|
||||
#define _WX_PRIVATE_INIT_H_
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Initialization data contains parameters we get from the OS entry function.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
struct WXDLLIMPEXP_BASE wxInitData
|
||||
{
|
||||
private:
|
||||
wxInitData() = default;
|
||||
|
||||
public:
|
||||
// Get the single global object.
|
||||
static wxInitData& Get();
|
||||
|
||||
// Initialize from ANSI command line arguments: argv contents should be
|
||||
// static, i.e. remain valid until the end of the program.
|
||||
void Initialize(int argc, char** argv);
|
||||
|
||||
// Initialize from wide command line arguments if we hadn't been
|
||||
// initialized in some other way: this allows to call this function
|
||||
// unconditionally, even when these wide arguments were themselves
|
||||
// synthesized from ANSI ones by our own code.
|
||||
//
|
||||
// Note that here we currently make a copy of the arguments internally, so
|
||||
// they don't need to be static.
|
||||
void InitIfNecessary(int argc, wchar_t** argv);
|
||||
|
||||
// This function is used instead of the dtor because the global object can
|
||||
// be initialized multiple times.
|
||||
void Free();
|
||||
|
||||
|
||||
// We always have argc and (Unicode) argv, they're filled by Initialize()
|
||||
// and argv as well as its elements are owned by us, see Free().
|
||||
int argc = 0;
|
||||
wchar_t** argv = nullptr;
|
||||
|
||||
#ifdef __WINDOWS__
|
||||
// Initialize from the implicitly available Unicode command line.
|
||||
void MSWInitialize();
|
||||
|
||||
// This pointer is non-null only if MSWInitialize() was called. In this
|
||||
// case, argv is also set to it and, because this pointer needs to be freed
|
||||
// using MSW-specific function, argv must not be freed at all.
|
||||
//
|
||||
// It's also possible to use Initialize(), even under Windows, in which
|
||||
// case this pointer remains null and argv must be freed as usual.
|
||||
wchar_t** argvMSW = nullptr;
|
||||
#endif // __WINDOWS__
|
||||
|
||||
// At least wxGTK needs narrow command line arguments too and even thought
|
||||
// other ports under Windows typically don't need them (e.g. wxMSW itself
|
||||
// doesn't), we have to have them, as this header is toolkit-independent,
|
||||
// and so can't differ between wxMSW and wxGTK.
|
||||
|
||||
// Initializes argvA using argc and argv. This means that argc and argv
|
||||
// MUST be initialized before calling this function.
|
||||
void InitArgvA();
|
||||
|
||||
// This pointer may or not need to be freed, as indicated by ownsArgvA flag.
|
||||
char** argvA = nullptr;
|
||||
bool ownsArgvA = false;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxInitData);
|
||||
};
|
||||
|
||||
// Type of the hook function, see wxAddEntryHook(). If this function returns
|
||||
// a value different from -1, the process exits using it as error code.
|
||||
using wxEntryHook = int (*)();
|
||||
|
||||
// Set a special hook function which will be called before performing any
|
||||
// normal initialization. Note that this hook can't use any wxWidgets
|
||||
// functionality because nothing has been initialized yet, but can use
|
||||
// wxInitData to examine the command line arguments and determine if it should
|
||||
// be applied.
|
||||
//
|
||||
// This is currently used only by wxWebViewChromium to allow running Chromium
|
||||
// helper applications without initializing GTK under Linux but could, in
|
||||
// principle, be used for any other similar purpose.
|
||||
WXDLLIMPEXP_BASE void wxAddEntryHook(wxEntryHook hook);
|
||||
|
||||
#endif // _WX_PRIVATE_INIT_H_
|
||||
Reference in New Issue
Block a user