Minor improvements
This commit is contained in:
parent
21cbcd876a
commit
609365a79d
@ -35,7 +35,25 @@ wxDEFINE_EVENT(EVT_EJECT_DRIVE_NOTIFICAION_CLICKED, EjectDriveNotificationClicke
|
|||||||
wxDEFINE_EVENT(EVT_EXPORT_GCODE_NOTIFICAION_CLICKED, ExportGcodeNotificationClickedEvent);
|
wxDEFINE_EVENT(EVT_EXPORT_GCODE_NOTIFICAION_CLICKED, ExportGcodeNotificationClickedEvent);
|
||||||
wxDEFINE_EVENT(EVT_PRESET_UPDATE_AVAILABLE_CLICKED, PresetUpdateAvailableClickedEvent);
|
wxDEFINE_EVENT(EVT_PRESET_UPDATE_AVAILABLE_CLICKED, PresetUpdateAvailableClickedEvent);
|
||||||
|
|
||||||
namespace Notifications_Internal{
|
const NotificationManager::NotificationData NotificationManager::basic_notifications[] = {
|
||||||
|
// {NotificationType::SlicingNotPossible, NotificationLevel::RegularNotification, 10, _u8L("Slicing is not possible.")},
|
||||||
|
// {NotificationType::ExportToRemovableFinished, NotificationLevel::ImportantNotification, 0, _u8L("Exporting finished."), _u8L("Eject drive.") },
|
||||||
|
{NotificationType::Mouse3dDisconnected, NotificationLevel::RegularNotification, 10, _u8L("3D Mouse disconnected.") },
|
||||||
|
// {NotificationType::Mouse3dConnected, NotificationLevel::RegularNotification, 5, _u8L("3D Mouse connected.") },
|
||||||
|
// {NotificationType::NewPresetsAviable, NotificationLevel::ImportantNotification, 20, _u8L("New Presets are available."), _u8L("See here.") },
|
||||||
|
{NotificationType::PresetUpdateAvailable, NotificationLevel::ImportantNotification, 20, _u8L("Configuration update is available."), _u8L("See more."), [](wxEvtHandler* evnthndlr){
|
||||||
|
if (evnthndlr != nullptr) wxPostEvent(evnthndlr, PresetUpdateAvailableClickedEvent(EVT_PRESET_UPDATE_AVAILABLE_CLICKED)); return true; }},
|
||||||
|
{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotification, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr){
|
||||||
|
wxLaunchDefaultBrowser("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }},
|
||||||
|
{NotificationType::EmptyColorChangeCode, NotificationLevel::RegularNotification, 10,
|
||||||
|
_u8L("You have just added a G-code for color change, but its value is empty.\n"
|
||||||
|
"To export the G-code correctly, check the \"Color Change G-code\" in \"Printer Settings > Custom G-code\"") },
|
||||||
|
//{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotification, 20, _u8L("New vesion of PrusaSlicer is available.", _u8L("Download page.") },
|
||||||
|
//{NotificationType::LoadingFailed, NotificationLevel::RegularNotification, 20, _u8L("Loading of model has Failed") },
|
||||||
|
//{NotificationType::DeviceEjected, NotificationLevel::RegularNotification, 10, _u8L("Removable device has been safely ejected")} // if we want changeble text (like here name of device), we need to do it as CustomNotification
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace {
|
||||||
ImFont* add_default_font(float pixel_size)
|
ImFont* add_default_font(float pixel_size)
|
||||||
{
|
{
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
@ -47,7 +65,7 @@ namespace Notifications_Internal{
|
|||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void push_style_color(ImGuiCol idx, const ImVec4& col, bool fading_out, float current_fade_opacity)
|
inline void push_style_color(ImGuiCol idx, const ImVec4& col, bool fading_out, float current_fade_opacity)
|
||||||
{
|
{
|
||||||
if (fading_out)
|
if (fading_out)
|
||||||
ImGui::PushStyleColor(idx, ImVec4(col.x, col.y, col.z, col.w * current_fade_opacity));
|
ImGui::PushStyleColor(idx, ImVec4(col.x, col.y, col.z, col.w * current_fade_opacity));
|
||||||
@ -137,8 +155,8 @@ NotificationManager::PopNotification::PopNotification(const NotificationData &n,
|
|||||||
, m_last_remaining_time (n.duration)
|
, m_last_remaining_time (n.duration)
|
||||||
, m_counting_down (n.duration != 0)
|
, m_counting_down (n.duration != 0)
|
||||||
, m_text1 (n.text1)
|
, m_text1 (n.text1)
|
||||||
, m_hypertext (n.hypertext)
|
, m_hypertext (n.hypertext)
|
||||||
, m_text2 (n.text2)
|
, m_text2 (n.text2)
|
||||||
, m_evt_handler (evt_handler)
|
, m_evt_handler (evt_handler)
|
||||||
, m_notification_start (GLCanvas3D::timestamp_now())
|
, m_notification_start (GLCanvas3D::timestamp_now())
|
||||||
{
|
{
|
||||||
@ -186,26 +204,26 @@ void NotificationManager::PopNotification::render(GLCanvas3D& canvas, float init
|
|||||||
// color change based on fading out
|
// color change based on fading out
|
||||||
bool fading_pop = false;
|
bool fading_pop = false;
|
||||||
if (m_fading_out) {
|
if (m_fading_out) {
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, ImGui::GetStyleColorVec4(ImGuiCol_WindowBg), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, ImGui::GetStyleColorVec4(ImGuiCol_WindowBg), m_fading_out, m_current_fade_opacity);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_Text, ImGui::GetStyleColorVec4(ImGuiCol_Text), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_Text, ImGui::GetStyleColorVec4(ImGuiCol_Text), m_fading_out, m_current_fade_opacity);
|
||||||
fading_pop = true;
|
fading_pop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// background color
|
// background color
|
||||||
if (m_is_gray) {
|
if (m_is_gray) {
|
||||||
ImVec4 backcolor(0.7f, 0.7f, 0.7f, 0.5f);
|
ImVec4 backcolor(0.7f, 0.7f, 0.7f, 0.5f);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
||||||
}
|
}
|
||||||
else if (m_data.level == NotificationLevel::ErrorNotification) {
|
else if (m_data.level == NotificationLevel::ErrorNotification) {
|
||||||
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
||||||
backcolor.x += 0.3f;
|
backcolor.x += 0.3f;
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
||||||
}
|
}
|
||||||
else if (m_data.level == NotificationLevel::WarningNotification) {
|
else if (m_data.level == NotificationLevel::WarningNotification) {
|
||||||
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
||||||
backcolor.x += 0.3f;
|
backcolor.x += 0.3f;
|
||||||
backcolor.y += 0.15f;
|
backcolor.y += 0.15f;
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
// name of window - probably indentifies window and is shown so last_end add whitespaces according to id
|
// name of window - probably indentifies window and is shown so last_end add whitespaces according to id
|
||||||
@ -303,23 +321,23 @@ NotificationManager::PopNotification::RenderResult NotificationManager::PopNotif
|
|||||||
if (m_fading_out) {
|
if (m_fading_out) {
|
||||||
if (!m_paused)
|
if (!m_paused)
|
||||||
m_current_fade_opacity -= 1.f / ((m_fading_time + 1.f) * 60.f);
|
m_current_fade_opacity -= 1.f / ((m_fading_time + 1.f) * 60.f);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, ImGui::GetStyleColorVec4(ImGuiCol_WindowBg), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, ImGui::GetStyleColorVec4(ImGuiCol_WindowBg), m_fading_out, m_current_fade_opacity);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_Text, ImGui::GetStyleColorVec4(ImGuiCol_Text), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_Text, ImGui::GetStyleColorVec4(ImGuiCol_Text), m_fading_out, m_current_fade_opacity);
|
||||||
fading_pop = true;
|
fading_pop = true;
|
||||||
}
|
}
|
||||||
// background color
|
// background color
|
||||||
if (m_is_gray) {
|
if (m_is_gray) {
|
||||||
ImVec4 backcolor(0.7f, 0.7f, 0.7f, 0.5f);
|
ImVec4 backcolor(0.7f, 0.7f, 0.7f, 0.5f);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
||||||
} else if (m_data.level == NotificationLevel::ErrorNotification) {
|
} else if (m_data.level == NotificationLevel::ErrorNotification) {
|
||||||
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
||||||
backcolor.x += 0.3f;
|
backcolor.x += 0.3f;
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
||||||
} else if (m_data.level == NotificationLevel::WarningNotification) {
|
} else if (m_data.level == NotificationLevel::WarningNotification) {
|
||||||
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
ImVec4 backcolor = ImGui::GetStyleColorVec4(ImGuiCol_WindowBg);
|
||||||
backcolor.x += 0.3f;
|
backcolor.x += 0.3f;
|
||||||
backcolor.y += 0.15f;
|
backcolor.y += 0.15f;
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_WindowBg, backcolor, m_fading_out, m_current_fade_opacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
//name of window - probably indentifies window and is shown so last_end add whitespaces according to id
|
//name of window - probably indentifies window and is shown so last_end add whitespaces according to id
|
||||||
@ -597,7 +615,7 @@ void NotificationManager::PopNotification::render_hypertext(ImGuiWrapper& imgui,
|
|||||||
orange_color.y += 0.2f;
|
orange_color.y += 0.2f;
|
||||||
|
|
||||||
//text
|
//text
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_Text, orange_color, m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_Text, orange_color, m_fading_out, m_current_fade_opacity);
|
||||||
ImGui::SetCursorPosX(text_x);
|
ImGui::SetCursorPosX(text_x);
|
||||||
ImGui::SetCursorPosY(text_y);
|
ImGui::SetCursorPosY(text_y);
|
||||||
imgui.text(text.c_str());
|
imgui.text(text.c_str());
|
||||||
@ -620,8 +638,8 @@ void NotificationManager::PopNotification::render_close_button(ImGuiWrapper& img
|
|||||||
orange_color.w = 0.8f;
|
orange_color.w = 0.8f;
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f), m_fading_out, m_current_fade_opacity);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_TextSelectedBg, ImVec4(0, .75f, .75f, 1.f), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_TextSelectedBg, ImVec4(0, .75f, .75f, 1.f), m_fading_out, m_current_fade_opacity);
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
|
|
||||||
|
|
||||||
@ -720,9 +738,9 @@ void NotificationManager::PopNotification::render_minimize_button(ImGuiWrapper&
|
|||||||
{
|
{
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_ButtonActive, ImGui::GetStyleColorVec4(ImGuiCol_WindowBg), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_ButtonActive, ImGui::GetStyleColorVec4(ImGuiCol_WindowBg), m_fading_out, m_current_fade_opacity);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f), m_fading_out, m_current_fade_opacity);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_TextSelectedBg, ImVec4(0, .75f, .75f, 1.f), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_TextSelectedBg, ImVec4(0, .75f, .75f, 1.f), m_fading_out, m_current_fade_opacity);
|
||||||
|
|
||||||
|
|
||||||
//button - if part if treggered
|
//button - if part if treggered
|
||||||
@ -955,8 +973,8 @@ void NotificationManager::ExportFinishedNotification::render_eject_button(ImGuiW
|
|||||||
orange_color.w = 0.8f;
|
orange_color.w = 0.8f;
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f), m_fading_out, m_current_fade_opacity);
|
||||||
Notifications_Internal::push_style_color(ImGuiCol_TextSelectedBg, ImVec4(0, .75f, .75f, 1.f), m_fading_out, m_current_fade_opacity);
|
push_style_color(ImGuiCol_TextSelectedBg, ImVec4(0, .75f, .75f, 1.f), m_fading_out, m_current_fade_opacity);
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(.0f, .0f, .0f, .0f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(.0f, .0f, .0f, .0f));
|
||||||
|
|
||||||
std::string button_text;
|
std::string button_text;
|
||||||
@ -1011,7 +1029,7 @@ void NotificationManager::ExportFinishedNotification::render_eject_button(ImGuiW
|
|||||||
}
|
}
|
||||||
bool NotificationManager::ExportFinishedNotification::on_text_click()
|
bool NotificationManager::ExportFinishedNotification::on_text_click()
|
||||||
{
|
{
|
||||||
Notifications_Internal::open_folder(m_export_dir_path);
|
open_folder(m_export_dir_path);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//------ProgressBar----------------
|
//------ProgressBar----------------
|
||||||
@ -1054,10 +1072,10 @@ NotificationManager::NotificationManager(wxEvtHandler* evt_handler) :
|
|||||||
}
|
}
|
||||||
void NotificationManager::push_notification(const NotificationType type, int timestamp)
|
void NotificationManager::push_notification(const NotificationType type, int timestamp)
|
||||||
{
|
{
|
||||||
auto it = std::find_if(basic_notifications.begin(), basic_notifications.end(),
|
auto it = std::find_if(std::begin(basic_notifications), std::end(basic_notifications),
|
||||||
boost::bind(&NotificationData::type, boost::placeholders::_1) == type);
|
boost::bind(&NotificationData::type, boost::placeholders::_1) == type);
|
||||||
assert(it != basic_notifications.end());
|
assert(it != std::end(basic_notifications));
|
||||||
if (it != basic_notifications.end())
|
if (it != std::end(basic_notifications))
|
||||||
push_notification_data(*it, timestamp);
|
push_notification_data(*it, timestamp);
|
||||||
}
|
}
|
||||||
void NotificationManager::push_notification(const std::string& text, int timestamp)
|
void NotificationManager::push_notification(const std::string& text, int timestamp)
|
||||||
|
@ -167,7 +167,7 @@ private:
|
|||||||
// Callback for hypertext - returns true if notification should close after triggering
|
// Callback for hypertext - returns true if notification should close after triggering
|
||||||
// Usually sends event to UI thread thru wxEvtHandler.
|
// Usually sends event to UI thread thru wxEvtHandler.
|
||||||
// Examples in basic_notifications.
|
// Examples in basic_notifications.
|
||||||
std::function<bool(wxEvtHandler*)> callback { nullptr };
|
std::function<bool(wxEvtHandler*)> callback;
|
||||||
const std::string text2;
|
const std::string text2;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -231,7 +231,7 @@ private:
|
|||||||
//returns top in actual frame
|
//returns top in actual frame
|
||||||
float get_current_top() const { return m_top_y; }
|
float get_current_top() const { return m_top_y; }
|
||||||
const NotificationType get_type() const { return m_data.type; }
|
const NotificationType get_type() const { return m_data.type; }
|
||||||
const NotificationData get_data() const { return m_data; }
|
const NotificationData& get_data() const { return m_data; }
|
||||||
const bool is_gray() const { return m_is_gray; }
|
const bool is_gray() const { return m_is_gray; }
|
||||||
// Call equals one second down
|
// Call equals one second down
|
||||||
void substract_remaining_time(int seconds) { m_remaining_time -= seconds; }
|
void substract_remaining_time(int seconds) { m_remaining_time -= seconds; }
|
||||||
@ -383,10 +383,10 @@ private:
|
|||||||
ProgressBarNotification(const NotificationData& n, NotificationIDProvider& id_provider, wxEvtHandler* evt_handler, float percentage) : PopNotification(n, id_provider, evt_handler) { set_percentage(percentage); }
|
ProgressBarNotification(const NotificationData& n, NotificationIDProvider& id_provider, wxEvtHandler* evt_handler, float percentage) : PopNotification(n, id_provider, evt_handler) { set_percentage(percentage); }
|
||||||
void set_percentage(float percent) { m_percentage = percent; if (percent >= 1.0f) m_progress_complete = true; else m_progress_complete = false; }
|
void set_percentage(float percent) { m_percentage = percent; if (percent >= 1.0f) m_progress_complete = true; else m_progress_complete = false; }
|
||||||
protected:
|
protected:
|
||||||
virtual void init();
|
void init();
|
||||||
virtual void render_text(ImGuiWrapper& imgui,
|
void render_text(ImGuiWrapper& imgui,
|
||||||
const float win_size_x, const float win_size_y,
|
const float win_size_x, const float win_size_y,
|
||||||
const float win_pos_x, const float win_pos_y);
|
const float win_pos_x, const float win_pos_y) override;
|
||||||
void render_bar(ImGuiWrapper& imgui,
|
void render_bar(ImGuiWrapper& imgui,
|
||||||
const float win_size_x, const float win_size_y,
|
const float win_size_x, const float win_size_y,
|
||||||
const float win_pos_x, const float win_pos_y);
|
const float win_pos_x, const float win_pos_y);
|
||||||
@ -410,20 +410,20 @@ private:
|
|||||||
std::string m_export_dir_path;
|
std::string m_export_dir_path;
|
||||||
protected:
|
protected:
|
||||||
// Reserves space on right for more buttons
|
// Reserves space on right for more buttons
|
||||||
virtual void count_spaces() override;
|
void count_spaces() override;
|
||||||
virtual void render_text(ImGuiWrapper& imgui,
|
void render_text(ImGuiWrapper& imgui,
|
||||||
const float win_size_x, const float win_size_y,
|
const float win_size_x, const float win_size_y,
|
||||||
const float win_pos_x, const float win_pos_y) override;
|
const float win_pos_x, const float win_pos_y) override;
|
||||||
// Renders also button to open directory with exported path and eject removable media
|
// Renders also button to open directory with exported path and eject removable media
|
||||||
virtual void render_close_button(ImGuiWrapper& imgui,
|
void render_close_button(ImGuiWrapper& imgui,
|
||||||
const float win_size_x, const float win_size_y,
|
const float win_size_x, const float win_size_y,
|
||||||
const float win_pos_x, const float win_pos_y) override;
|
const float win_pos_x, const float win_pos_y) override;
|
||||||
void render_eject_button(ImGuiWrapper& imgui,
|
void render_eject_button(ImGuiWrapper& imgui,
|
||||||
const float win_size_x, const float win_size_y,
|
const float win_size_x, const float win_size_y,
|
||||||
const float win_pos_x, const float win_pos_y);
|
const float win_pos_x, const float win_pos_y);
|
||||||
virtual void render_minimize_button(ImGuiWrapper& imgui, const float win_pos_x, const float win_pos_y) override
|
void render_minimize_button(ImGuiWrapper& imgui, const float win_pos_x, const float win_pos_y) override
|
||||||
{ m_minimize_b_visible = false; }
|
{ m_minimize_b_visible = false; }
|
||||||
virtual bool on_text_click() override;
|
bool on_text_click() override;
|
||||||
// local time of last hover for showing tooltip
|
// local time of last hover for showing tooltip
|
||||||
long m_hover_time { 0 };
|
long m_hover_time { 0 };
|
||||||
};
|
};
|
||||||
@ -465,23 +465,7 @@ private:
|
|||||||
#endif // ENABLE_NEW_NOTIFICATIONS_FADE_OUT
|
#endif // ENABLE_NEW_NOTIFICATIONS_FADE_OUT
|
||||||
*/
|
*/
|
||||||
//prepared (basic) notifications
|
//prepared (basic) notifications
|
||||||
const std::vector<NotificationData> basic_notifications = {
|
static const NotificationData basic_notifications[];
|
||||||
// {NotificationType::SlicingNotPossible, NotificationLevel::RegularNotification, 10, _u8L("Slicing is not possible.")},
|
|
||||||
// {NotificationType::ExportToRemovableFinished, NotificationLevel::ImportantNotification, 0, _u8L("Exporting finished."), _u8L("Eject drive.") },
|
|
||||||
{NotificationType::Mouse3dDisconnected, NotificationLevel::RegularNotification, 10, _u8L("3D Mouse disconnected.") },
|
|
||||||
// {NotificationType::Mouse3dConnected, NotificationLevel::RegularNotification, 5, _u8L("3D Mouse connected.") },
|
|
||||||
// {NotificationType::NewPresetsAviable, NotificationLevel::ImportantNotification, 20, _u8L("New Presets are available."), _u8L("See here.") },
|
|
||||||
{NotificationType::PresetUpdateAvailable, NotificationLevel::ImportantNotification, 20, _u8L("Configuration update is available."), _u8L("See more."), [](wxEvtHandler* evnthndlr){
|
|
||||||
if (evnthndlr != nullptr) wxPostEvent(evnthndlr, PresetUpdateAvailableClickedEvent(EVT_PRESET_UPDATE_AVAILABLE_CLICKED)); return true; }},
|
|
||||||
{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotification, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr){
|
|
||||||
wxLaunchDefaultBrowser("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }},
|
|
||||||
{NotificationType::EmptyColorChangeCode, NotificationLevel::RegularNotification, 10,
|
|
||||||
_u8L("You have just added a G-code for color change, but its value is empty.\n"
|
|
||||||
"To export the G-code correctly, check the \"Color Change G-code\" in \"Printer Settings > Custom G-code\"") },
|
|
||||||
//{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotification, 20, _u8L("New vesion of PrusaSlicer is available.", _u8L("Download page.") },
|
|
||||||
//{NotificationType::LoadingFailed, NotificationLevel::RegularNotification, 20, _u8L("Loading of model has Failed") },
|
|
||||||
//{NotificationType::DeviceEjected, NotificationLevel::RegularNotification, 10, _u8L("Removable device has been safely ejected")} // if we want changeble text (like here name of device), we need to do it as CustomNotification
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}//namespace GUI
|
}//namespace GUI
|
||||||
|
Loading…
Reference in New Issue
Block a user