48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
// 18 december 2015
|
|
|
|
// TODOs
|
|
// - things look very wrong on initial draw
|
|
// - initial scrolling is not set properly
|
|
// - should background be inherited from parent control?
|
|
|
|
struct uiArea {
|
|
uiWindowsControl c;
|
|
HWND hwnd;
|
|
uiAreaHandler *ah;
|
|
|
|
BOOL scrolling;
|
|
intmax_t scrollWidth;
|
|
intmax_t scrollHeight;
|
|
intmax_t hscrollpos;
|
|
intmax_t vscrollpos;
|
|
int hwheelCarry;
|
|
int vwheelCarry;
|
|
|
|
clickCounter cc;
|
|
BOOL capturing;
|
|
|
|
BOOL inside;
|
|
BOOL tracking;
|
|
|
|
ID2D1HwndRenderTarget *rt;
|
|
};
|
|
|
|
// areadraw.h
|
|
extern BOOL areaDoDraw(uiArea *a, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *lResult);
|
|
extern void areaDrawOnResize(uiArea *, RECT *);
|
|
|
|
// areascroll.c
|
|
extern BOOL areaDoScroll(uiArea *a, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *lResult);
|
|
extern void areaScrollOnResize(uiArea *, RECT *);
|
|
extern void areaUpdateScroll(uiArea *a);
|
|
|
|
// areaevents.c
|
|
extern BOOL areaDoEvents(uiArea *a, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *lResult);
|
|
extern void unregisterAreaFilter(void);
|
|
|
|
// areautil.c
|
|
extern void renderTargetGetSize(ID2D1RenderTarget *rt, D2D1_SIZE_F *size);
|
|
extern void loadAreaSize(uiArea *a, ID2D1RenderTarget *rt, double *width, double *height);
|
|
extern void pixelsToDIP(uiArea *a, double *x, double *y);
|
|
extern void dipToPixels(uiArea *a, double *x, double *y);
|