blob: ea00d3cee8c1346ca14468a08f76d4539fce795e [file] [log] [blame]
Alexandre Lision5855b6a2015-02-03 11:31:05 -05001//
2// RingWindowController.m
3// Ring
4//
5// Created by Alexandre Lision on 2015-01-27.
6//
7//
8
9#import "RingWindowController.h"
10
11#import <historymodel.h>
12#import <accountmodel.h>
13#import <callmodel.h>
14#import <account.h>
15#include <call.h>
16
17@interface RingWindowController ()
18
19
20@end
21
22@implementation RingWindowController
Alexandre Lision5855b6a2015-02-03 11:31:05 -050023
24- (void)windowDidLoad {
25 [super windowDidLoad];
Alexandre Lision5855b6a2015-02-03 11:31:05 -050026 [self connectSlots];
Alexandre Lision5855b6a2015-02-03 11:31:05 -050027}
28
29
30- (void) connectSlots
31{
32 CallModel* callModel_ = CallModel::instance();
33 QObject::connect(callModel_, &CallModel::callStateChanged, [](Call*, Call::State) {
34 NSLog(@"callStateChanged");
35 });
36
37 QObject::connect(callModel_, &CallModel::incomingCall, [] (Call*) {
38 NSLog(@"incomingCall");
39 });
40
41}
42
Alexandre Lision4a7b95e2015-02-20 10:06:43 -050043- (IBAction)openPreferences:(id)sender
44{
45
46 if(self.preferencesViewController != nil)
47 return;
48 NSToolbar* tb = [[NSToolbar alloc] initWithIdentifier: @"PreferencesToolbar"];
49
50
51
52 self.preferencesViewController = [[PreferencesViewController alloc] initWithNibName:@"PreferencesScreen" bundle:nil];
53
54 self.myCurrentViewController = self.preferencesViewController;
55
56 NSLayoutConstraint* test = [NSLayoutConstraint constraintWithItem:self.preferencesViewController.view
57 attribute:NSLayoutAttributeWidth
58 relatedBy:NSLayoutRelationEqual
59 toItem:currentView
60 attribute:NSLayoutAttributeWidth
61 multiplier:1.0f
62 constant:0.0f];
63
64 NSLayoutConstraint* test2 = [NSLayoutConstraint constraintWithItem:self.preferencesViewController.view
65 attribute:NSLayoutAttributeHeight
66 relatedBy:NSLayoutRelationEqual
67 toItem:currentView
68 attribute:NSLayoutAttributeHeight
69 multiplier:1.0f
70 constant:0.0f];
71
72 NSLayoutConstraint* test3 = [NSLayoutConstraint constraintWithItem:self.preferencesViewController.view
73 attribute:NSLayoutAttributeCenterX
74 relatedBy:NSLayoutRelationEqual
75 toItem:currentView
76 attribute:NSLayoutAttributeCenterX
77 multiplier:1.0f
78 constant:0.0f];
79
80
81 [currentView addSubview:[self.preferencesViewController view]];
82
83 [tb setDelegate: self.preferencesViewController];
84 [self.window setToolbar: tb];
85
86 [self.window.toolbar setSelectedItemIdentifier:@"GeneralPrefsIdentifier"];
87
88 [currentView addConstraint:test];
89 [currentView addConstraint:test2];
90 [currentView addConstraint:test3];
91 // make sure we automatically resize the controller's view to the current window size
92 [[self.myCurrentViewController view] setFrame:[currentView bounds]];
93
94 // set the view controller's represented object to the number of subviews in that controller
95 // (our NSTextField's value binding will reflect this value)
96 [self.myCurrentViewController setRepresentedObject:[NSNumber numberWithUnsignedInteger:[[[self.myCurrentViewController view] subviews] count]]];
97
Alexandre Lision5855b6a2015-02-03 11:31:05 -050098}
Alexandre Lision4a7b95e2015-02-20 10:06:43 -050099
100- (IBAction) closePreferences:(NSToolbarItem *)sender {
101 if(self.myCurrentViewController != nil)
102 {
103 [self.preferencesViewController close];
104 [self.window setToolbar:nil];
105 self.preferencesViewController = nil;
106 }
107}
108
109// FIXME: This is sick, NSWindowController is catching my selectors
110- (void)displayGeneral:(NSToolbarItem *)sender {
111 [self.preferencesViewController displayGeneral:sender];
112}
113
114- (void)displayAudio:(NSToolbarItem *)sender {
115 [self.preferencesViewController displayAudio:sender];
116}
117
118- (void)displayAncrage:(NSToolbarItem *)sender {
119 [self.preferencesViewController displayAncrage:sender];
120}
121
122- (void)displayVideo:(NSToolbarItem *)sender {
123 [self.preferencesViewController displayVideo:sender];
124}
125
Alexandre Lision5855b6a2015-02-03 11:31:05 -0500126@end