adium 3048:d7d98a5940fa: Add a media window nib/controller.
commits at adium.im
commits at adium.im
Fri Dec 11 00:41:18 UTC 2009
details: http://hg.adium.im/adium/rev/d7d98a5940fa
revision: 3048:d7d98a5940fa
author: Zachary West <zacw at adium.im>
date: Thu Dec 10 19:41:13 2009 -0500
Add a media window nib/controller.
diffs (334 lines):
diff -r f944851ae93c -r d7d98a5940fa Adium.xcodeproj/project.pbxproj
--- a/Adium.xcodeproj/project.pbxproj Thu Dec 10 12:57:12 2009 -0500
+++ b/Adium.xcodeproj/project.pbxproj Thu Dec 10 19:41:13 2009 -0500
@@ -123,6 +123,8 @@
1139FFAA0F85260E0081A418 /* AIIRCChannelLinker.m in Sources */ = {isa = PBXBuildFile; fileRef = 1139FFA90F85260E0081A418 /* AIIRCChannelLinker.m */; };
113E06AF10D0ABE3005D5B9A /* adiumPurpleMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = 113E06AE10D0ABE3005D5B9A /* adiumPurpleMedia.h */; settings = {ATTRIBUTES = (Public, ); }; };
113F26A00F5CC03F00954772 /* AITwitterURLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 113F269F0F5CC03F00954772 /* AITwitterURLParser.m */; };
+ 1147FCC410D1CB4C004E9E8D /* AIMediaWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1147FCC310D1CB4C004E9E8D /* AIMediaWindowController.m */; };
+ 1147FCC810D1CB83004E9E8D /* AIMediaWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 1147FCC710D1CB83004E9E8D /* AIMediaWindow.nib */; };
114849B90F7841C600EA5264 /* AIAuthorizationRequestsWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = 114849B70F7841C600EA5264 /* AIAuthorizationRequestsWindowController.h */; settings = {ATTRIBUTES = (Public, ); }; };
114849BA0F7841C600EA5264 /* AIAuthorizationRequestsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 114849B80F7841C600EA5264 /* AIAuthorizationRequestsWindowController.m */; };
114849BC0F78420300EA5264 /* AIAuthorizationRequestsWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 114849BB0F78420300EA5264 /* AIAuthorizationRequestsWindow.nib */; };
@@ -1907,6 +1909,9 @@
113E06AE10D0ABE3005D5B9A /* adiumPurpleMedia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adiumPurpleMedia.h; path = "Plugins/Purple Service/adiumPurpleMedia.h"; sourceTree = "<group>"; };
113F269E0F5CC03F00954772 /* AITwitterURLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AITwitterURLParser.h; path = "Plugins/Twitter Plugin/AITwitterURLParser.h"; sourceTree = "<group>"; };
113F269F0F5CC03F00954772 /* AITwitterURLParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AITwitterURLParser.m; path = "Plugins/Twitter Plugin/AITwitterURLParser.m"; sourceTree = "<group>"; };
+ 1147FCC210D1CB4C004E9E8D /* AIMediaWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIMediaWindowController.h; path = Source/AIMediaWindowController.h; sourceTree = "<group>"; };
+ 1147FCC310D1CB4C004E9E8D /* AIMediaWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIMediaWindowController.m; path = Source/AIMediaWindowController.m; sourceTree = "<group>"; };
+ 1147FCC710D1CB83004E9E8D /* AIMediaWindow.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = AIMediaWindow.nib; path = Resources/AIMediaWindow.nib; sourceTree = "<group>"; };
114849B70F7841C600EA5264 /* AIAuthorizationRequestsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIAuthorizationRequestsWindowController.h; path = "Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.h"; sourceTree = "<group>"; };
114849B80F7841C600EA5264 /* AIAuthorizationRequestsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIAuthorizationRequestsWindowController.m; path = "Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.m"; sourceTree = "<group>"; };
114849BB0F78420300EA5264 /* AIAuthorizationRequestsWindow.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = AIAuthorizationRequestsWindow.nib; path = "Frameworks/Adium Framework/Resources/AIAuthorizationRequestsWindow.nib"; sourceTree = "<group>"; };
@@ -7199,6 +7204,9 @@
344C0D4306B6D5E300DA7200 /* Applescriptability */,
11819A0210D0B8BE003E8ECA /* AIMediaController.h */,
11819A0310D0B8BE003E8ECA /* AIMediaController.m */,
+ 1147FCC710D1CB83004E9E8D /* AIMediaWindow.nib */,
+ 1147FCC210D1CB4C004E9E8D /* AIMediaWindowController.h */,
+ 1147FCC310D1CB4C004E9E8D /* AIMediaWindowController.m */,
);
name = Other;
sourceTree = "<group>";
@@ -9962,6 +9970,7 @@
1130EA9D109B445D00FB3454 /* pref-mention.png in Resources */,
1130EA9E109B445D00FB3454 /* pref-messagealerts.png in Resources */,
11AE5555109CC88C0074BDC2 /* pref-confirmations.png in Resources */,
+ 1147FCC810D1CB83004E9E8D /* AIMediaWindow.nib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -10628,6 +10637,7 @@
11D915720FFC100700B39713 /* AIGenericMultipartImageUploader.m in Sources */,
11000D041098863B0096A1E2 /* AIDefaultFontRemovalPlugin.m in Sources */,
11819A0410D0B8BE003E8ECA /* AIMediaController.m in Sources */,
+ 1147FCC410D1CB4C004E9E8D /* AIMediaWindowController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff -r f944851ae93c -r d7d98a5940fa Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h
--- a/Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h Thu Dec 10 12:57:12 2009 -0500
+++ b/Frameworks/Adium Framework/Source/AIMediaControllerProtocol.h Thu Dec 10 19:41:13 2009 -0500
@@ -21,8 +21,8 @@
} AIMediaState;
@protocol AIMediaWindowController
- at property (readwrite, retain) NSView *outgoingVideo;
- at property (readwrite, retain) NSView *incomingVideo;
+ at property (readwrite, retain, nonatomic) NSView *outgoingVideo;
+ at property (readwrite, retain, nonatomic) NSView *incomingVideo;
@end
@class AIMedia, AIListContact, AIAccount;
@@ -36,8 +36,6 @@
- (NSWindowController <AIMediaWindowController> *)windowControllerForMedia:(AIMedia *)media;
-- (void)showMedia:(AIMedia *)media;
-
- (void)media:(AIMedia *)media didSetState:(AIMediaState)state;
@end
diff -r f944851ae93c -r d7d98a5940fa Plugins/Purple Service/adiumPurpleMedia.m
--- a/Plugins/Purple Service/adiumPurpleMedia.m Thu Dec 10 12:57:12 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleMedia.m Thu Dec 10 19:41:13 2009 -0500
@@ -135,10 +135,10 @@
adiumMedia.protocolInfo = (id)media;
- if (purple_media_is_initiator(media, NULL, NULL) == TRUE) {
- [adium.mediaController showMedia:adiumMedia];
+ if (purple_media_is_initiator(media, NULL, NULL) == TRUE) {
+ adiumMedia.mediaState = AIMediaStateWaiting;
- adiumMedia.mediaState = AIMediaStateWaiting;
+ [[adium.mediaController windowControllerForMedia:adiumMedia] showWindow:nil];
} else {
adiumMedia.mediaState = AIMediaStateRequested;
}
diff -r f944851ae93c -r d7d98a5940fa Resources/AIMediaWindow.nib/designable.nib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Resources/AIMediaWindow.nib/designable.nib Thu Dec 10 19:41:13 2009 -0500
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1060</int>
+ <string key="IBDocument.SystemVersion">10C540</string>
+ <string key="IBDocument.InterfaceBuilderVersion">740</string>
+ <string key="IBDocument.AppKitVersion">1038.25</string>
+ <string key="IBDocument.HIToolboxVersion">458.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="NS.object.0">740</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1001">
+ <string key="NSClassName">NSObject</string>
+ </object>
+ <object class="NSCustomObject" id="1003">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1004">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="1005">
+ <int key="NSWindowStyleMask">15</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{196, 240}, {480, 270}}</string>
+ <int key="NSWTFlags">544735232</int>
+ <string key="NSWindowTitle">Window</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <nil key="NSViewClass"/>
+ <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ <object class="NSView" key="NSWindowView" id="1006">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrameSize">{480, 270}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
+ <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1001"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1003"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1004"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="1005"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1006"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="1006"/>
+ <reference key="parent" ref="1005"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>1.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>2.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{0, 875}, {480, 270}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{0, 875}, {480, 270}}</string>
+ <integer value="1"/>
+ <string>{196, 240}</string>
+ <string>{{357, 418}, {480, 270}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">2</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes"/>
+ <int key="IBDocument.localizationMode">0</int>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <nil key="IBDocument.LastKnownRelativeProjectPath"/>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
diff -r f944851ae93c -r d7d98a5940fa Resources/AIMediaWindow.nib/keyedobjects.nib
Binary file Resources/AIMediaWindow.nib/keyedobjects.nib has changed
diff -r f944851ae93c -r d7d98a5940fa Source/AIMediaController.m
--- a/Source/AIMediaController.m Thu Dec 10 12:57:12 2009 -0500
+++ b/Source/AIMediaController.m Thu Dec 10 19:41:13 2009 -0500
@@ -53,9 +53,4 @@
}
-- (void)showMedia:(AIMedia *)media
-{
-
-}
-
@end
diff -r f944851ae93c -r d7d98a5940fa Source/AIMediaWindowController.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIMediaWindowController.h Thu Dec 10 19:41:13 2009 -0500
@@ -0,0 +1,23 @@
+//
+// AIMediaWindowController.h
+// Adium
+//
+// Created by Zachary West on 2009-12-10.
+// Copyright 2009 . All rights reserved.
+//
+
+#import <Adium/AIWindowController.h>
+#import <Adium/AIMediaControllerProtocol.h>
+
+ at interface AIMediaWindowController : AIWindowController <AIMediaWindowController> {
+ AIMedia *media;
+
+ NSView *outgoingVideo;
+ NSView *incomingVideo;
+}
+
+ at property (readwrite, retain, nonatomic) AIMedia *media;
+ at property (readwrite, retain, nonatomic) NSView *outgoingVideo;
+ at property (readwrite, retain, nonatomic) NSView *incomingVideo;
+
+ at end
diff -r f944851ae93c -r d7d98a5940fa Source/AIMediaWindowController.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIMediaWindowController.m Thu Dec 10 19:41:13 2009 -0500
@@ -0,0 +1,32 @@
+//
+// AIMediaWindowController.m
+// Adium
+//
+// Created by Zachary West on 2009-12-10.
+// Copyright 2009 . All rights reserved.
+//
+
+#import "AIMediaWindowController.h"
+
+ at interface AIMediaWindowController()
+- (id)initWithMedia:(AIMedia *)inMedia;
+ at end
+
+ at implementation AIMediaWindowController
+
+ at synthesize incomingVideo, outgoingVideo, media;
+
++ (AIMediaWindowController *)mediaWindowControllerForMedia:(AIMedia *)media
+{
+ return [[[self alloc] initWithMedia:media] autorelease];
+}
+
+- (id)initWithMedia:(AIMedia *)inMedia
+{
+ if ((self = [super initWithWindowNibName:@"AIMediaWindow"])) {
+ self.media = inMedia;
+ }
+ return self;
+}
+
+ at end
More information about the commits
mailing list