mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 01:37:36 +00:00
Libraries: Create top level directory for libraries.
Things were getting a little crowded in the project root, so this patch moves the Lib*/ directories into Libraries/.
This commit is contained in:
parent
63814ffebf
commit
04b9dc2d30
328 changed files with 36 additions and 36 deletions
53
Libraries/LibGUI/GLayout.h
Normal file
53
Libraries/LibGUI/GLayout.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/Badge.h>
|
||||
#include <AK/OwnPtr.h>
|
||||
#include <AK/Vector.h>
|
||||
#include <AK/WeakPtr.h>
|
||||
#include <LibGUI/GMargins.h>
|
||||
|
||||
class GWidget;
|
||||
|
||||
class GLayout {
|
||||
public:
|
||||
GLayout();
|
||||
virtual ~GLayout();
|
||||
|
||||
void add_widget(GWidget&);
|
||||
void add_layout(OwnPtr<GLayout>&&);
|
||||
void add_spacer();
|
||||
|
||||
void remove_widget(GWidget&);
|
||||
|
||||
virtual void run(GWidget&) = 0;
|
||||
|
||||
void notify_adopted(Badge<GWidget>, GWidget&);
|
||||
void notify_disowned(Badge<GWidget>, GWidget&);
|
||||
|
||||
GMargins margins() const { return m_margins; }
|
||||
void set_margins(const GMargins&);
|
||||
|
||||
int spacing() const { return m_spacing; }
|
||||
void set_spacing(int);
|
||||
|
||||
protected:
|
||||
struct Entry {
|
||||
enum class Type {
|
||||
Invalid = 0,
|
||||
Widget,
|
||||
Layout,
|
||||
Spacer,
|
||||
};
|
||||
|
||||
Type type { Type::Invalid };
|
||||
WeakPtr<GWidget> widget;
|
||||
OwnPtr<GLayout> layout;
|
||||
};
|
||||
void add_entry(Entry&&);
|
||||
|
||||
WeakPtr<GWidget> m_owner;
|
||||
Vector<Entry> m_entries;
|
||||
|
||||
GMargins m_margins;
|
||||
int m_spacing { 4 };
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue