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
58bool KIPLATFORM::APP::AttachConsole( bool aTryAlloc )
59{
60 // Not implemented on this platform
61 return true;
62}
63
64
66{
67 // Not implemented on this platform
68 return false;
69}
70
71
72bool KIPLATFORM::APP::RegisterApplicationRestart( const wxString& aCommandLine )
73{
74 // Not implemented on this platform
75 return true;
76}
77
78
80{
81 // Not implemented on this platform
82 return true;
83}
84
85
87{
88 return false;
89}
90
91
93{
94}
95
96
97void KIPLATFORM::APP::SetShutdownBlockReason( wxWindow* aWindow, const wxString& aReason )
98{
99}
100
101
105
106
108{
109}
void SetShutdownBlockReason(wxWindow *aWindow, const wxString &aReason)
Sets the block reason why the window/application is preventing OS shutdown.
Definition unix/app.cpp:97
bool UnregisterApplicationRestart()
Unregisters the application from automatic restart.
Definition unix/app.cpp:79
bool AttachConsole(bool aTryAlloc)
Tries to attach a console window with stdout, stderr and stdin.
Definition unix/app.cpp:58
void RemoveShutdownBlockReason(wxWindow *aWindow)
Removes any shutdown block reason set.
Definition unix/app.cpp:92
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:72
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:102
bool IsOperatingSystemUnsupported()
Checks if the Operating System is explicitly unsupported and we want to prevent users from sending bu...
Definition unix/app.cpp:65
bool SupportsShutdownBlockReason()
Whether or not the window supports setting a shutdown block reason.
Definition unix/app.cpp:86
void AddDynamicLibrarySearchPath(const wxString &aPath)
Inserts a search path for loading dynamic libraries.
Definition unix/app.cpp:107
static GLogWriterOutput nullLogWriter(GLogLevelFlags log_level, const GLogField *fields, gsize n_fields, gpointer user_data)
Definition unix/app.cpp:33