mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 17:52:45 +00:00 
			
		
		
		
	LibGUI: Start adding an automatic widget layout system.
My needs are really quite simple, so I'm just going to add what I need as I go along. The first thing I needed was a simple box layout with widgets being able to say whether they prefer fixed or fill for both their vertical and horizontal sizes. I also made a simple GStatusBar so FileManager can show how many bytes worth of files are in the current directory.
This commit is contained in:
		
							parent
							
								
									2cf1dd5b6f
								
							
						
					
					
						commit
						2def3d8d3f
					
				
					 22 changed files with 411 additions and 29 deletions
				
			
		|  | @ -1,14 +1,10 @@ | |||
| #include <SharedGraphics/GraphicsBitmap.h> | ||||
| #include <LibGUI/GWindow.h> | ||||
| #include <LibGUI/GWidget.h> | ||||
| #include <LibGUI/GButton.h> | ||||
| #include <LibGUI/GListBox.h> | ||||
| #include <LibGUI/GBoxLayout.h> | ||||
| #include <LibGUI/GEventLoop.h> | ||||
| #include <sys/wait.h> | ||||
| #include <signal.h> | ||||
| #include <LibGUI/GStatusBar.h> | ||||
| #include <unistd.h> | ||||
| #include <stdio.h> | ||||
| #include <errno.h> | ||||
| #include "DirectoryView.h" | ||||
| 
 | ||||
| static GWindow* make_window(); | ||||
|  | @ -33,13 +29,21 @@ GWindow* make_window() | |||
|     auto* widget = new GWidget; | ||||
|     window->set_main_widget(widget); | ||||
| 
 | ||||
|     widget->set_layout(make<GBoxLayout>(Orientation::Vertical)); | ||||
| 
 | ||||
|     auto* directory_view = new DirectoryView(widget); | ||||
|     directory_view->set_relative_rect({ 0, 0, 240, 300 }); | ||||
| 
 | ||||
|     auto* statusbar = new GStatusBar(widget); | ||||
|     statusbar->set_text("Welcome!"); | ||||
| 
 | ||||
|     directory_view->on_path_change = [window] (const String& new_path) { | ||||
|         window->set_title(String::format("FileManager: %s", new_path.characters())); | ||||
|     }; | ||||
| 
 | ||||
|     directory_view->on_status_message = [statusbar] (String message) { | ||||
|         statusbar->set_text(move(message)); | ||||
|     }; | ||||
| 
 | ||||
|     directory_view->open("/"); | ||||
| 
 | ||||
|     return window; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling