diff --git a/gtkarea/main.c b/gtkarea/main.c index 9207e47d..6a6d1b7e 100644 --- a/gtkarea/main.c +++ b/gtkarea/main.c @@ -118,6 +118,11 @@ static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent * e->Held1To64); } +static void handlerDragBroken(uiAreaHandler *ah, uiArea *a) +{ + printf("drag broken\n"); +} + static void recalcScroll(GtkSpinButton *sb, gpointer data) { areaUpdateScroll(area); @@ -145,6 +150,7 @@ int main(void) h.ah.VScrollMax = handlerVScrollMax; h.ah.RedrawOnResize = handlerRedrawOnResize; h.ah.MouseEvent = handlerMouseEvent; + h.ah.DragBroken = handlerDragBroken; gtk_init(NULL, NULL); diff --git a/gtkarea/ui.h b/gtkarea/ui.h index 42d79915..470d2437 100644 --- a/gtkarea/ui.h +++ b/gtkarea/ui.h @@ -13,6 +13,7 @@ struct uiAreaHandler { uintmax_t (*VScrollMax)(uiAreaHandler *, uiArea *); int (*RedrawOnResize)(uiAreaHandler *, uiArea *); void (*MouseEvent)(uiAreaHandler *, uiArea *, uiAreaMouseEvent *); + void (*DragBroken)(uiAreaHandler *, uiArea *); }; struct uiAreaDrawParams { diff --git a/macarea/alt/main.m b/macarea/alt/main.m index a6306b93..343f92fb 100644 --- a/macarea/alt/main.m +++ b/macarea/alt/main.m @@ -124,6 +124,11 @@ static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent * e->Held1To64); } +static void handlerDragBroken(uiAreaHandler *ah, uiArea *a) +{ + printf("drag broken\n"); +} + // areaUpdateScroll(area); @interface appDelegate : NSObject @@ -183,6 +188,7 @@ int main(void) h.ah.VScrollMax = handlerVScrollMax; h.ah.RedrawOnResize = handlerRedrawOnResize; h.ah.MouseEvent = handlerMouseEvent; + h.ah.DragBroken = handlerDragBroken; app = [NSApplication sharedApplication]; [app setActivationPolicy:NSApplicationActivationPolicyRegular]; diff --git a/macarea/alt/ui.h b/macarea/alt/ui.h index 42d79915..470d2437 100644 --- a/macarea/alt/ui.h +++ b/macarea/alt/ui.h @@ -13,6 +13,7 @@ struct uiAreaHandler { uintmax_t (*VScrollMax)(uiAreaHandler *, uiArea *); int (*RedrawOnResize)(uiAreaHandler *, uiArea *); void (*MouseEvent)(uiAreaHandler *, uiArea *, uiAreaMouseEvent *); + void (*DragBroken)(uiAreaHandler *, uiArea *); }; struct uiAreaDrawParams { diff --git a/winarea/area.c b/winarea/area.c index 9e0f2b6f..9658a1a5 100644 --- a/winarea/area.c +++ b/winarea/area.c @@ -425,7 +425,7 @@ static LRESULT CALLBACK areaWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM case WM_CAPTURECHANGED: if (a->capturing) { a->capturing = FALSE; - // TODO raise DragBroken() + (*(a->ah->DragBroken))(a->ah, a); } return 0; } diff --git a/winarea/main.c b/winarea/main.c index a6cb2023..fbf5f434 100644 --- a/winarea/main.c +++ b/winarea/main.c @@ -124,6 +124,11 @@ static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent * e->Held1To64); } +static void handlerDragBroken(uiAreaHandler *ah, uiArea *a) +{ + printf("drag broken\n"); +} + static void repos(HWND hwnd) { RECT r; @@ -176,6 +181,7 @@ int main(void) h.ah.VScrollMax = handlerVScrollMax; h.ah.RedrawOnResize = handlerRedrawOnResize; h.ah.MouseEvent = handlerMouseEvent; + h.ah.DragBroken = handlerDragBroken; registerAreaClass(); diff --git a/winarea/ui.h b/winarea/ui.h index 42d79915..470d2437 100644 --- a/winarea/ui.h +++ b/winarea/ui.h @@ -13,6 +13,7 @@ struct uiAreaHandler { uintmax_t (*VScrollMax)(uiAreaHandler *, uiArea *); int (*RedrawOnResize)(uiAreaHandler *, uiArea *); void (*MouseEvent)(uiAreaHandler *, uiArea *, uiAreaMouseEvent *); + void (*DragBroken)(uiAreaHandler *, uiArea *); }; struct uiAreaDrawParams {