private void Initialise()
        {
            var prefs = NSUserDefaults.StandardUserDefaults;

            mPlaySounds = prefs.BoolForKey("PlaySounds");

            mDISVC = new DrawingImageScrollViewController(UIScreen.MainScreen.Bounds);

            mFlowView = new OpenFlowView(UIScreen.MainScreen.Bounds, this);

#if DEBUG
            mFlowView.Changed += delegate(object sender, EventArgs e)
            {
                Debug.WriteLine("Changed to " + mFlowView.Selected);
            };
#endif

            mFlowView.OnSingleTap += OnSingleTap;

            // Load images on demand on a worker thread
            mFlowView.NumberOfImages = mImgMgr.ImageCount;

            View = mFlowView;

            mWaitCursor.Frame  = new RectangleF(0f, 0f, 50f, 50f);
            mWaitCursor.Center = View.Center;
            mWaitCursor.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge;
            mWaitCursor.HidesWhenStopped           = true;
            View.AddSubview(mWaitCursor);

            // Start our thread queue system
            new Thread(Worker).Start();
            mSignal.Set();
        }
Example #2
0
        void Initialize()
        {
            flowView = new OpenFlowView(UIScreen.MainScreen.Bounds, this);
            View     = flowView;

            using (var alertView = new UIAlertView("OpenFlowSharp Demo Data Source",
                                                   "Would you like to download images from Flickr or use 30 sample images included with this project?",
                                                   null, "Flickr",
                                                   "Samples (all at once)",
                                                   "Samples (using threads)")){
                alertView.Dismissed += delegate(object sender, UIButtonEventArgs e) {
                    switch (e.ButtonIndex)
                    {
                    // Flickr
                    case 0:
                        flickr = new Flickr(apiKey, sharedSecret);
                        tasks.Enqueue(delegate {
                            try {
                                Network = true;
                                photos  = flickr.InterestingnessGetList();
                                Network = false;
                                InvokeOnMainThread(delegate {
                                    flowView.NumberOfImages = photos.Count;
                                });
                            } catch {
                                InvokeOnMainThread(delegate {
                                    using (var alert = new UIAlertView("Error", "While accessing Flickr", null, "Ok")){
                                        alert.Show();
                                    }
                                });
                            }
                        });
                        break;

                    // Load images on demand on a worker thread
                    case 2:
                        flowView.NumberOfImages = 30;
                        break;

                    // Sync case, load all images at startup
                    case 1:
                        LoadAllImages();
                        return;
                    }

                    // Start our thread queue system
                    new Thread(Worker).Start();
                    signal.Set();
                };
                alertView.Show();
            }
        }
        void IOpenFlowDataSource.RequestImage(OpenFlowView view, int index)
        {
            NSAction task = delegate
            {
                var img = UIImage.FromFile(mImgMgr.Thumbs(index));
                InvokeOnMainThread(delegate
                {
                    mFlowView [index] = img;
                });
            };

            lock (mTasks)
            {
                mTasks.Enqueue(task);
            }
            mSignal.Set();
        }
Example #4
0
        void IOpenFlowDataSource.RequestImage(OpenFlowView view, int index)
        {
            NSAction task;

            if (flickr == null)
            {
                task = delegate {
                    var img = UIImage.FromFile("images/" + index + ".jpg");
                    InvokeOnMainThread(delegate {
                        flowView [index] = img;
                    });
                };
            }
            else
            {
                task = delegate {
                    Network = true;
                    var data  = NSData.FromUrl(new NSUrl(photos [index].SmallUrl));
                    var image = UIImage.LoadFromData(data);
                    Network = false;

                    if (image != null)
                    {
                        InvokeOnMainThread(delegate {
                            image = PrepareFlickrPhoto(image, CalculateSizeForCroppingBox(image, 255, 255));

                            flowView [index] = image;
                        });
                    }
                };
            }
            lock (tasks){
                tasks.Enqueue(task);
            }
            signal.Set();
        }