1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 17:37:34 +00:00

LibCore: Introduce a C_OBJECT macro.

This macro goes at the top of every CObject-derived class like so:

class SomeClass : public CObject {
    C_OBJECT(SomeClass)
public:
    ...

At the moment, all it does is create an override for the class_name() getter
but in the future this will be used to automatically insert member functions
into these classes.
This commit is contained in:
Andreas Kling 2019-07-25 19:49:28 +02:00
parent d21a4f7518
commit a599317624
56 changed files with 70 additions and 105 deletions

View file

@ -19,6 +19,7 @@ enum class WallpaperMode {
};
class WSCompositor final : public CObject {
C_OBJECT(WSCompositor)
public:
static WSCompositor& the();
@ -35,8 +36,6 @@ public:
Rect current_cursor_rect() const;
private:
virtual const char* class_name() const override { return "WSCompositor"; }
WSCompositor();
void flip_buffers();
void flush(const Rect&);

View file

@ -14,6 +14,7 @@ class WSWindow;
class Font;
class WSMenu final : public CObject {
C_OBJECT(WSMenu)
public:
WSMenu(WSClientConnection*, int menu_id, const String& name);
virtual ~WSMenu() override;

View file

@ -5,6 +5,7 @@
#include <WindowServer/WSWindow.h>
class WSMenuManager final : public CObject {
C_OBJECT(WSMenuManager)
public:
WSMenuManager();
virtual ~WSMenuManager() override;
@ -13,7 +14,6 @@ public:
void refresh();
virtual void event(CEvent&) override;
virtual const char* class_name() const override { return "WSMenuManager"; }
private:
WSWindow& window() { return *m_window; }

View file

@ -16,6 +16,7 @@ class WSMouseEvent;
class WSWindow final : public CObject
, public InlineLinkedListNode<WSWindow> {
C_OBJECT(WSWindow)
public:
WSWindow(WSClientConnection&, WSWindowType, int window_id, bool modal, bool resizable, bool fullscreen);
WSWindow(CObject&, WSWindowType);

View file

@ -42,6 +42,8 @@ enum class ResizeDirection {
};
class WSWindowManager : public CObject {
C_OBJECT(WSWindowManager)
friend class WSCompositor;
friend class WSWindowFrame;
friend class WSWindowSwitcher;

View file

@ -10,6 +10,7 @@ class WSKeyEvent;
class WSWindow;
class WSWindowSwitcher : public CObject {
C_OBJECT(WSWindowSwitcher)
public:
static WSWindowSwitcher& the();