mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri