2
// MonoMac.CFNetwork.Test.Views.GetStringViewController
5
// Martin Baulig (martin.baulig@gmail.com)
7
// Copyright 2012 Xamarin Inc. (http://www.xamarin.com)
10
// Permission is hereby granted, free of charge, to any person obtaining
11
// a copy of this software and associated documentation files (the
12
// "Software"), to deal in the Software without restriction, including
13
// without limitation the rights to use, copy, modify, merge, publish,
14
// distribute, sublicense, and/or sell copies of the Software, and to
15
// permit persons to whom the Software is furnished to do so, subject to
16
// the following conditions:
18
// The above copyright notice and this permission notice shall be
19
// included in all copies or substantial portions of the Software.
21
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
using System.Threading;
31
using System.Threading.Tasks;
32
using System.Net.Http;
33
using System.Collections.Generic;
35
using MonoMac.Foundation;
38
using MonoMac.CFNetwork;
40
namespace MonoMac.CFNetwork.Test.Views {
44
public partial class GetStringViewController : NSViewController, IAsyncViewController {
47
// Called when created from unmanaged code
48
public GetStringViewController (IntPtr handle) : base (handle)
53
// Called when created directly from a XIB file
54
[Export ("initWithCoder:")]
55
public GetStringViewController (NSCoder coder) : base (coder)
60
// Call to load from the XIB/NIB file
61
public GetStringViewController () : base ("GetStringView", NSBundle.MainBundle)
66
// Shared initialization code
75
public override void AwakeFromNib ()
79
textView = new NSTextView ();
80
webView = new WebView ();
82
AsyncTaskRunnerController.Instance.OperationStartedEvent += (sender, e) => {
87
AsyncTaskRunnerController.GetString.CompletedEvent += (sender, e) => {
88
url = e.Uri.OriginalString;
94
//strongly typed view accessor
95
public new GetStringView View {
97
return (GetStringView)base.View;
101
public AsyncTaskRunner TaskRunner {
102
get { return AsyncTaskRunnerController.GetString; }
105
public enum ModeIndex {
116
const string kMode = "Mode";
124
WillChangeValue (kMode);
126
DidChangeValue (kMode);
130
public override void LoadView ()
134
DisplayModeChanged (null);
137
partial void DisplayModeChanged (NSObject sender)
140
switch ((ModeIndex)Mode) {
148
throw new InvalidOperationException ();
151
Content.ContentView = view;
152
view.Frame = Content.Bounds;
153
view.AutoresizingMask = NSViewResizingMask.HeightSizable |
154
NSViewResizingMask.WidthSizable;
161
switch ((ModeIndex)Mode) {
163
textView.TextStorage.SetString (new NSAttributedString (text));
166
webView.MainFrame.LoadHtmlString (text, new NSUrl (url));