Skip to content

Instantly share code, notes, and snippets.

View benlangfeld's full-sized avatar

Ben Langfeld benlangfeld

View GitHub Profile
@implementation TransferDialog : CPObject
{
CPPanel _transferPanel;
CPTextField _URIText;
CPTextField _URILabel;
}
- (id)init
{
if(self = [super init])
@implementation TransferDialog : CPPanel
{
CPTextField targetURIField;
CPButton cancelButton;
CPButton transferButton;
Call call;
}
+ (TransferDialog)transferDialogForCall:(Call)aCall
{
- (id)tableView:(CPTableView)aTableView objectValueForTableColumn:(CPTableColumn)aTableColumn row:(int)aRow
{
var conversationsAsArray = [conversations allValues],
conversation = conversationsAsArray[aRow],
value;
switch ([aTableColumn identifier])
{
case @"ConversationID":
value = [conversation conversationID];
- (CPView)tableView:(CPTableView)aTableView dataViewForTableColumn:(CPTableColumn)aTableColumn row:(int)aRow
{
var conversation = [conversations allValues][aRow],
pending = [[EKActivityIndicatorView alloc] initWithFrame:CGRectMake(0,0,10,10)],
ringing = [[EKActivityIndicatorView alloc] initWithFrame:CGRectMake(0,0,10,10)],
value;
[pending setColor:[CPColor redColor]];
[ringing setColor:[CPColor greenColor]];
for (var i=0; i < [[myMenu itemArray] count]; i++)
{
var item = [myMenu itemArray][i];
[item setTarget:self];
}
- (void)sendStanzaToRoster:(TNStropheStanza)aStanza
{
var contacts = [roster contacts];
for (var i=0; i < [contacts count]; i++)
{
var contact = contacts[i];
[contact sendStanza:aStanza andRegisterSelector:nil ofObject:nil];
}
}
- (void)notifyRosterOfConversationMetadataUpdate:(CPNotification)aNotification
{
var conversationID = [[aNotification object] conversationID];
stanza = [[TNXMLNode alloc] initWithName:@"conversation-update-notification" andAttributes:{"xmlns":"http://studiotalker.com/protocol/conversations", @"conversation-id":conversationID}];
CPLog.debug("Notifying roster of update to metadata for conversation with ID " + conversationID);
[[XMPPController defaultController] publishPEPPayload:stanza toNode:"http://studiotalker.com/protocol/conversations"];
}
- (void)notifyRosterOfConversationCommand:(TNXMLNode)aCommand onConversationWithID:(CPString)aConversationID
auth = Blather::Stanza::Iq::Command.new :set, "authorize-plain"
auth.form.type = :submit
auth.form.fields = [
{ :type => 'text-single', :var => 'sip-address', :value => endpoint.sip_address },
{ :type => 'text-private', :var => 'password', :value => endpoint.password }
]
auth.to = "commands.auth.xmpp.onsip.com"
#!/usr/bin/env ruby
# Adhearsion, open source collaboration framework
#
# Init Script
# Copyright (c) 2010 Ben Langfeld - [email protected]
# All rights reserved.
#
# Author: Ben Langfeld, 2010
#
@benlangfeld
benlangfeld / MUCController.j
Created October 25, 2010 14:04
Really nasty MUC controller implementation
@import <MessageBoard/MessageBoard.j>
@import <StropheCappuccino/MUC/TNStropheMUCRoom.j>
@implementation MUCController : CPViewController
{
BOOL _active;
@outlet CPTextField _subjectBox;
@outlet CPScrollView _conversationBox;
TNMessageBoard _messageBoard;