Files
Renderive/Widget/component/Table/scroll.cpp
T
2026-08-01 20:09:45 +08:00

46 lines
1.4 KiB
C++

#include "scroll.h"
namespace Flex_Qt {
void V_Scroll_Bar::draw(QPainter* painter) {
auto device = painter->device();
double ww = device->width();
double hh = device->height();
painter->save();
auto bar_rect = get_bar_rect(ww, hh);
painter->setClipRect(bar_rect);
painter->fillRect(bar_rect, background_color);
painter->fillRect(get_slider_rect(ww, hh), slider_color);
painter->restore();
}
QRect V_Scroll_Bar::get_slider_rect(int ww, int hh) {
double x = ww - w;
QRect slider(x, pos() + start, w, slider_len());
return slider;
}
QRect V_Scroll_Bar::get_bar_rect(int ww, int hh) {
double x = ww - w;
QRect bar_rect(x, 0 + start, w, bar_len());
return bar_rect;
}
void H_Scroll_Bar::draw(QPainter* painter) {
auto device = painter->device();
double ww = device->width();
double hh = device->height();
painter->save();
auto bar_rect = get_bar_rect(ww, hh);
painter->setClipRect(bar_rect);
painter->fillRect(bar_rect, background_color);
painter->fillRect(get_slider_rect(ww, hh), slider_color);
painter->restore();
}
QRect H_Scroll_Bar::get_slider_rect(int ww, int hh) {
double y = hh - h;
QRect slider_rect(pos() + start, y, slider_len(), h);
return slider_rect;
}
QRect H_Scroll_Bar::get_bar_rect(int ww, int hh) {
double y = hh - h;
QRect bar_rect(0 + start, y, bar_len(), h);
return bar_rect;
}
}