summaryrefslogtreecommitdiff
path: root/src/ui/sidebarwidget.c
blob: c234c934f1998fee34e317c38a86e4fd103ca336 (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
#include "sidebarwidget.h"
#include "scrollwidget.h"
#include "paint.h"

struct Impl_SidebarWidget {
    iWidget widget;
    enum iSidebarMode mode;
    iScrollWidget *scroll;
};

iDefineObjectConstruction(SidebarWidget)

void init_SidebarWidget(iSidebarWidget *d) {
    iWidget *w = as_Widget(d);
    init_Widget(w);
    d->mode = documentOutline_SidebarMode;
    addChild_Widget(w, iClob(d->scroll = new_ScrollWidget()));
    w->rect.size.x = 60 * gap_UI;
    setFlags_Widget(w, fixedWidth_WidgetFlag, iTrue);
    setBackgroundColor_Widget(w, red_ColorId);
}

void deinit_SidebarWidget(iSidebarWidget *d) {
    iUnused(d);
}

static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) {
    iWidget *w = as_Widget(d);
    return processEvent_Widget(w, ev);
}

static void draw_SidebarWidget_(const iSidebarWidget *d) {
    const iWidget *w = constAs_Widget(d);
    draw_Widget(w);
}

iBeginDefineSubclass(SidebarWidget, Widget)
    .processEvent = (iAny *) processEvent_SidebarWidget_,
    .draw         = (iAny *) draw_SidebarWidget_,
iEndDefineSubclass(SidebarWidget)