mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-20 07:11:12 -06:00 
			
		
		
		
	Scalable toolbar icons
This commit is contained in:
		
							parent
							
								
									083c626770
								
							
						
					
					
						commit
						0a6e4cb39a
					
				
					 2 changed files with 29 additions and 18 deletions
				
			
		|  | @ -173,6 +173,7 @@ GLToolbar::Layout::Layout() | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     , separator_size(0.0f) |     , separator_size(0.0f) | ||||||
|     , gap_size(0.0f) |     , gap_size(0.0f) | ||||||
|  |     , icons_scale(1.0f) | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     , width(0.0f) |     , width(0.0f) | ||||||
|     , height(0.0f) |     , height(0.0f) | ||||||
|  | @ -290,6 +291,14 @@ void GLToolbar::set_gap_size(float size) | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void GLToolbar::set_icons_scale(float scale) | ||||||
|  | { | ||||||
|  |     m_layout.icons_scale = scale; | ||||||
|  | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|  |     m_layout.dirty = true; | ||||||
|  | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| bool GLToolbar::is_enabled() const | bool GLToolbar::is_enabled() const | ||||||
| { | { | ||||||
|     return m_enabled; |     return m_enabled; | ||||||
|  | @ -625,18 +634,18 @@ float GLToolbar::get_width_horizontal() const | ||||||
| float GLToolbar::get_width_vertical() const | float GLToolbar::get_width_vertical() const | ||||||
| { | { | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     return 2.0f * m_layout.border + m_icons_texture.metadata.icon_size; |     return 2.0f * m_layout.border + m_icons_texture.metadata.icon_size * m_layout.icons_scale; | ||||||
| #else | #else | ||||||
|     return m_icons_texture.items_icon_size; |     return m_icons_texture.items_icon_size * m_layout.icons_scale; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| float GLToolbar::get_height_horizontal() const | float GLToolbar::get_height_horizontal() const | ||||||
| { | { | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     return 2.0f * m_layout.border + m_icons_texture.metadata.icon_size; |     return 2.0f * m_layout.border + m_icons_texture.metadata.icon_size * m_layout.icons_scale; | ||||||
| #else | #else | ||||||
|     return m_icons_texture.items_icon_size; |     return m_icons_texture.items_icon_size * m_layout.icons_scale; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -658,9 +667,9 @@ float GLToolbar::get_main_size() const | ||||||
|             size += m_layout.separator_size; |             size += m_layout.separator_size; | ||||||
|         else |         else | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|             size += (float)m_icons_texture.metadata.icon_size; |             size += (float)m_icons_texture.metadata.icon_size * m_layout.icons_scale; | ||||||
| #else | #else | ||||||
|             size += (float)m_icons_texture.items_icon_size; |             size += (float)m_icons_texture.items_icon_size * m_layout.icons_scale; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -699,9 +708,9 @@ void GLToolbar::update_hover_state_horizontal(const Vec2d& mouse_pos) | ||||||
|     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); |     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); | ||||||
| 
 | 
 | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #else | #else | ||||||
|     float scaled_icons_size = (float)m_icons_texture.items_icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.items_icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     float scaled_separator_size = m_layout.separator_size * inv_zoom; |     float scaled_separator_size = m_layout.separator_size * inv_zoom; | ||||||
|     float scaled_gap_size = m_layout.gap_size * inv_zoom; |     float scaled_gap_size = m_layout.gap_size * inv_zoom; | ||||||
|  | @ -844,9 +853,9 @@ void GLToolbar::update_hover_state_vertical(const Vec2d& mouse_pos) | ||||||
|     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); |     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); | ||||||
| 
 | 
 | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #else | #else | ||||||
|     float scaled_icons_size = (float)m_icons_texture.items_icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.items_icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     float scaled_separator_size = m_layout.separator_size * inv_zoom; |     float scaled_separator_size = m_layout.separator_size * inv_zoom; | ||||||
|     float scaled_gap_size = m_layout.gap_size * inv_zoom; |     float scaled_gap_size = m_layout.gap_size * inv_zoom; | ||||||
|  | @ -980,9 +989,9 @@ int GLToolbar::contains_mouse_horizontal(const Vec2d& mouse_pos) const | ||||||
|     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); |     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); | ||||||
| 
 | 
 | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #else | #else | ||||||
|     float scaled_icons_size = (float)m_icons_texture.items_icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.items_icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     float scaled_separator_size = m_layout.separator_size * inv_zoom; |     float scaled_separator_size = m_layout.separator_size * inv_zoom; | ||||||
|     float scaled_gap_size = m_layout.gap_size * inv_zoom; |     float scaled_gap_size = m_layout.gap_size * inv_zoom; | ||||||
|  | @ -1045,9 +1054,9 @@ int GLToolbar::contains_mouse_vertical(const Vec2d& mouse_pos) const | ||||||
|     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); |     Vec2d scaled_mouse_pos((mouse_pos(0) - 0.5 * (double)cnv_size.get_width()) * inv_zoom, (0.5 * (double)cnv_size.get_height() - mouse_pos(1)) * inv_zoom); | ||||||
| 
 | 
 | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #else | #else | ||||||
