mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 17:12:43 +00:00 
			
		
		
		
	 4a57a4a0b3
			
		
	
	
		4a57a4a0b3
		
	
	
	
	
		
			
			Previously changing tools while simultaneously using a widget like a slider would result in a event_dispatch() failure. Instead use a StackWidget to set the active widget.
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			714 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			714 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2020, Ben Jilks <benjyjilks@gmail.com>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <AK/RefPtr.h>
 | |
| #include <LibGUI/Forward.h>
 | |
| #include <LibGUI/StackWidget.h>
 | |
| #include <LibGUI/Widget.h>
 | |
| 
 | |
| namespace PixelPaint {
 | |
| 
 | |
| class Tool;
 | |
| 
 | |
| class ToolPropertiesWidget final : public GUI::Widget {
 | |
|     C_OBJECT(ToolPropertiesWidget);
 | |
| 
 | |
| public:
 | |
|     virtual ~ToolPropertiesWidget() override;
 | |
| 
 | |
|     void set_active_tool(Tool*);
 | |
| 
 | |
| private:
 | |
|     ToolPropertiesWidget();
 | |
| 
 | |
|     RefPtr<GUI::GroupBox> m_group_box;
 | |
| 
 | |
|     Tool* m_active_tool { nullptr };
 | |
|     RefPtr<GUI::StackWidget> m_tool_widget_stack;
 | |
|     RefPtr<GUI::Widget> m_blank_widget;
 | |
|     GUI::Widget* m_active_tool_widget { nullptr };
 | |
| };
 | |
| 
 | |
| }
 |