adium/adium
Clone
Summary
Browse
Changes
Graph
1.5.10.3b1
adium-1.5.10.3
2017-03-23, Evan D. Schoenberg, M.D.
6d760b7b1d69
1.5.10.3b1
/*
* Adium is the legal property of its developers, whose names are listed in the copyright file included
* with this source distribution.
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
* General Public License as published by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program; if not,
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "AIPurpleCertificateViewer.h"
#import <SecurityInterface/SFCertificatePanel.h>
#import <Adium/AIAccountControllerProtocol.h>
@interface
AIPurpleCertificateViewer
(privateMethods)
-
(
id
)
initWithCertificateChain:
(
CFArrayRef
)
cc
forAccount:
(
AIAccount
*
)
_account
;
-
(
IBAction
)
showWindow:
(
id
)
sender
;
-
(
void
)
certificateSheetDidEnd:
(
SFCertificatePanel
*
)
panel
returnCode:
(
NSInteger
)
returnCode
contextInfo:
(
void
*
)
contextInfo
;
@end
@implementation
AIPurpleCertificateViewer
+
(
void
)
displayCertificateChain:
(
CFArrayRef
)
cc
forAccount:
(
AIAccount
*
)
account
{
AIPurpleCertificateViewer
*
viewer
=
[[
self
alloc
]
initWithCertificateChain
:
cc
forAccount
:
account
];
[
viewer
showWindow
:
nil
];
[
viewer
release
];
}
-
(
id
)
initWithCertificateChain:
(
CFArrayRef
)
cc
forAccount:
(
AIAccount
*
)
_account
{
if
((
self
=
[
super
init
]))
{
certificatechain
=
cc
;
CFRetain
(
certificatechain
);
account
=
_account
;
}
return
[
self
retain
];
}
-
(
void
)
dealloc
{
CFRelease
(
certificatechain
);
[
super
dealloc
];
}
-
(
IBAction
)
showWindow:
(
id
)
sender
{
[
adium
.
accountController
editAccount
:
account
onWindow
:
nil
notifyingTarget
:
self
];
}
-
(
void
)
editAccountWindow:
(
NSWindow
*
)
window
didOpenForAccount:
(
AIAccount
*
)
inAccount
{
SFCertificatePanel
*
panel
=
[[
SFCertificatePanel
alloc
]
init
];
[
panel
beginSheetForWindow
:
window
modalDelegate
:
self
didEndSelector
:
@selector
(
certificateSheetDidEnd
:
returnCode
:
contextInfo
:
)
contextInfo
:
window
certificates
:
(
NSArray
*
)
certificatechain
showGroup
:
YES
];
}
-
(
void
)
certificateSheetDidEnd:
(
SFCertificatePanel
*
)
panel
returnCode:
(
NSInteger
)
returnCode
contextInfo:
(
void
*
)
contextInfo
{
NSWindow
*
win
=
(
NSWindow
*
)
contextInfo
;
[
panel
release
];
[
win
performSelector
:
@selector
(
performClose
:
)
withObject
:
nil
afterDelay
:
0.0
];
}
@end