mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 13:25:56 +08:00
Fix for for SPE-2338 - [LINUX] "Menu" / "Log in" has wrong label layout (is bottom placed)
(set icon size for 20px instead of 24) + Sidebar: nonMSW specific : Added right margin for bottom buttons + Gizmos toolbar: Code cleaning
This commit is contained in:
parent
8590e34aaf
commit
986b0e1cdb
@ -1291,7 +1291,7 @@ void GLToolbar::render_vertical(const GLCanvas3D& parent)
|
||||
|
||||
render_background(left, top, right, bottom, border_w, border_h);
|
||||
|
||||
left += border_w + gap_size_y;
|
||||
left += border_w + gap_size_x;
|
||||
top -= border_h + gap_size_y;
|
||||
|
||||
// renders icons
|
||||
|
@ -62,8 +62,6 @@ std::vector<size_t> GLGizmosManager::get_selectable_idxs() const
|
||||
return out;
|
||||
}
|
||||
|
||||
#define rect_sel 1 // square_sel, if 0
|
||||
|
||||
GLGizmosManager::EType GLGizmosManager::get_gizmo_from_mouse(const Vec2d &mouse_pos) const
|
||||
{
|
||||
if (!m_enabled) return Undefined;
|
||||
@ -74,7 +72,6 @@ GLGizmosManager::EType GLGizmosManager::get_gizmo_from_mouse(const Vec2d &mouse_
|
||||
float border = m_layout.scaled_border();
|
||||
float stride_y = m_layout.scaled_stride_y();
|
||||
float gap_x = m_layout.scaled_gap_x();
|
||||
float gap_y = m_layout.scaled_gap_x();
|
||||
float top_y = 0.5f * (cnv_h - height) + border;
|
||||
|
||||
// is mouse horizontally in the area?
|
||||
@ -83,11 +80,7 @@ GLGizmosManager::EType GLGizmosManager::get_gizmo_from_mouse(const Vec2d &mouse_
|
||||
// which icon is it on?
|
||||
size_t from_top = (size_t) ((float) mouse_pos(1) - top_y) / stride_y;
|
||||
// is it really on the icon or already past the border?
|
||||
#if rect_sel
|
||||
if ((float) mouse_pos(1) <= top_y + from_top * stride_y + icons_size) {
|
||||
#else
|
||||
if ((float) mouse_pos(1) <= top_y + gap_y + from_top * stride_y + icons_size) {
|
||||
#endif
|
||||
std::vector<size_t> selectable = get_selectable_idxs();
|
||||
if (from_top < selectable.size())
|
||||
return static_cast<EType>(selectable[from_top]);
|
||||
@ -817,14 +810,9 @@ void GLGizmosManager::do_render_overlay() const
|
||||
render_background(top_x, top_y, top_x + width, top_y - height, border_w, border_h);
|
||||
|
||||
const float margin_w = border_w + m_layout.scaled_gap_x() * inv_cnv_w;
|
||||
const float margin_h = border_h + m_layout.scaled_gap_y() * inv_cnv_h;
|
||||
|
||||
top_x += margin_w;
|
||||
#if rect_sel
|
||||
top_y -= border_h;
|
||||
#else
|
||||
top_y -= margin_h;
|
||||
#endif
|
||||
|
||||
const float icons_size_x = 2.0f * m_layout.scaled_icons_size() * inv_cnv_w;
|
||||
const float icons_size_y = 2.0f * m_layout.scaled_icons_size() * inv_cnv_h;
|
||||
@ -849,11 +837,7 @@ void GLGizmosManager::do_render_overlay() const
|
||||
GLGizmoBase* gizmo = m_gizmos[idx].get();
|
||||
|
||||
if (m_current == idx)
|
||||
#if rect_sel
|
||||
render_background(top_x - margin_w, top_y + border_h, top_x + icons_size_x + margin_w, top_y - icons_size_y - border_h, border_w, border_h);
|
||||
#else
|
||||
render_background(top_x - margin_w, top_y + margin_h, top_x + icons_size_x + margin_w, top_y - icons_size_y - margin_h, border_w, border_h);
|
||||
#endif
|
||||
|
||||
const unsigned int sprite_id = gizmo->get_sprite_id();
|
||||
// higlighted state needs to be decided first so its highlighting in every other state
|
||||
@ -879,11 +863,7 @@ void GLGizmosManager::do_render_overlay() const
|
||||
|
||||
float GLGizmosManager::get_scaled_total_height() const
|
||||
{
|
||||
#if rect_sel
|
||||
return 2.0f * m_layout.scaled_border() + (float)get_selectable_idxs().size() * m_layout.scaled_stride_y() - m_layout.scaled_gap_y();
|
||||
#else
|
||||
return 2.0f * m_layout.scaled_border() + (float)get_selectable_idxs().size() * m_layout.scaled_stride_y();
|
||||
#endif
|
||||
}
|
||||
|
||||
float GLGizmosManager::get_scaled_total_width() const
|
||||
|
@ -513,7 +513,11 @@ Sidebar::Sidebar(Plater *parent)
|
||||
|
||||
auto *sizer = new wxBoxSizer(wxVERTICAL);
|
||||
sizer->Add(m_scrolled_panel, 1, wxEXPAND);
|
||||
sizer->Add(btns_sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM, margin_5);
|
||||
sizer->Add(btns_sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM
|
||||
#ifndef _WIN32
|
||||
| wxRIGHT
|
||||
#endif // __linux__
|
||||
, margin_5);
|
||||
SetSizer(sizer);
|
||||
|
||||
// Events
|
||||
|
@ -166,8 +166,14 @@ void TopBarItemsCtrl::Button::sys_color_changed()
|
||||
m_foreground_color = wxGetApp().get_label_clr_default();
|
||||
}
|
||||
|
||||
#ifdef __linux__
|
||||
const int icon_sz = 20;
|
||||
#else
|
||||
const int icon_sz = 24;
|
||||
#endif
|
||||
|
||||
TopBarItemsCtrl::ButtonWithPopup::ButtonWithPopup(wxWindow* parent, const wxString& label, const std::string& icon_name, wxSize size)
|
||||
:TopBarItemsCtrl::Button(parent, label, icon_name, 24, size)
|
||||
:TopBarItemsCtrl::Button(parent, label, icon_name, icon_sz, size)
|
||||
{
|
||||
if (size != wxDefaultSize)
|
||||
m_fixed_width = size.x * 0.1;
|
||||
@ -224,9 +230,7 @@ void TopBarItemsCtrl::UpdateAccountButton(bool avatar/* = false*/)
|
||||
{
|
||||
auto user_account = wxGetApp().plater()->get_user_account();
|
||||
const wxString user_name = user_account->is_logged() ? from_u8(user_account->get_username()) : _L("Log in");
|
||||
m_account_btn->SetLabel(m_collapsed_btns ? "" : user_name);
|
||||
m_account_btn->SetToolTip(user_name);
|
||||
const int icon_sz = 24;
|
||||
#ifdef __linux__
|
||||
if (avatar) {
|
||||
if (user_account->is_logged()) {
|
||||
@ -256,7 +260,10 @@ void TopBarItemsCtrl::UpdateAccountButton(bool avatar/* = false*/)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
m_account_btn->Refresh();
|
||||
|
||||
m_account_btn->SetLabel(m_collapsed_btns ? "" : user_name);
|
||||
this->Layout();
|
||||
// m_account_btn->Refresh();
|
||||
}
|
||||
|
||||
void TopBarItemsCtrl::UnselectPopupButtons()
|
||||
|
@ -566,10 +566,15 @@ ScalableButton::ScalableButton( wxWindow * parent,
|
||||
SetBitmap(bitmap.bmp());
|
||||
}
|
||||
|
||||
void ScalableButton::SetBitmap_(const ScalableBitmap& bmp)
|
||||
void ScalableButton::SetBitmap_(const ScalableBitmap& bitmap)
|
||||
{
|
||||
SetBitmap(bmp.bmp());
|
||||
m_current_icon_name = bmp.name();
|
||||
const wxBitmapBundle& bmp = bitmap.bmp();
|
||||
SetBitmap(bmp);
|
||||
SetBitmapCurrent(bmp);
|
||||
SetBitmapPressed(bmp);
|
||||
SetBitmapFocus(bmp);
|
||||
SetBitmapDisabled(bmp);
|
||||
m_current_icon_name = bitmap.name();
|
||||
}
|
||||
|
||||
bool ScalableButton::SetBitmap_(const std::string& bmp_name)
|
||||
|
Loading…
x
Reference in New Issue
Block a user