1/*
2 *  $Id$
3 *
4 *  The iODBC driver manager.
5 *
6 *  Copyright (C) 1996-2021 OpenLink Software <iodbc@openlinksw.com>
7 *  All Rights Reserved.
8 *
9 *  This software is released under the terms of either of the following
10 *  licenses:
11 *
12 *      - GNU Library General Public License (see LICENSE.LGPL)
13 *      - The BSD License (see LICENSE.BSD).
14 *
15 *  Note that the only valid version of the LGPL license as far as this
16 *  project is concerned is the original GNU Library General Public License
17 *  Version 2, dated June 1991.
18 *
19 *  While not mandated by the BSD license, any patches you make to the
20 *  iODBC source code may be contributed back into the iODBC project
21 *  at your discretion. Contributions will benefit the Open Source and
22 *  Data Access community as a whole. Submissions may be made at:
23 *
24 *      http://www.iodbc.org
25 *
26 *
27 *  GNU Library Generic Public License Version 2
28 *  ============================================
29 *  This library is free software; you can redistribute it and/or
30 *  modify it under the terms of the GNU Library General Public
31 *  License as published by the Free Software Foundation; only
32 *  Version 2 of the License dated June 1991.
33 *
34 *  This library is distributed in the hope that it will be useful,
35 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
36 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
37 *  Library General Public License for more details.
38 *
39 *  You should have received a copy of the GNU Library General Public
40 *  License along with this library; if not, write to the Free
41 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
42 *
43 *
44 *  The BSD License
45 *  ===============
46 *  Redistribution and use in source and binary forms, with or without
47 *  modification, are permitted provided that the following conditions
48 *  are met:
49 *
50 *  1. Redistributions of source code must retain the above copyright
51 *     notice, this list of conditions and the following disclaimer.
52 *  2. Redistributions in binary form must reproduce the above copyright
53 *     notice, this list of conditions and the following disclaimer in
54 *     the documentation and/or other materials provided with the
55 *     distribution.
56 *  3. Neither the name of OpenLink Software Inc. nor the names of its
57 *     contributors may be used to endorse or promote products derived
58 *     from this software without specific prior written permission.
59 *
60 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
61 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
62 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
63 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
64 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
65 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
66 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
67 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
68 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
69 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
70 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
71 */
72
73#import "NSAttributedStringAdditions.h"
74
75@implementation NSAttributedString (TVLAttributedStringAdditions)
76
77+ (NSAttributedString *)attributedStringWithBlueLink:(NSString *)val {
78
79    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:val];
80    NSRange range = NSMakeRange(0, [attrString length]);
81
82    [attrString beginEditing];
83    [attrString addAttribute:NSLinkAttributeName value:val range:range];
84
85    [attrString addAttribute:NSForegroundColorAttributeName value:[NSColor blueColor] range:range];
86    [attrString addAttribute:NSUnderlineStyleAttributeName
87                       value:[NSNumber numberWithInteger:NSSingleUnderlineStyle] range:range];
88
89    NSMutableParagraphStyle *ps = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
90    [ps setLineBreakMode:NSLineBreakByTruncatingTail];
91    [attrString addAttribute:NSParagraphStyleAttributeName value:ps range:range];
92
93    [attrString endEditing];
94
95    return attrString;
96}
97
98@end
99