mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-10 09:11:08 +00:00
* Add Missing Includes Across src/slic3r/GUI Every GUI source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, plus one hand edit making CalibrationPanel.hpp self-contained. * Drop the OS-Specific Includes Added Outside Their Platform Guards GLib, GTK, D-Bus and POSIX headers are only used inside platform #if blocks, which already include them. Added unconditionally at the top of the file they broke the Windows build. * Add the clang-tidy Configuration That Generated These Includes Only misc-include-cleaner's missing-include check, with the headers it must never suggest: per-platform, internal and OS-specific ones that would break other platforms or are not meant to be included directly. * Match Windows Paths in the clang-tidy Ignore List Header paths use backslashes on Windows, so every / in a pattern is now [/\\]. The Windows SDK headers are ignored alongside the other OS-specific ones, and the list is one pattern per line. Suggested by @raistlin7447 from a Windows clang-cl run.
97 lines
4.3 KiB
C++
97 lines
4.3 KiB
C++
#ifndef slic3r_GUI_hpp_
|
|
#define slic3r_GUI_hpp_
|
|
|
|
#include <string>
|
|
namespace boost { class any; }
|
|
namespace boost::filesystem { class path; }
|
|
|
|
#include <wx/string.h>
|
|
|
|
#include "libslic3r/Config.hpp"
|
|
#include "libslic3r/Preset.hpp"
|
|
|
|
class wxWindow;
|
|
class wxMenuBar;
|
|
class wxComboCtrl;
|
|
class wxFileDialog;
|
|
class wxTopLevelWindow;
|
|
|
|
namespace Slic3r {
|
|
|
|
class AppConfig;
|
|
class DynamicPrintConfig;
|
|
class Print;
|
|
|
|
namespace GUI {
|
|
|
|
void disable_screensaver();
|
|
void enable_screensaver();
|
|
bool debugged();
|
|
void break_to_debugger();
|
|
|
|
// Platform specific Ctrl+/Alt+ (Windows, Linux) vs. ⌘/⌥ (OSX) prefixes
|
|
extern const std::string& shortkey_ctrl_prefix();
|
|
extern const std::string& shortkey_alt_prefix();
|
|
extern const std::string& shortkey_shift_prefix(); // Shift is the same on all platforms, but we provide a function for consistency with Ctrl/Alt prefixes
|
|
|
|
extern AppConfig* get_app_config();
|
|
|
|
extern void add_menus(wxMenuBar *menu, int event_preferences_changed, int event_language_change);
|
|
|
|
// Change option value in config
|
|
void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt_key, const boost::any& value, int opt_index = 0);
|
|
|
|
// If has_code_excerpts is true, code excerpts (a source line and the caret line below it) render
|
|
// monospaced so the caret aligns. Used for placeholder-parser errors.
|
|
void show_error(wxWindow* parent, const wxString& message, bool has_code_excerpts = false);
|
|
void show_error(wxWindow* parent, const char* message, bool has_code_excerpts = false);
|
|
inline void show_error(wxWindow* parent, const std::string& message, bool has_code_excerpts = false) { show_error(parent, message.c_str(), has_code_excerpts); }
|
|
void show_error_id(int id, const std::string& message); // For Perl
|
|
void show_info(wxWindow* parent, const wxString& message, const wxString& title = wxString());
|
|
void show_info(wxWindow* parent, const char* message, const char* title = nullptr);
|
|
inline void show_info(wxWindow* parent, const std::string& message,const std::string& title = std::string()) { show_info(parent, message.c_str(), title.c_str()); }
|
|
void warning_catcher(wxWindow* parent, const wxString& message);
|
|
void show_substitutions_info(const PresetsConfigSubstitutions& presets_config_substitutions);
|
|
void show_substitutions_info(const ConfigSubstitutions& config_substitutions, const std::string& filename);
|
|
|
|
// Creates a wxCheckListBoxComboPopup inside the given wxComboCtrl, filled with the given text and items.
|
|
// Items data must be separated by '|', and contain the item name to be shown followed by its initial value (0 for false, 1 for true).
|
|
// For example "Item1|0|Item2|1|Item3|0", and so on.
|
|
void create_combochecklist(wxComboCtrl* comboCtrl, const std::string& text, const std::string& items);
|
|
|
|
// Returns the current state of the items listed in the wxCheckListBoxComboPopup contained in the given wxComboCtrl,
|
|
// encoded inside an unsigned int.
|
|
unsigned int combochecklist_get_flags(wxComboCtrl* comboCtrl);
|
|
|
|
// Sets the current state of the items listed in the wxCheckListBoxComboPopup contained in the given wxComboCtrl,
|
|
// with the flags encoded in the given unsigned int.
|
|
void combochecklist_set_flags(wxComboCtrl* comboCtrl, unsigned int flags);
|
|
|
|
// wxString conversions:
|
|
|
|
// wxString from std::string in UTF8
|
|
wxString from_u8(const std::string &str);
|
|
// std::string in UTF8 from wxString
|
|
std::string into_u8(const wxString &str);
|
|
// wxString from boost path
|
|
wxString from_path(const boost::filesystem::path &path);
|
|
// boost path from wxString
|
|
boost::filesystem::path into_path(const wxString &str);
|
|
// file:// URL of a local path, percent-encoded so characters such as '#', '%' and '?' stay part of the path.
|
|
// Append any query or fragment to the result.
|
|
wxString file_url_from_path(const boost::filesystem::path &path);
|
|
|
|
// Display an About dialog
|
|
extern void about();
|
|
// Ask the destop to open the datadir using the default file explorer.
|
|
extern void desktop_open_datadir_folder();
|
|
// Ask the destop to open one folder
|
|
extern void desktop_open_any_folder(const std::string& path);
|
|
// Ask the desktop to open a file from the project's auxiliary directory, after a confirmation
|
|
// unless its type is known to be plain content. Returns false if the file was not opened.
|
|
extern bool desktop_open_project_attachment(wxWindow *parent, const boost::filesystem::path &path);
|
|
} // namespace GUI
|
|
} // namespace Slic3r
|
|
|
|
#endif
|