KiCad PCB EDA Suite
Loading...
Searching...
No Matches
unix/app.cpp
Go to the documentation of this file.
1/*
2* This program source code file is part of KiCad, a free EDA CAD application.
3*
4* Copyright (C) 2020 Mark Roszko <[email protected]>
5* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6*
7* This program is free software: you can redistribute it and/or modify it
8* under the terms of the GNU General Public License as published by the
9* Free Software Foundation, either version 3 of the License, or (at your
10* option) any later version.
11*
12* This program is distributed in the hope that it will be useful, but
13* WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15* General Public License for more details.
16*
17* You should have received a copy of the GNU General Public License along
18* with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#include <kiplatform/app.h>
22
23#include <glib.h>
24
25#include <wx/string.h>
26#include <wx/utils.h>
27
28
29/*
30 * Function to attach to the glib logger to eat the output it gives so we don't
31 * get the message spam on the terminal from wxWidget's abuse of the GTK API.
32 */
33static GLogWriterOutput nullLogWriter( GLogLevelFlags log_level, const GLogField* fields,
34 gsize n_fields, gpointer user_data )
35{
36 return G_LOG_WRITER_HANDLED;
37}
38
39
41{
42 // Set KICAD_SHOW_GTK_MESSAGES=1 env var to show GTK messages,
43 // otherwise, we hide them to avoid message spam.
44
45 wxString showMessages;
46 wxGetEnv( wxT( "KICAD_SHOW_GTK_MESSAGES" ), &showMessages );
47
48 if( showMessages.IsEmpty() || showMessages != "1" )
49 {
50 // Attach a logger that will consume the annoying GTK error messages
51 g_log_set_writer_func( nullLogWriter, nullptr, nullptr );
52 }
53
54 return true;
55}
56
57
59{
60}
61
62
63bool KIPLATFORM::APP::AttachConsole( bool aTryAlloc )
64{
65 // Not implemented on this platform
66 return true;
67}
68
69
71{
72 // Not implemented on this platform
73 return false;
74}
75
76
77bool KIPLATFORM::APP::RegisterApplicationRestart( const wxString& aCommandLine )
78{
79 // Not implemented on this platform
80 return true;
81}
82
83
85{
86 // Not implemented on this platform
87 return true;
88}
89
90
92{
93 return false;
94}
95
96
98{
99}
100
101
102void KIPLATFORM::APP::SetShutdownBlockReason( wxWindow* aWindow, const wxString& aReason )
103{
104}
105
106
110
111
113{
114}
void SetShutdownBlockReason(wxWindow *aWindow, const wxString &aReason)
Sets the block reason why the window/application is preventing OS shutdown.
Definition unix/app.cpp:102
bool UnregisterApplicationRestart()
Unregisters the application from automatic restart.
Definition unix/app.cpp:84
bool AttachConsole(bool aTryAlloc)
Tries to attach a console window with stdout, stderr and stdin.
Definition unix/app.cpp:63
void RemoveShutdownBlockReason(wxWindow *aWindow)
Removes any shutdown block reason set.
Definition unix/app.cpp:97
bool RegisterApplicationRestart(const wxString &aCommandLine)
Registers the application for restart with the OS with the given command line string to pass as args.
Definition unix/app.cpp:77
bool Init()
Perform application-specific initialization tasks.
Definition unix/app.cpp:40
void ForceTimerMessagesToBeCreatedIfNecessary()
Forces wxTimers to fire more promptly on Win32.
Definition unix/app.cpp:107
bool IsOperatingSystemUnsupported()
Checks if the Operating System is explicitly unsupported and we want to prevent users from sending bu...
Definition unix/app.cpp:70
bool SupportsShutdownBlockReason()
Whether or not the window supports setting a shutdown block reason.
Definition unix/app.cpp:91
void EnableDarkMode(bool aForce)
Definition unix/app.cpp:58
void AddDynamicLibrarySearchPath(const wxString &aPath)
Inserts a search path for loading dynamic libraries.
Definition unix/app.cpp:112
static GLogWriterOutput nullLogWriter(GLogLevelFlags log_level, const GLogField *fields, gsize n_fields, gpointer user_data)
Definition unix/app.cpp:33