From 15ae4f976a93bc867a76b4002e534ca2eeeee830 Mon Sep 17 00:00:00 2001 From: Cockos Inc Date: Sat, 21 Oct 2023 14:07:44 -0400 Subject: [PATCH] swell-cocoa: support GWL_USERDATA on combo/popup boxes -- from fee287f5 --- WDL/swell/swell-internal.h | 7 +++++++ WDL/swell/swell-wnd.mm | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/WDL/swell/swell-internal.h b/WDL/swell/swell-internal.h index 3c719307..05d6f87c 100644 --- a/WDL/swell/swell-internal.h +++ b/WDL/swell/swell-internal.h @@ -593,15 +593,20 @@ HDC SWELL_CreateMetalDC(SWELL_hwndChild *); @interface SWELL_PopUpButton : NSPopUpButton { LONG m_style; + LONG_PTR m_userdata; } +-(id)init; -(void)setSwellStyle:(LONG)style; -(LONG)getSwellStyle; +-(LONG_PTR)getSwellUserData; +-(void)setSwellUserData:(LONG_PTR)val; @end @interface SWELL_ComboBox : NSComboBox { @public LONG m_style; + LONG_PTR m_userdata; WDL_PtrList *m_ids; int m_ignore_selchg; // used to track the last set selection state, to avoid getting feedback notifications bool m_disable_menu; @@ -612,6 +617,8 @@ HDC SWELL_CreateMetalDC(SWELL_hwndChild *); -(LONG)getSwellStyle; - (void)swellDisableContextMenu:(bool)dis; - (NSMenu *)textView:(NSTextView *)view menu:(NSMenu *)menu forEvent:(NSEvent *)event atIndex:(NSUInteger)charIndex; +-(LONG_PTR)getSwellUserData; +-(void)setSwellUserData:(LONG_PTR)val; @end diff --git a/WDL/swell/swell-wnd.mm b/WDL/swell/swell-wnd.mm index 4d5d87c1..178dbe75 100644 --- a/WDL/swell/swell-wnd.mm +++ b/WDL/swell/swell-wnd.mm @@ -6873,8 +6873,20 @@ void SWELL_DrawFocusRect(HWND hwndPar, RECT *rct, void **handle) @implementation SWELL_PopUpButton STANDARD_CONTROL_NEEDSDISPLAY_IMPL("combobox") + +-(id) init { + self = [super init]; + if (self != nil) { + m_userdata=0; + m_style=0; + } + return self; +} + -(void)setSwellStyle:(LONG)style { m_style=style; } -(LONG)getSwellStyle { return m_style; } +-(LONG_PTR)getSwellUserData { return m_userdata; } +-(void)setSwellUserData:(LONG_PTR)val { m_userdata=val; } @end @implementation SWELL_ComboBox @@ -6889,6 +6901,8 @@ STANDARD_CONTROL_NEEDSDISPLAY_IMPL("combobox") m_ids=new WDL_PtrList; m_ignore_selchg = -1; m_disable_menu = false; + m_userdata=0; + m_style=0; } return self; } @@ -6912,6 +6926,8 @@ STANDARD_CONTROL_NEEDSDISPLAY_IMPL("combobox") { m_disable_menu=dis; } +-(LONG_PTR)getSwellUserData { return m_userdata; } +-(void)setSwellUserData:(LONG_PTR)val { m_userdata=val; } @end -- 2.11.4.GIT