mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 07:19:05 +02:00
commit
f3d086f6dd
4 changed files with 88 additions and 2 deletions
|
@ -21,7 +21,7 @@ endif (APPLE)
|
||||||
configure_file(InterfaceConfig.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceConfig.h)
|
configure_file(InterfaceConfig.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceConfig.h)
|
||||||
|
|
||||||
# grab the implementation and header files from src dir
|
# grab the implementation and header files from src dir
|
||||||
file(GLOB INTERFACE_SRCS src/*.cpp src/*.h)
|
file(GLOB INTERFACE_SRCS src/*.mm src/*.cpp src/*.h)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
# set how the icon shows up in the Info.plist file
|
# set how the icon shows up in the Info.plist file
|
||||||
|
|
8
interface/src/InterfaceMacOSX.h
Normal file
8
interface/src/InterfaceMacOSX.h
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef __interface__InterfaceMacOSX
|
||||||
|
#define __interface__InterfaceMacOSX
|
||||||
|
|
||||||
|
class Oscilloscope;
|
||||||
|
|
||||||
|
void initMacOSXMenu(Oscilloscope *audioScope);
|
||||||
|
|
||||||
|
#endif
|
68
interface/src/InterfaceMacOSX.mm
Normal file
68
interface/src/InterfaceMacOSX.mm
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#include "Oscilloscope.h"
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
#import "InterfaceMacOSX.h"
|
||||||
|
|
||||||
|
@class InterfaceMainMenuTarget;
|
||||||
|
|
||||||
|
static InterfaceMainMenuTarget *sharedInterfaceMainMenuTarget = nil;
|
||||||
|
static Oscilloscope *sharedAudioScope;
|
||||||
|
|
||||||
|
|
||||||
|
@interface InterfaceMainMenuTarget : NSObject
|
||||||
|
|
||||||
|
@property (strong, nonatomic) NSMenuItem *scopeAudioMenuItem;
|
||||||
|
@property (strong, nonatomic) NSMenuItem *scopeNoneMenuItem;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
@implementation InterfaceMainMenuTarget
|
||||||
|
|
||||||
|
- (void)scopeAudioAction {
|
||||||
|
sharedAudioScope->setState(true);
|
||||||
|
[self.scopeAudioMenuItem setState:NSOnState];
|
||||||
|
[self.scopeNoneMenuItem setState:NSOffState];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)scopeNoneAction {
|
||||||
|
sharedAudioScope->setState(false);
|
||||||
|
[self.scopeAudioMenuItem setState:NSOffState];
|
||||||
|
[self.scopeNoneMenuItem setState:NSOnState];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
void initMacOSXMenu(Oscilloscope *audioScope) {
|
||||||
|
@autoreleasepool {
|
||||||
|
if (NSApp) {
|
||||||
|
if (!sharedInterfaceMainMenuTarget) {
|
||||||
|
sharedInterfaceMainMenuTarget = [[InterfaceMainMenuTarget alloc] init];
|
||||||
|
}
|
||||||
|
sharedAudioScope = audioScope;
|
||||||
|
|
||||||
|
NSMenu *mainMenu = [NSApp mainMenu];
|
||||||
|
|
||||||
|
NSMenuItem *scopeMenuItem = [mainMenu insertItemWithTitle:@"Scope"
|
||||||
|
action:nil
|
||||||
|
keyEquivalent:@""
|
||||||
|
atIndex:3];
|
||||||
|
|
||||||
|
NSMenu *scopeMenu = [[[NSMenu alloc] init] initWithTitle:@"Scope"];
|
||||||
|
[scopeMenuItem setSubmenu:scopeMenu];
|
||||||
|
sharedInterfaceMainMenuTarget.scopeAudioMenuItem = [scopeMenu addItemWithTitle:@"Audio"
|
||||||
|
action:@selector(scopeAudioAction)
|
||||||
|
keyEquivalent:@""];
|
||||||
|
[sharedInterfaceMainMenuTarget.scopeAudioMenuItem setTarget:sharedInterfaceMainMenuTarget];
|
||||||
|
[sharedInterfaceMainMenuTarget.scopeAudioMenuItem setState:NSOnState];
|
||||||
|
|
||||||
|
sharedInterfaceMainMenuTarget.scopeNoneMenuItem = [scopeMenu addItemWithTitle:@"None"
|
||||||
|
action:@selector(scopeNoneAction)
|
||||||
|
keyEquivalent:@""];
|
||||||
|
[sharedInterfaceMainMenuTarget.scopeNoneMenuItem setTarget:sharedInterfaceMainMenuTarget];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,6 +44,12 @@
|
||||||
#include "Oscilloscope.h"
|
#include "Oscilloscope.h"
|
||||||
#include "UDPSocket.h"
|
#include "UDPSocket.h"
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
|
||||||
|
#include "InterfaceMacOSX.h"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int audio_on = 1; // Whether to turn on the audio support
|
int audio_on = 1; // Whether to turn on the audio support
|
||||||
|
@ -956,7 +962,11 @@ int main(int argc, char** argv)
|
||||||
printf( "Init() complete.\n" );
|
printf( "Init() complete.\n" );
|
||||||
|
|
||||||
glutTimerFunc(1000, Timer, 0);
|
glutTimerFunc(1000, Timer, 0);
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
initMacOSXMenu(&audioScope);
|
||||||
|
#endif
|
||||||
|
|
||||||
glutMainLoop();
|
glutMainLoop();
|
||||||
|
|
||||||
::terminate();
|
::terminate();
|
||||||
|
|
Loading…
Reference in a new issue