mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 15:12:45 +00:00 
			
		
		
		
	LibCore: Move LibGUI/GObject to LibCore/CObject.
This commit is contained in:
		
							parent
							
								
									b8062f69d8
								
							
						
					
					
						commit
						2f1f51b8ab
					
				
					 30 changed files with 144 additions and 75 deletions
				
			
		|  | @ -13,7 +13,7 @@ class IRCQuery; | |||
| class IRCWindowListModel; | ||||
| class GNotifier; | ||||
| 
 | ||||
| class IRCClient final : public GObject { | ||||
| class IRCClient final : public CObject { | ||||
|     friend class IRCChannel; | ||||
|     friend class IRCQuery; | ||||
| public: | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| #include <LibCore/CEvent.h> | ||||
| #include <LibGUI/GObject.h> | ||||
| #include <LibCore/CObject.h> | ||||
| 
 | ||||
| CChildEvent::CChildEvent(Type type, GObject& child) | ||||
| CChildEvent::CChildEvent(Type type, CObject& child) | ||||
|     : CEvent(type) | ||||
|     , m_child(child.make_weak_ptr()) | ||||
| { | ||||
|  |  | |||
							
								
								
									
										69
									
								
								LibCore/CEvent.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								LibCore/CEvent.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,69 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <AK/AKString.h> | ||||
| #include <AK/Types.h> | ||||
| #include <AK/WeakPtr.h> | ||||
| #include <AK/Function.h> | ||||
| 
 | ||||
| class CObject; | ||||
| 
 | ||||
| class CEvent { | ||||
| public: | ||||
|     enum Type { | ||||
|         Invalid = 0, | ||||
|         Quit, | ||||
|         Timer, | ||||
|         DeferredDestroy, | ||||
|         DeferredInvoke, | ||||
|         ChildAdded, | ||||
|         ChildRemoved, | ||||
|     }; | ||||
| 
 | ||||
|     CEvent() { } | ||||
|     explicit CEvent(unsigned type) : m_type(type) { } | ||||
|     virtual ~CEvent() { } | ||||
| 
 | ||||
|     unsigned type() const { return m_type; } | ||||
| 
 | ||||
| private: | ||||
|     unsigned m_type { Type::Invalid }; | ||||
| }; | ||||
| 
 | ||||
| class CDeferredInvocationEvent : public CEvent { | ||||
|     friend class GEventLoop; | ||||
| public: | ||||
|     CDeferredInvocationEvent(Function<void(CObject&)> invokee) | ||||
|         : CEvent(CEvent::Type::DeferredInvoke) | ||||
|         , m_invokee(move(invokee)) | ||||
|     { | ||||
|     } | ||||
| 
 | ||||
| private: | ||||
|     Function<void(CObject&)> m_invokee; | ||||
| }; | ||||
| 
 | ||||
| class CTimerEvent final : public CEvent { | ||||
| public: | ||||
|     explicit CTimerEvent(int timer_id) | ||||
|         : CEvent(CEvent::Timer), m_timer_id(timer_id) | ||||
|     { | ||||
|     } | ||||
|     ~CTimerEvent() { } | ||||
| 
 | ||||
|     int timer_id() const { return m_timer_id; } | ||||
| 
 | ||||
| private: | ||||
|     int m_timer_id; | ||||
| }; | ||||
| 
 | ||||
| class CChildEvent final : public CEvent { | ||||
| public: | ||||
|     CChildEvent(Type, CObject& child); | ||||
|     ~CChildEvent(); | ||||
| 
 | ||||
|     CObject* child() { return m_child.ptr(); } | ||||
|     const CObject* child() const { return m_child.ptr(); } | ||||
| 
 | ||||
| private: | ||||
|     WeakPtr<CObject> m_child; | ||||
| }; | ||||
|  | @ -1,17 +1,17 @@ | |||
| #include "GObject.h" | ||||
| #include "GEvent.h" | ||||
| #include "GEventLoop.h" | ||||
| #include <LibCore/CObject.h> | ||||
| #include <LibCore/CEvent.h> | ||||
| #include <LibGUI/GEventLoop.h> | ||||
| #include <AK/Assertions.h> | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| GObject::GObject(GObject* parent) | ||||
| CObject::CObject(CObject* parent) | ||||
|     : m_parent(parent) | ||||
| { | ||||
|     if (m_parent) | ||||
|         m_parent->add_child(*this); | ||||
| } | ||||
| 
 | ||||
| GObject::~GObject() | ||||
| CObject::~CObject() | ||||
| { | ||||
|     stop_timer(); | ||||
|     if (m_parent) | ||||
|  | @ -21,7 +21,7 @@ GObject::~GObject() | |||
|         delete child; | ||||
| } | ||||
| 
 | ||||
| void GObject::event(CEvent& event) | ||||
| void CObject::event(CEvent& event) | ||||
| { | ||||
|     switch (event.type()) { | ||||
|     case GEvent::Timer: | ||||
|  | @ -40,13 +40,13 @@ void GObject::event(CEvent& event) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| void GObject::add_child(GObject& object) | ||||
| void CObject::add_child(CObject& object) | ||||
| { | ||||
|     m_children.append(&object); | ||||
|     GEventLoop::current().post_event(*this, make<CChildEvent>(GEvent::ChildAdded, object)); | ||||
| } | ||||
| 
 | ||||
| void GObject::remove_child(GObject& object) | ||||
| void CObject::remove_child(CObject& object) | ||||
| { | ||||
|     for (ssize_t i = 0; i < m_children.size(); ++i) { | ||||
|         if (m_children[i] == &object) { | ||||
|  | @ -57,25 +57,25 @@ void GObject::remove_child(GObject& object) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| void GObject::timer_event(CTimerEvent&) | ||||
| void CObject::timer_event(CTimerEvent&) | ||||
| { | ||||
| } | ||||
| 
 | ||||
| void GObject::child_event(CChildEvent&) | ||||
| void CObject::child_event(CChildEvent&) | ||||
| { | ||||
| } | ||||
| 
 | ||||
| void GObject::start_timer(int ms) | ||||
| void CObject::start_timer(int ms) | ||||
| { | ||||
|     if (m_timer_id) { | ||||
|         dbgprintf("GObject{%p} already has a timer!\n", this); | ||||
|         dbgprintf("CObject{%p} already has a timer!\n", this); | ||||
|         ASSERT_NOT_REACHED(); | ||||
|     } | ||||
| 
 | ||||
|     m_timer_id = GEventLoop::register_timer(*this, ms, true); | ||||
| } | ||||
| 
 | ||||
| void GObject::stop_timer() | ||||
| void CObject::stop_timer() | ||||
| { | ||||
|     if (!m_timer_id) | ||||
|         return; | ||||
|  | @ -84,12 +84,12 @@ void GObject::stop_timer() | |||
|     m_timer_id = 0; | ||||
| } | ||||
| 
 | ||||
| void GObject::delete_later() | ||||
| void CObject::delete_later() | ||||
| { | ||||
|     GEventLoop::current().post_event(*this, make<CEvent>(CEvent::DeferredDestroy)); | ||||
| } | ||||
| 
 | ||||
| void GObject::dump_tree(int indent) | ||||
| void CObject::dump_tree(int indent) | ||||
| { | ||||
|     for (int i = 0; i < indent; ++i) { | ||||
|         printf(" "); | ||||
|  | @ -101,7 +101,7 @@ void GObject::dump_tree(int indent) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| void GObject::deferred_invoke(Function<void(GObject&)> invokee) | ||||
| void CObject::deferred_invoke(Function<void(CObject&)> invokee) | ||||
| { | ||||
|     GEventLoop::current().post_event(*this, make<CDeferredInvocationEvent>(move(invokee))); | ||||
| } | ||||
|  | @ -8,32 +8,32 @@ class CEvent; | |||
| class CChildEvent; | ||||
| class CTimerEvent; | ||||
| 
 | ||||
| class GObject : public Weakable<GObject> { | ||||
| class CObject : public Weakable<CObject> { | ||||
| public: | ||||
|     GObject(GObject* parent = nullptr); | ||||
|     virtual ~GObject(); | ||||
|     CObject(CObject* parent = nullptr); | ||||
|     virtual ~CObject(); | ||||
| 
 | ||||
|     virtual const char* class_name() const { return "GObject"; } | ||||
|     virtual const char* class_name() const { return "CObject"; } | ||||
| 
 | ||||
|     virtual void event(CEvent&); | ||||
| 
 | ||||
|     Vector<GObject*>& children() { return m_children; } | ||||
|     Vector<CObject*>& children() { return m_children; } | ||||
| 
 | ||||
|     GObject* parent() { return m_parent; } | ||||
|     const GObject* parent() const { return m_parent; } | ||||
|     CObject* parent() { return m_parent; } | ||||
|     const CObject* parent() const { return m_parent; } | ||||
| 
 | ||||
|     void start_timer(int ms); | ||||
|     void stop_timer(); | ||||
|     bool has_timer() const { return m_timer_id; } | ||||
| 
 | ||||
|     void add_child(GObject&); | ||||
|     void remove_child(GObject&); | ||||
|     void add_child(CObject&); | ||||
|     void remove_child(CObject&); | ||||
| 
 | ||||
|     void delete_later(); | ||||
| 
 | ||||
|     void dump_tree(int indent = 0); | ||||
| 
 | ||||
|     void deferred_invoke(Function<void(GObject&)>); | ||||
|     void deferred_invoke(Function<void(CObject&)>); | ||||
| 
 | ||||
|     virtual bool is_widget() const { return false; } | ||||
|     virtual bool is_window() const { return false; } | ||||
|  | @ -43,7 +43,7 @@ protected: | |||
|     virtual void child_event(CChildEvent&); | ||||
| 
 | ||||
| private: | ||||
|     GObject* m_parent { nullptr }; | ||||
|     CObject* m_parent { nullptr }; | ||||
|     int m_timer_id { 0 }; | ||||
|     Vector<GObject*> m_children; | ||||
|     Vector<CObject*> m_children; | ||||
| }; | ||||
|  | @ -1,5 +1,6 @@ | |||
| OBJS = \
 | ||||
|     CElapsedTimer.o \
 | ||||
|     CObject.o \
 | ||||
|     CEvent.o | ||||
| 
 | ||||
| LIBRARY = libcore.a | ||||
|  |  | |||
|  | @ -33,7 +33,7 @@ int GApplication::exec() | |||
| { | ||||
|     int exit_code = m_event_loop->exec(); | ||||
|     // NOTE: Maybe it would be cool to return instead of exit()?
 | ||||
|     //       This would require cleaning up all the GObjects on the heap.
 | ||||
|     //       This would require cleaning up all the CObjects on the heap.
 | ||||
|     exit(exit_code); | ||||
|     return exit_code; | ||||
| } | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| #include <LibGUI/GDialog.h> | ||||
| #include <LibGUI/GEventLoop.h> | ||||
| 
 | ||||
| GDialog::GDialog(GObject* parent) | ||||
| GDialog::GDialog(CObject* parent) | ||||
|     : GWindow(parent) | ||||
| { | ||||
|     set_modal(true); | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ public: | |||
|     void done(int result); | ||||
| 
 | ||||
| protected: | ||||
|     explicit GDialog(GObject* parent); | ||||
|     explicit GDialog(CObject* parent); | ||||
| 
 | ||||
| private: | ||||
|     OwnPtr<GEventLoop> m_event_loop; | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| #include <Kernel/KeyCode.h> | ||||
| #include <LibGUI/GWindowType.h> | ||||
| 
 | ||||
| class GObject; | ||||
| class CObject; | ||||
| 
 | ||||
| class GEvent : public CEvent{ | ||||
| public: | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| #include <LibCore/CObject.h> | ||||
| #include "GEventLoop.h" | ||||
| #include "GEvent.h" | ||||
| #include "GObject.h" | ||||
| #include "GWindow.h" | ||||
| #include <LibGUI/GApplication.h> | ||||
| #include <LibGUI/GAction.h> | ||||
|  | @ -177,7 +177,7 @@ int GEventLoop::exec() | |||
|     ASSERT_NOT_REACHED(); | ||||
| } | ||||
| 
 | ||||
| void GEventLoop::post_event(GObject& receiver, OwnPtr<CEvent>&& event) | ||||
| void GEventLoop::post_event(CObject& receiver, OwnPtr<CEvent>&& event) | ||||
| { | ||||
| #ifdef GEVENTLOOP_DEBUG | ||||
|     dbgprintf("GEventLoop::post_event: {%u} << receiver=%p, event=%p\n", m_queued_events.size(), &receiver, event.ptr()); | ||||
|  | @ -517,7 +517,7 @@ void GEventLoop::get_next_timer_expiration(timeval& soonest) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| int GEventLoop::register_timer(GObject& object, int milliseconds, bool should_reload) | ||||
| int GEventLoop::register_timer(CObject& object, int milliseconds, bool should_reload) | ||||
| { | ||||
|     ASSERT(milliseconds >= 0); | ||||
|     auto timer = make<EventLoopTimer>(); | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ | |||
| #include <LibGUI/GEvent.h> | ||||
| 
 | ||||
| class GAction; | ||||
| class GObject; | ||||
| class CObject; | ||||
| class GNotifier; | ||||
| class GWindow; | ||||
| 
 | ||||
|  | @ -20,14 +20,14 @@ public: | |||
| 
 | ||||
|     int exec(); | ||||
| 
 | ||||
|     void post_event(GObject& receiver, OwnPtr<CEvent>&&); | ||||
|     void post_event(CObject& receiver, OwnPtr<CEvent>&&); | ||||
| 
 | ||||
|     static GEventLoop& main(); | ||||
|     static GEventLoop& current(); | ||||
| 
 | ||||
|     bool running() const { return m_running; } | ||||
| 
 | ||||
|     static int register_timer(GObject&, int milliseconds, bool should_reload); | ||||
|     static int register_timer(CObject&, int milliseconds, bool should_reload); | ||||
|     static bool unregister_timer(int timer_id); | ||||
| 
 | ||||
|     static void register_notifier(Badge<GNotifier>, GNotifier&); | ||||
|  | @ -65,7 +65,7 @@ private: | |||
|     void connect_to_server(); | ||||
| 
 | ||||
|     struct QueuedEvent { | ||||
|         WeakPtr<GObject> receiver; | ||||
|         WeakPtr<CObject> receiver; | ||||
|         OwnPtr<CEvent> event; | ||||
|     }; | ||||
|     Vector<QueuedEvent> m_queued_events; | ||||
|  | @ -84,7 +84,7 @@ private: | |||
|         int interval { 0 }; | ||||
|         timeval fire_time; | ||||
|         bool should_reload { false }; | ||||
|         WeakPtr<GObject> owner; | ||||
|         WeakPtr<CObject> owner; | ||||
| 
 | ||||
|         void reload(); | ||||
|         bool has_expired() const; | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
| #include <sys/select.h> | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| GIODevice::GIODevice(GObject* parent) | ||||
|     : GObject(parent) | ||||
| GIODevice::GIODevice(CObject* parent) | ||||
|     : CObject(parent) | ||||
| { | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,9 +1,9 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <LibGUI/GObject.h> | ||||
| #include <LibCore/CObject.h> | ||||
| #include <AK/ByteBuffer.h> | ||||
| 
 | ||||
| class GIODevice : public GObject { | ||||
| class GIODevice : public CObject { | ||||
| public: | ||||
|     enum OpenMode { | ||||
|         NotOpen      = 0, | ||||
|  | @ -41,7 +41,7 @@ public: | |||
|     virtual const char* class_name() const override { return "GIODevice"; } | ||||
| 
 | ||||
| protected: | ||||
|     explicit GIODevice(GObject* parent = nullptr); | ||||
|     explicit GIODevice(CObject* parent = nullptr); | ||||
| 
 | ||||
|     void set_fd(int fd) { m_fd = fd; } | ||||
|     void set_mode(OpenMode mode) { m_mode = mode; } | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| #include <LibGUI/GTextEditor.h> | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| GInputBox::GInputBox(const String& prompt, const String& title, GObject* parent) | ||||
| GInputBox::GInputBox(const String& prompt, const String& title, CObject* parent) | ||||
|     : GDialog(parent) | ||||
|     , m_prompt(prompt) | ||||
| { | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ class GTextEditor; | |||
| 
 | ||||
| class GInputBox : public GDialog { | ||||
| public: | ||||
|     explicit GInputBox(const String& prompt, const String& title, GObject* parent = nullptr); | ||||
|     explicit GInputBox(const String& prompt, const String& title, CObject* parent = nullptr); | ||||
|     virtual ~GInputBox() override; | ||||
| 
 | ||||
|     String text_value() const { return m_text_value; } | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| #include <LibGUI/GLabel.h> | ||||
| #include <LibGUI/GButton.h> | ||||
| 
 | ||||
| GMessageBox::GMessageBox(const String& text, const String& title, GObject* parent) | ||||
| GMessageBox::GMessageBox(const String& text, const String& title, CObject* parent) | ||||
|     : GDialog(parent) | ||||
|     , m_text(text) | ||||
| { | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
| 
 | ||||
| class GMessageBox : public GDialog { | ||||
| public: | ||||
|     explicit GMessageBox(const String& text, const String& title, GObject* parent = nullptr); | ||||
|     explicit GMessageBox(const String& text, const String& title, CObject* parent = nullptr); | ||||
|     virtual ~GMessageBox() override; | ||||
| 
 | ||||
| private: | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <LibGUI/GObject.h> | ||||
| #include <LibCore/CObject.h> | ||||
| #include <AK/Function.h> | ||||
| 
 | ||||
| class GNetworkResponse; | ||||
| 
 | ||||
| class GNetworkJob : public GObject { | ||||
| class GNetworkJob : public CObject { | ||||
| public: | ||||
|     enum class Error { | ||||
|         None, | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ | |||
| #include <netdb.h> | ||||
| #include <errno.h> | ||||
| 
 | ||||
| GSocket::GSocket(Type type, GObject* parent) | ||||
| GSocket::GSocket(Type type, CObject* parent) | ||||
|     : GIODevice(parent) | ||||
|     , m_type(type) | ||||
| { | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ public: | |||
|     virtual const char* class_name() const override { return "GSocket"; } | ||||
| 
 | ||||
| protected: | ||||
|     GSocket(Type, GObject* parent); | ||||
|     GSocket(Type, CObject* parent); | ||||
| 
 | ||||
|     GSocketAddress m_source_address; | ||||
|     GSocketAddress m_destination_address; | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| #include <LibGUI/GTCPSocket.h> | ||||
| #include <sys/socket.h> | ||||
| 
 | ||||
| GTCPSocket::GTCPSocket(GObject* parent) | ||||
| GTCPSocket::GTCPSocket(CObject* parent) | ||||
|     : GSocket(GSocket::Type::TCP, parent) | ||||
| { | ||||
|     int fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0); | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 
 | ||||
| class GTCPSocket final : public GSocket { | ||||
| public: | ||||
|     explicit GTCPSocket(GObject* parent); | ||||
|     explicit GTCPSocket(CObject* parent); | ||||
|     virtual ~GTCPSocket() override; | ||||
| 
 | ||||
| private: | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| #include <LibGUI/GTimer.h> | ||||
| 
 | ||||
| GTimer::GTimer(GObject* parent) | ||||
|     : GObject(parent) | ||||
| GTimer::GTimer(CObject* parent) | ||||
|     : CObject(parent) | ||||
| { | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <LibGUI/GObject.h> | ||||
| #include <LibCore/CObject.h> | ||||
| #include <AK/Function.h> | ||||
| 
 | ||||
| class GTimer final : public GObject { | ||||
| class GTimer final : public CObject { | ||||
| public: | ||||
|     explicit GTimer(GObject* parent = nullptr); | ||||
|     explicit GTimer(CObject* parent = nullptr); | ||||
|     virtual ~GTimer() override; | ||||
| 
 | ||||
|     void start(); | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ | |||
| #include <unistd.h> | ||||
| 
 | ||||
| GWidget::GWidget(GWidget* parent) | ||||
|     : GObject(parent) | ||||
|     : CObject(parent) | ||||
| { | ||||
|     set_font(nullptr); | ||||
|     m_background_color = Color::LightGray; | ||||
|  | @ -36,7 +36,7 @@ void GWidget::child_event(CChildEvent& event) | |||
|                 invalidate_layout(); | ||||
|         } | ||||
|     } | ||||
|     return GObject::child_event(event); | ||||
|     return CObject::child_event(event); | ||||
| } | ||||
| 
 | ||||
| void GWidget::set_relative_rect(const Rect& rect) | ||||
|  | @ -84,7 +84,7 @@ void GWidget::event(CEvent& event) | |||
|     case GEvent::Leave: | ||||
|         return handle_leave_event(event); | ||||
|     default: | ||||
|         return GObject::event(event); | ||||
|         return CObject::event(event); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 
 | ||||
| #include <LibCore/CElapsedTimer.h> | ||||
| #include <LibGUI/GEvent.h> | ||||
| #include <LibGUI/GObject.h> | ||||
| #include <LibCore/CObject.h> | ||||
| #include <SharedGraphics/Rect.h> | ||||
| #include <SharedGraphics/Color.h> | ||||
| #include <SharedGraphics/Font.h> | ||||
|  | @ -18,7 +18,7 @@ enum class Orientation { Horizontal, Vertical }; | |||
| enum class HorizontalDirection { Left, Right }; | ||||
| enum class VerticalDirection { Up, Down }; | ||||
| 
 | ||||
| class GWidget : public GObject { | ||||
| class GWidget : public CObject { | ||||
| public: | ||||
|     explicit GWidget(GWidget* parent = nullptr); | ||||
|     virtual ~GWidget() override; | ||||
|  |  | |||
|  | @ -28,8 +28,8 @@ GWindow* GWindow::from_window_id(int window_id) | |||
|     return nullptr; | ||||
| } | ||||
| 
 | ||||
| GWindow::GWindow(GObject* parent) | ||||
|     : GObject(parent) | ||||
| GWindow::GWindow(CObject* parent) | ||||
|     : CObject(parent) | ||||
| { | ||||
|     m_rect_when_windowless = { 100, 400, 140, 140 }; | ||||
|     m_title_when_windowless = "GWindow"; | ||||
|  | @ -280,7 +280,7 @@ void GWindow::event(CEvent& event) | |||
|     if (event.type() == GEvent::WM_WindowRemoved || event.type() == GEvent::WM_WindowStateChanged) | ||||
|         return wm_event(static_cast<GWMEvent&>(event)); | ||||
| 
 | ||||
|     GObject::event(event); | ||||
|     CObject::event(event); | ||||
| } | ||||
| 
 | ||||
| bool GWindow::is_visible() const | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <LibGUI/GObject.h> | ||||
| #include <LibCore/CObject.h> | ||||
| #include <LibGUI/GWindowType.h> | ||||
| #include <SharedGraphics/Rect.h> | ||||
| #include <SharedGraphics/GraphicsBitmap.h> | ||||
|  | @ -18,9 +18,9 @@ enum class GStandardCursor { | |||
|     ResizeVertical, | ||||
| }; | ||||
| 
 | ||||
| class GWindow : public GObject { | ||||
| class GWindow : public CObject { | ||||
| public: | ||||
|     GWindow(GObject* parent = nullptr); | ||||
|     GWindow(CObject* parent = nullptr); | ||||
|     virtual ~GWindow() override; | ||||
| 
 | ||||
|     static GWindow* from_window_id(int); | ||||
|  |  | |||
|  | @ -17,7 +17,6 @@ LIBGUI_OBJS = \ | |||
|     GEventLoop.o \
 | ||||
|     GLabel.o \
 | ||||
|     GListBox.o \
 | ||||
|     GObject.o \
 | ||||
|     GNotifier.o \
 | ||||
|     GTextBox.o \
 | ||||
|     GScrollBar.o \
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling