summaryrefslogtreecommitdiff
path: root/DevTools/HackStudio/Editor.cpp
blob: fe0666d48fbb2c047aaa2f47074770e904ad6f70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "Editor.h"
#include "EditorWrapper.h"
#include <LibGUI/GPainter.h>
#include <LibGUI/GScrollBar.h>

EditorWrapper& Editor::wrapper()
{
    return static_cast<EditorWrapper&>(*parent());
}
const EditorWrapper& Editor::wrapper() const
{
    return static_cast<const EditorWrapper&>(*parent());
}

void Editor::focusin_event(CEvent& event)
{
    wrapper().set_editor_has_focus({}, true);
    if (on_focus)
        on_focus();
    GTextEditor::focusin_event(event);
}

void Editor::focusout_event(CEvent & event)
{
    wrapper().set_editor_has_focus({}, false);
    GTextEditor::focusout_event(event);
}

void Editor::paint_event(GPaintEvent& event)
{
    GTextEditor::paint_event(event);

    if (is_focused()) {
        GPainter painter(*this);
        painter.add_clip_rect(event.rect());

        auto rect = frame_inner_rect();
        if (vertical_scrollbar().is_visible())
            rect.set_width(rect.width() - vertical_scrollbar().width());
        if (horizontal_scrollbar().is_visible())
            rect.set_height(rect.height() - horizontal_scrollbar().height());
        painter.draw_rect(rect, Color::from_rgb(0x955233));
    }
}