mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
fa69b9fbb7
This seemed like a perfect fit for LibHTML. We can now style the IRC channels and queries however we like with the power of HTML and CSS. This patch doesn't do much in the way of styling, it just gets the basic mechanism into place.
53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <LibGUI/GWidget.h>
|
|
|
|
class IRCChannel;
|
|
class IRCClient;
|
|
class IRCQuery;
|
|
class IRCLogBuffer;
|
|
class GTextEditor;
|
|
class HtmlView;
|
|
|
|
class IRCWindow : public GWidget {
|
|
C_OBJECT(IRCWindow)
|
|
public:
|
|
enum Type {
|
|
Server,
|
|
Channel,
|
|
Query,
|
|
};
|
|
|
|
IRCWindow(IRCClient&, void* owner, Type, const String& name, GWidget* parent);
|
|
virtual ~IRCWindow() override;
|
|
|
|
String name() const { return m_name; }
|
|
void set_name(const String& name) { m_name = name; }
|
|
|
|
Type type() const { return m_type; }
|
|
|
|
void set_log_buffer(const IRCLogBuffer&);
|
|
|
|
bool is_active() const;
|
|
|
|
int unread_count() const;
|
|
void clear_unread_count();
|
|
|
|
void did_add_message();
|
|
|
|
IRCChannel& channel() { return *(IRCChannel*)m_owner; }
|
|
const IRCChannel& channel() const { return *(const IRCChannel*)m_owner; }
|
|
|
|
IRCQuery& query() { return *(IRCQuery*)m_owner; }
|
|
const IRCQuery& query() const { return *(const IRCQuery*)m_owner; }
|
|
|
|
private:
|
|
IRCClient& m_client;
|
|
void* m_owner { nullptr };
|
|
Type m_type;
|
|
String m_name;
|
|
RefPtr<HtmlView> m_html_view;
|
|
RefPtr<GTextEditor> m_text_editor;
|
|
RefPtr<IRCLogBuffer> m_log_buffer;
|
|
int m_unread_count { 0 };
|
|
};
|