Background texture for toolbars set as default
This commit is contained in:
parent
2db0906071
commit
2adce62643
8 changed files with 3 additions and 941 deletions
|
@ -32,8 +32,6 @@
|
|||
#define ENABLE_REMOVE_TABS_FROM_PLATER (1 && ENABLE_1_42_0)
|
||||
// Use wxDataViewRender instead of wxDataViewCustomRenderer
|
||||
#define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING (0 && ENABLE_1_42_0)
|
||||
// Adds background texture to toolbars
|
||||
#define ENABLE_TOOLBAR_BACKGROUND_TEXTURE (1 && ENABLE_1_42_0)
|
||||
// Renders a small sphere in the center of the bounding box of the current selection when no gizmo is active
|
||||
#define ENABLE_RENDER_SELECTION_CENTER (0 && ENABLE_1_42_0)
|
||||
// Show visual hints in the 3D scene when sidebar matrix fields have focus
|
||||
|
|
|
@ -2706,7 +2706,6 @@ bool GLCanvas3D::Gizmos::init(GLCanvas3D& parent)
|
|||
|
||||
m_gizmos.insert(GizmosMap::value_type(SlaSupports, gizmo));
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_background_texture.metadata.filename = "toolbar_background.png";
|
||||
m_background_texture.metadata.left = 16;
|
||||
m_background_texture.metadata.top = 16;
|
||||
|
@ -2721,7 +2720,6 @@ bool GLCanvas3D::Gizmos::init(GLCanvas3D& parent)
|
|||
return false;
|
||||
}
|
||||
}
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -3154,7 +3152,6 @@ void GLCanvas3D::Gizmos::_render_overlay(const GLCanvas3D& canvas, const GLCanva
|
|||
float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f;
|
||||
|
||||
float height = _get_total_overlay_height();
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float scaled_border = OverlayBorder * inv_zoom;
|
||||
|
||||
float top_x = (-0.5f * cnv_w) * inv_zoom;
|
||||
|
@ -3233,10 +3230,6 @@ void GLCanvas3D::Gizmos::_render_overlay(const GLCanvas3D& canvas, const GLCanva
|
|||
|
||||
top_x += OverlayBorder * inv_zoom;
|
||||
top_y -= OverlayBorder * inv_zoom;
|
||||
#else
|
||||
float top_x = (OverlayBorder - 0.5f * cnv_w) * inv_zoom;
|
||||
float top_y = (0.5f * height - OverlayBorder) * inv_zoom;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float scaled_gap_y = OverlayGapY * inv_zoom;
|
||||
for (GizmosMap::const_iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it)
|
||||
{
|
||||
|
@ -3275,7 +3268,6 @@ float GLCanvas3D::Gizmos::_get_total_overlay_height() const
|
|||
return height - OverlayGapY;
|
||||
}
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float GLCanvas3D::Gizmos::_get_total_overlay_width() const
|
||||
{
|
||||
float max_icon_width = 0.0f;
|
||||
|
@ -3289,7 +3281,6 @@ float GLCanvas3D::Gizmos::_get_total_overlay_width() const
|
|||
|
||||
return max_icon_width + 2.0f * OverlayBorder;
|
||||
}
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
GLGizmoBase* GLCanvas3D::Gizmos::_get_current() const
|
||||
{
|
||||
|
@ -3666,11 +3657,7 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas)
|
|||
: m_canvas(canvas)
|
||||
, m_context(nullptr)
|
||||
, m_in_render(false)
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
, m_toolbar(GLToolbar::Normal)
|
||||
#else
|
||||
, m_toolbar(*this)
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
, m_view_toolbar(nullptr)
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
|
@ -4910,11 +4897,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
|
|||
int layer_editing_object_idx = is_layers_editing_enabled() ? selected_object_idx : -1;
|
||||
m_layers_editing.last_object_id = layer_editing_object_idx;
|
||||
bool gizmos_overlay_contains_mouse = m_gizmos.overlay_contains_mouse(*this, m_mouse.position);
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
int toolbar_contains_mouse = m_toolbar.contains_mouse(m_mouse.position, *this);
|
||||
#else
|
||||
int toolbar_contains_mouse = m_toolbar.contains_mouse(m_mouse.position);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
int view_toolbar_contains_mouse = (m_view_toolbar != nullptr) ? m_view_toolbar->contains_mouse(m_mouse.position, *this) : -1;
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
|
@ -4938,11 +4921,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
|
|||
else if (evt.LeftDClick() && (toolbar_contains_mouse != -1))
|
||||
{
|
||||
m_toolbar_action_running = true;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_toolbar.do_action((unsigned int)toolbar_contains_mouse, *this);
|
||||
#else
|
||||
m_toolbar.do_action((unsigned int)toolbar_contains_mouse);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
}
|
||||
else if (evt.LeftDClick() && (m_gizmos.get_current_type() != Gizmos::Undefined))
|
||||
{
|
||||
|
@ -5021,11 +5000,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
|
|||
else if (toolbar_contains_mouse != -1)
|
||||
{
|
||||
m_toolbar_action_running = true;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_toolbar.do_action((unsigned int)toolbar_contains_mouse, *this);
|
||||
#else
|
||||
m_toolbar.do_action((unsigned int)toolbar_contains_mouse);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_mouse.left_down = false;
|
||||
}
|
||||
else
|
||||
|
@ -5303,11 +5278,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
|
|||
|
||||
// updates toolbar overlay
|
||||
if (tooltip.empty())
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
tooltip = m_toolbar.update_hover_state(m_mouse.position, *this);
|
||||
#else
|
||||
tooltip = m_toolbar.update_hover_state(m_mouse.position);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
// updates view toolbar overlay
|
||||
if (tooltip.empty() && (m_view_toolbar != nullptr))
|
||||
|
@ -5664,7 +5635,6 @@ bool GLCanvas3D::_init_toolbar()
|
|||
if (!m_toolbar.is_enabled())
|
||||
return true;
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
ItemsIconsTexture::Metadata icons_data;
|
||||
icons_data.filename = "toolbar.png";
|
||||
icons_data.icon_size = 36;
|
||||
|
@ -5684,9 +5654,6 @@ bool GLCanvas3D::_init_toolbar()
|
|||
background_data.bottom = 16;
|
||||
|
||||
if (!m_toolbar.init(icons_data, background_data))
|
||||
#else
|
||||
if (!m_toolbar.init("toolbar.png", 36, 1, 1))
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
{
|
||||
// unable to init the toolbar texture, disable it
|
||||
m_toolbar.set_enabled(false);
|
||||
|
@ -5695,10 +5662,8 @@ bool GLCanvas3D::_init_toolbar()
|
|||
|
||||
// m_toolbar.set_layout_type(GLToolbar::Layout::Vertical);
|
||||
m_toolbar.set_layout_type(GLToolbar::Layout::Horizontal);
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_toolbar.set_layout_orientation(GLToolbar::Layout::Top);
|
||||
m_toolbar.set_border(5.0f);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_toolbar.set_separator_size(5);
|
||||
m_toolbar.set_gap_size(2);
|
||||
|
||||
|
@ -6339,11 +6304,7 @@ void GLCanvas3D::_render_toolbar() const
|
|||
#if !ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
_resize_toolbar();
|
||||
#endif // !ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_toolbar.render(*this);
|
||||
#else
|
||||
m_toolbar.render();
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
}
|
||||
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
|
@ -7976,9 +7937,7 @@ void GLCanvas3D::_resize_toolbar() const
|
|||
float zoom = get_camera_zoom();
|
||||
float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f;
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
GLToolbar::Layout::EOrientation orientation = m_toolbar.get_layout_orientation();
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
switch (m_toolbar.get_layout_type())
|
||||
{
|
||||
|
@ -7986,7 +7945,6 @@ void GLCanvas3D::_resize_toolbar() const
|
|||
case GLToolbar::Layout::Horizontal:
|
||||
{
|
||||
// centers the toolbar on the top edge of the 3d scene
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float top, left;
|
||||
if (orientation == GLToolbar::Layout::Top)
|
||||
{
|
||||
|
@ -7998,17 +7956,12 @@ void GLCanvas3D::_resize_toolbar() const
|
|||
top = (-0.5f * (float)cnv_size.get_height() + m_view_toolbar->get_height()) * inv_zoom;
|
||||
left = -0.5f * m_toolbar.get_width() * inv_zoom;
|
||||
}
|
||||
#else
|
||||
float top = 0.5f * (float)cnv_size.get_height() * inv_zoom;
|
||||
float left = -0.5f * m_toolbar.get_width() * inv_zoom;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_toolbar.set_position(top, left);
|
||||
break;
|
||||
}
|
||||
case GLToolbar::Layout::Vertical:
|
||||
{
|
||||
// centers the toolbar on the right edge of the 3d scene
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float top, left;
|
||||
if (orientation == GLToolbar::Layout::Left)
|
||||
{
|
||||
|
@ -8020,10 +7973,6 @@ void GLCanvas3D::_resize_toolbar() const
|
|||
top = 0.5f * m_toolbar.get_height() * inv_zoom;
|
||||
left = (0.5f * (float)cnv_size.get_width() - m_toolbar.get_width()) * inv_zoom;
|
||||
}
|
||||
#else
|
||||
float top = 0.5f * m_toolbar.get_height() * inv_zoom;
|
||||
float left = (0.5f * (float)cnv_size.get_width() - m_toolbar.get_width()) * inv_zoom;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
m_toolbar.set_position(top, left);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -640,9 +640,7 @@ private:
|
|||
bool m_enabled;
|
||||
typedef std::map<EType, GLGizmoBase*> GizmosMap;
|
||||
GizmosMap m_gizmos;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
BackgroundTexture m_background_texture;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
EType m_current;
|
||||
|
||||
public:
|
||||
|
@ -711,9 +709,8 @@ private:
|
|||
void _render_current_gizmo(const Selection& selection) const;
|
||||
|
||||
float _get_total_overlay_height() const;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float _get_total_overlay_width() const;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
GLGizmoBase* _get_current() const;
|
||||
};
|
||||
|
||||
|
@ -787,11 +784,7 @@ private:
|
|||
mutable Gizmos m_gizmos;
|
||||
mutable GLToolbar m_toolbar;
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
GLToolbar* m_view_toolbar;
|
||||
#else
|
||||
GLRadioToolbar* m_view_toolbar;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
ClippingPlane m_clipping_planes[2];
|
||||
bool m_use_clipping_planes;
|
||||
|
@ -842,11 +835,7 @@ public:
|
|||
wxGLCanvas* get_wxglcanvas() { return m_canvas; }
|
||||
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void set_view_toolbar(GLToolbar* toolbar) { m_view_toolbar = toolbar; }
|
||||
#else
|
||||
void set_view_toolbar(GLRadioToolbar* toolbar) { m_view_toolbar = toolbar; }
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
|
||||
bool init(bool useVBOs, bool use_legacy_opengl);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -77,9 +77,7 @@ public:
|
|||
void do_action(wxEvtHandler *target);
|
||||
|
||||
bool is_enabled() const;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
bool is_disabled() const;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
bool is_hovered() const;
|
||||
bool is_pressed() const;
|
||||
|
||||
|
@ -97,7 +95,6 @@ private:
|
|||
// from left to right
|
||||
struct ItemsIconsTexture
|
||||
{
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
struct Metadata
|
||||
{
|
||||
// path of the file containing the icons' texture
|
||||
|
@ -111,23 +108,11 @@ struct ItemsIconsTexture
|
|||
|
||||
Metadata();
|
||||
};
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
GLTexture texture;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
Metadata metadata;
|
||||
#else
|
||||
// size of the square icons, in pixels
|
||||
unsigned int items_icon_size;
|
||||
// distance from the border, in pixels
|
||||
unsigned int items_icon_border_size;
|
||||
// distance between two adjacent icons (to avoid filtering artifacts), in pixels
|
||||
unsigned int items_icon_gap_size;
|
||||
|
||||
ItemsIconsTexture();
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
GLTexture texture;
|
||||
Metadata metadata;
|
||||
};
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
struct BackgroundTexture
|
||||
{
|
||||
struct Metadata
|
||||
|
@ -149,19 +134,16 @@ struct BackgroundTexture
|
|||
GLTexture texture;
|
||||
Metadata metadata;
|
||||
};
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
class GLToolbar
|
||||
{
|
||||
public:
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
enum EType : unsigned char
|
||||
{
|
||||
Normal,
|
||||
Radio,
|
||||
Num_Types
|
||||
};
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
struct Layout
|
||||
{
|
||||
|
@ -183,23 +165,17 @@ public:
|
|||
};
|
||||
|
||||
EType type;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
EOrientation orientation;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float top;
|
||||
float left;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float border;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float separator_size;
|
||||
float gap_size;
|
||||
float icons_scale;
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float width;
|
||||
float height;
|
||||
bool dirty;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
Layout();
|
||||
};
|
||||
|
@ -207,47 +183,27 @@ public:
|
|||
private:
|
||||
typedef std::vector<GLToolbarItem*> ItemsList;
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
EType m_type;
|
||||
#else
|
||||
GLCanvas3D& m_parent;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
bool m_enabled;
|
||||
ItemsIconsTexture m_icons_texture;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
BackgroundTexture m_background_texture;
|
||||
mutable Layout m_layout;
|
||||
#else
|
||||
Layout m_layout;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
ItemsList m_items;
|
||||
|
||||
public:
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
explicit GLToolbar(EType type);
|
||||
#else
|
||||
explicit GLToolbar(GLCanvas3D& parent);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
~GLToolbar();
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
bool init(const ItemsIconsTexture::Metadata& icons_texture, const BackgroundTexture::Metadata& background_texture);
|
||||
#else
|
||||
bool init(const std::string& icons_texture_filename, unsigned int items_icon_size, unsigned int items_icon_border_size, unsigned int items_icon_gap_size);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
Layout::EType get_layout_type() const;
|
||||
void set_layout_type(Layout::EType type);
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
Layout::EOrientation get_layout_orientation() const;
|
||||
void set_layout_orientation(Layout::EOrientation orientation);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
void set_position(float top, float left);
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void set_border(float border);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void set_separator_size(float size);
|
||||
void set_gap_size(float size);
|
||||
void set_icons_scale(float scale);
|
||||
|
@ -263,169 +219,45 @@ public:
|
|||
|
||||
void enable_item(const std::string& name);
|
||||
void disable_item(const std::string& name);
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void select_item(const std::string& name);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
bool is_item_pressed(const std::string& name) const;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
bool is_item_disabled(const std::string& name) const;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
std::string update_hover_state(const Vec2d& mouse_pos, GLCanvas3D& parent);
|
||||
#else
|
||||
std::string update_hover_state(const Vec2d& mouse_pos);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#else
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void update_hover_state(const Vec2d& mouse_pos, GLCanvas3D& parent);
|
||||
#else
|
||||
void update_hover_state(const Vec2d& mouse_pos);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
// returns the id of the item under the given mouse position or -1 if none
|
||||
int contains_mouse(const Vec2d& mouse_pos, const GLCanvas3D& parent) const;
|
||||
|
||||
void do_action(unsigned int item_id, GLCanvas3D& parent);
|
||||
#else
|
||||
// returns the id of the item under the given mouse position or -1 if none
|
||||
int contains_mouse(const Vec2d& mouse_pos) const;
|
||||
|
||||
void do_action(unsigned int item_id);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void render(const GLCanvas3D& parent) const;
|
||||
#else
|
||||
void render() const;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
private:
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void calc_layout() const;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
float get_width_horizontal() const;
|
||||
float get_width_vertical() const;
|
||||
float get_height_horizontal() const;
|
||||
float get_height_vertical() const;
|
||||
float get_main_size() const;
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
std::string update_hover_state_horizontal(const Vec2d& mouse_pos, GLCanvas3D& parent);
|
||||
std::string update_hover_state_vertical(const Vec2d& mouse_pos, GLCanvas3D& parent);
|
||||
#else
|
||||
std::string update_hover_state_horizontal(const Vec2d& mouse_pos);
|
||||
std::string update_hover_state_vertical(const Vec2d& mouse_pos);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#else
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void update_hover_state_horizontal(const Vec2d& mouse_pos, GLCanvas3D& parent);
|
||||
void update_hover_state_vertical(const Vec2d& mouse_pos, GLCanvas3D& parent);
|
||||
#else
|
||||
void update_hover_state_horizontal(const Vec2d& mouse_pos);
|
||||
void update_hover_state_vertical(const Vec2d& mouse_pos);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
int contains_mouse_horizontal(const Vec2d& mouse_pos, const GLCanvas3D& parent) const;
|
||||
int contains_mouse_vertical(const Vec2d& mouse_pos, const GLCanvas3D& parent) const;
|
||||
|
||||
void render_horizontal(const GLCanvas3D& parent) const;
|
||||
void render_vertical(const GLCanvas3D& parent) const;
|
||||
#else
|
||||
int contains_mouse_horizontal(const Vec2d& mouse_pos) const;
|
||||
int contains_mouse_vertical(const Vec2d& mouse_pos) const;
|
||||
|
||||
void render_horizontal() const;
|
||||
void render_vertical() const;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
};
|
||||
|
||||
#if !ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
class GLRadioToolbarItem
|
||||
{
|
||||
public:
|
||||
struct Data
|
||||
{
|
||||
std::string name;
|
||||
std::string tooltip;
|
||||
unsigned int sprite_id;
|
||||
wxEventType action_event;
|
||||
|
||||
Data();
|
||||
};
|
||||
|
||||
enum EState : unsigned char
|
||||
{
|
||||
Normal,
|
||||
Pressed,
|
||||
Hover,
|
||||
HoverPressed,
|
||||
Num_States
|
||||
};
|
||||
|
||||
private:
|
||||
EState m_state;
|
||||
Data m_data;
|
||||
|
||||
public:
|
||||
GLRadioToolbarItem(const Data& data);
|
||||
|
||||
EState get_state() const;
|
||||
void set_state(EState state);
|
||||
|
||||
const std::string& get_name() const;
|
||||
const std::string& get_tooltip() const;
|
||||
|
||||
bool is_hovered() const;
|
||||
bool is_pressed() const;
|
||||
|
||||
void do_action(wxEvtHandler *target);
|
||||
|
||||
void render(unsigned int tex_id, float left, float right, float bottom, float top, unsigned int texture_size, unsigned int border_size, unsigned int icon_size, unsigned int gap_size) const;
|
||||
|
||||
private:
|
||||
GLTexture::Quad_UVs get_uvs(unsigned int texture_size, unsigned int border_size, unsigned int icon_size, unsigned int gap_size) const;
|
||||
};
|
||||
|
||||
class GLRadioToolbar
|
||||
{
|
||||
typedef std::vector<GLRadioToolbarItem*> ItemsList;
|
||||
|
||||
ItemsIconsTexture m_icons_texture;
|
||||
|
||||
ItemsList m_items;
|
||||
float m_top;
|
||||
float m_left;
|
||||
|
||||
public:
|
||||
GLRadioToolbar();
|
||||
~GLRadioToolbar();
|
||||
|
||||
bool init(const std::string& icons_texture_filename, unsigned int items_icon_size, unsigned int items_icon_border_size, unsigned int items_icon_gap_size);
|
||||
|
||||
bool add_item(const GLRadioToolbarItem::Data& data);
|
||||
|
||||
float get_height() const;
|
||||
|
||||
void set_position(float top, float left);
|
||||
void set_selection(const std::string& name);
|
||||
|
||||
// returns the id of the item under the given mouse position or -1 if none
|
||||
int contains_mouse(const Vec2d& mouse_pos, const GLCanvas3D& parent) const;
|
||||
|
||||
std::string update_hover_state(const Vec2d& mouse_pos, GLCanvas3D& parent);
|
||||
|
||||
void do_action(unsigned int item_id, GLCanvas3D& parent);
|
||||
|
||||
void render(const GLCanvas3D& parent) const;
|
||||
};
|
||||
#endif // !ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
} // namespace GUI
|
||||
} // namespace Slic3r
|
||||
|
||||
|
|
|
@ -91,11 +91,7 @@ bool View3D::init(wxWindow* parent, Model* model, DynamicPrintConfig* config, Ba
|
|||
return true;
|
||||
}
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void View3D::set_view_toolbar(GLToolbar* toolbar)
|
||||
#else
|
||||
void View3D::set_view_toolbar(GLRadioToolbar* toolbar)
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
{
|
||||
if (m_canvas != nullptr)
|
||||
m_canvas->set_view_toolbar(toolbar);
|
||||
|
@ -366,11 +362,7 @@ Preview::~Preview()
|
|||
}
|
||||
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void Preview::set_view_toolbar(GLToolbar* toolbar)
|
||||
#else
|
||||
void Preview::set_view_toolbar(GLRadioToolbar* toolbar)
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
{
|
||||
if (m_canvas != nullptr)
|
||||
m_canvas->set_view_toolbar(toolbar);
|
||||
|
|
|
@ -28,15 +28,9 @@ class Model;
|
|||
namespace GUI {
|
||||
|
||||
class GLCanvas3D;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
class GLToolbar;
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#else
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
class GLRadioToolbar;
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
class View3D : public wxPanel
|
||||
|
@ -59,11 +53,7 @@ public:
|
|||
wxGLCanvas* get_wxglcanvas() { return m_canvas_widget; }
|
||||
GLCanvas3D* get_canvas3d() { return m_canvas; }
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void set_view_toolbar(GLToolbar* toolbar);
|
||||
#else
|
||||
void set_view_toolbar(GLRadioToolbar* toolbar);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
|
||||
void set_as_dirty();
|
||||
void set_bed_shape(const Pointfs& shape);
|
||||
|
@ -131,11 +121,7 @@ public:
|
|||
wxGLCanvas* get_wxglcanvas() { return m_canvas_widget; }
|
||||
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
void set_view_toolbar(GLToolbar* toolbar);
|
||||
#else
|
||||
void set_view_toolbar(GLRadioToolbar* toolbar);
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
|
||||
void set_number_extruders(unsigned int number_extruders);
|
||||
|
|
|
@ -913,11 +913,7 @@ struct Plater::priv
|
|||
Sidebar *sidebar;
|
||||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
View3D* view3D;
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
GLToolbar view_toolbar;
|
||||
#else
|
||||
GLRadioToolbar view_toolbar;
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
#else
|
||||
#if !ENABLE_IMGUI
|
||||
wxPanel *panel3d;
|
||||
|
@ -1080,9 +1076,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||
#endif // !ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
, delayed_scene_refresh(false)
|
||||
, project_filename(wxEmptyString)
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
, view_toolbar(GLToolbar::Radio)
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
{
|
||||
arranging.store(false);
|
||||
rotoptimizing.store(false);
|
||||
|
@ -2674,7 +2668,6 @@ bool Plater::priv::complit_init_part_menu()
|
|||
#if ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
void Plater::priv::init_view_toolbar()
|
||||
{
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
ItemsIconsTexture::Metadata icons_data;
|
||||
icons_data.filename = "view_toolbar.png";
|
||||
icons_data.icon_size = 64;
|
||||
|
@ -2689,12 +2682,8 @@ void Plater::priv::init_view_toolbar()
|
|||
background_data.bottom = 16;
|
||||
|
||||
if (!view_toolbar.init(icons_data, background_data))
|
||||
#else
|
||||
if (!view_toolbar.init("view_toolbar.png", 64, 0, 0))
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
return;
|
||||
|
||||
#if ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
view_toolbar.set_layout_orientation(GLToolbar::Layout::Bottom);
|
||||
view_toolbar.set_border(5.0f);
|
||||
view_toolbar.set_gap_size(1.0f);
|
||||
|
@ -2725,28 +2714,6 @@ void Plater::priv::init_view_toolbar()
|
|||
|
||||
view3D->set_view_toolbar(&view_toolbar);
|
||||
preview->set_view_toolbar(&view_toolbar);
|
||||
#else
|
||||
GLRadioToolbarItem::Data item;
|
||||
|
||||
item.name = "3D";
|
||||
item.tooltip = GUI::L_str("3D editor view");
|
||||
item.sprite_id = 0;
|
||||
item.action_event = EVT_GLVIEWTOOLBAR_3D;
|
||||
if (!view_toolbar.add_item(item))
|
||||
return;
|
||||
|
||||
item.name = "Preview";
|
||||
item.tooltip = GUI::L_str("Preview");
|
||||
item.sprite_id = 1;
|
||||
item.action_event = EVT_GLVIEWTOOLBAR_PREVIEW;
|
||||
if (!view_toolbar.add_item(item))
|
||||
return;
|
||||
|
||||
view3D->set_view_toolbar(&view_toolbar);
|
||||
preview->set_view_toolbar(&view_toolbar);
|
||||
|
||||
view_toolbar.set_selection("3D");
|
||||
#endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
|
||||
}
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
|
||||
|
|
Loading…
Reference in a new issue