mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 20:22:45 +00:00 
			
		
		
		
	LibDraw+LibGUI: Move radio button painting into StylePainter
This will allow WindowServer to draw radio buttons :^)
This commit is contained in:
		
							parent
							
								
									6c549959c6
								
							
						
					
					
						commit
						cc8c26c39b
					
				
					 3 changed files with 30 additions and 21 deletions
				
			
		|  | @ -1,3 +1,4 @@ | |||
| #include <LibDraw/GraphicsBitmap.h> | ||||
| #include <LibDraw/Painter.h> | ||||
| #include <LibDraw/Palette.h> | ||||
| #include <LibDraw/StylePainter.h> | ||||
|  | @ -257,3 +258,28 @@ void StylePainter::paint_progress_bar(Painter& painter, const Rect& rect, const | |||
|     if (!text.is_null()) | ||||
|         painter.draw_text(rect.translated(0, 0), text, TextAlignment::Center, palette.base_text()); | ||||
| } | ||||
| 
 | ||||
| static RefPtr<GraphicsBitmap> s_unfilled_circle_bitmap; | ||||
| static RefPtr<GraphicsBitmap> s_filled_circle_bitmap; | ||||
| static RefPtr<GraphicsBitmap> s_changing_filled_circle_bitmap; | ||||
| static RefPtr<GraphicsBitmap> s_changing_unfilled_circle_bitmap; | ||||
| 
 | ||||
| static const GraphicsBitmap& circle_bitmap(bool checked, bool changing) | ||||
| { | ||||
|     if (changing) | ||||
|         return checked ? *s_changing_filled_circle_bitmap : *s_changing_unfilled_circle_bitmap; | ||||
|     return checked ? *s_filled_circle_bitmap : *s_unfilled_circle_bitmap; | ||||
| } | ||||
| 
 | ||||
| void StylePainter::paint_radio_button(Painter& painter, const Rect& rect, const Palette&, bool is_checked, bool is_being_pressed) | ||||
| { | ||||
|     if (!s_unfilled_circle_bitmap) { | ||||
|         s_unfilled_circle_bitmap = GraphicsBitmap::load_from_file("/res/icons/unfilled-radio-circle.png"); | ||||
|         s_filled_circle_bitmap = GraphicsBitmap::load_from_file("/res/icons/filled-radio-circle.png"); | ||||
|         s_changing_filled_circle_bitmap = GraphicsBitmap::load_from_file("/res/icons/changing-filled-radio-circle.png"); | ||||
|         s_changing_unfilled_circle_bitmap = GraphicsBitmap::load_from_file("/res/icons/changing-unfilled-radio-circle.png"); | ||||
|     } | ||||
| 
 | ||||
|     auto& bitmap = circle_bitmap(is_checked, is_being_pressed); | ||||
|     painter.blit(rect.location(), bitmap, bitmap.rect()); | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling