annotate foosdk/sdk/foobar2000/helpers-mac/NSMenu+ppaddons.m @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #import "NSMenu+ppaddons.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 @implementation NSMenu (ppaddons)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 - (NSMenuItem*) pp_addItemWithTitle: (NSString*) title action: (SEL) action target: (id) target {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 NSMenuItem * item = [[NSMenuItem alloc] initWithTitle: title action: action keyEquivalent: @""];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 item.target = target;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 [self addItem: item];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 return item;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 - (void) pp_addSeparator {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 [self addItem: [NSMenuItem separatorItem]];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 - (NSMenuItem*) pp_addSubMenu: (NSMenu*) menu withTitle: (NSString*) title {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 NSMenuItem * item = [[NSMenuItem alloc] init];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 item.title = title;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 item.submenu = menu;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 [self addItem: item];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 return item;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 - (void)pp_popUpForView:(NSView *)view {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 BOOL pullsDown = YES;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 NSMenu *popMenu = [self copy];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 NSRect frame = [view frame];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 frame.origin.x = 0.0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 frame.origin.y = 0.0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 if (pullsDown) [popMenu insertItemWithTitle:@"" action:NULL keyEquivalent:@"" atIndex:0];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 NSPopUpButtonCell *popUpButtonCell = [[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:pullsDown];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 [popUpButtonCell setMenu:popMenu];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 if (!pullsDown) [popUpButtonCell selectItem:nil];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 [popUpButtonCell performClickWithFrame:frame inView:view];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 @end