|     float scaled_icons_size = (float)m_icons_texture.items_icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.items_icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     float scaled_separator_size = m_layout.separator_size * inv_zoom; |     float scaled_separator_size = m_layout.separator_size * inv_zoom; | ||||||
|     float scaled_gap_size = m_layout.gap_size * inv_zoom; |     float scaled_gap_size = m_layout.gap_size * inv_zoom; | ||||||
|  | @ -1109,9 +1118,9 @@ void GLToolbar::render_horizontal() const | ||||||
|     float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; |     float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; | ||||||
| 
 | 
 | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #else | #else | ||||||
|     float scaled_icons_size = (float)m_icons_texture.items_icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.items_icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     float scaled_separator_size = m_layout.separator_size * inv_zoom; |     float scaled_separator_size = m_layout.separator_size * inv_zoom; | ||||||
|     float scaled_gap_size = m_layout.gap_size * inv_zoom; |     float scaled_gap_size = m_layout.gap_size * inv_zoom; | ||||||
|  | @ -1257,9 +1266,9 @@ void GLToolbar::render_vertical() const | ||||||
|     float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; |     float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; | ||||||
| 
 | 
 | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.metadata.icon_size * m_layout.icons_scale * inv_zoom; | ||||||
| #else | #else | ||||||
|     float scaled_icons_size = (float)m_icons_texture.items_icon_size * inv_zoom; |     float scaled_icons_size = (float)m_icons_texture.items_icon_size * m_layout.icons_scale  * inv_zoom; | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     float scaled_separator_size = m_layout.separator_size * inv_zoom; |     float scaled_separator_size = m_layout.separator_size * inv_zoom; | ||||||
|     float scaled_gap_size = m_layout.gap_size * inv_zoom; |     float scaled_gap_size = m_layout.gap_size * inv_zoom; | ||||||
|  |  | ||||||
|  | @ -193,6 +193,7 @@ public: | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|         float separator_size; |         float separator_size; | ||||||
|         float gap_size; |         float gap_size; | ||||||
|  |         float icons_scale; | ||||||
| 
 | 
 | ||||||
| #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | #if ENABLE_TOOLBAR_BACKGROUND_TEXTURE | ||||||
|         float width; |         float width; | ||||||
|  | @ -249,6 +250,7 @@ public: | ||||||
| #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | #endif // ENABLE_TOOLBAR_BACKGROUND_TEXTURE
 | ||||||
|     void set_separator_size(float size); |     void set_separator_size(float size); | ||||||
|     void set_gap_size(float size); |     void set_gap_size(float size); | ||||||
|  |     void set_icons_scale(float scale); | ||||||
| 
 | 
 | ||||||
|     bool is_enabled() const; |     bool is_enabled() const; | ||||||
|     void set_enabled(bool enable); |     void set_enabled(bool enable); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri