コード例 #1
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            // create helpers
            iHelper = new Helper(e.Args);
            iHelper.ProcessOptionsFileAndCommandLine();

            ICrashLogDumper d = new CrashLogDumperWindow(ResourceManager.IconLarge, iHelper.Title, iHelper.Product, iHelper.Version);

            iHelper.AddCrashLogDumper(d);

            iHelperAutoUpdate = new HelperAutoUpdate(iHelper, new Linn.Toolkit.Wpf.ViewAutoUpdateStandard(Konfig.ResourceManager.Icon, Konfig.Properties.Resources.IconLarge), new Invoker(this.Dispatcher));
            iHelperAutoUpdate.Start();

            // create the main window
            iMainWindow = new MainWindow(iHelper.Product, iHelper.Title);
            iMainWindow.Show();

            Preferences preferences = new Preferences(iHelper);

            Model.Instance = new Model(preferences);

            // create the xapp controller and view
            Invoker invoker = new Invoker(this.Dispatcher);
            SettingsPageAdvanced   settings  = new SettingsPageAdvanced(invoker, Model.Instance, preferences, iHelperAutoUpdate, "settings", "settings");
            UpdateListenerRepeater listeners = new UpdateListenerRepeater(new IUpdateListener[] { iMainWindow, settings });

            iXappController = new XappController(invoker, iHelper, Model.Instance, preferences, settings, listeners);
            iViewer         = new ViewerBrowser(iMainWindow.WebBrowser, iXappController.MainPageUri);
        }
コード例 #2
0
        //
        // This method is invoked when the application has loaded and is ready to run. In this
        // method you should instantiate the window, load the UI into it and then make the window
        // visible.
        //
        // You have 17 seconds to return from this method, or iOS will terminate your application.
        //
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            // create the app helper
            iHelper = new Helper(Environment.GetCommandLineArgs());
            iHelper.ProcessOptionsFileAndCommandLine();

            // add a crash log dumper
            CrashLogDumper d = new CrashLogDumper(iHelper.Title, iHelper.Product, iHelper.Version);

            //d.SetAutoSend(false);
            iHelper.AddCrashLogDumper(d);

            iWindow = new UIWindow(UIScreen.MainScreen.Bounds);

            iViewController            = new KonfigViewController();
            iWindow.RootViewController = iViewController;

            Preferences preferences = new Preferences(iHelper);

            Model.Instance = new Model(preferences);

            // create the xapp controller and view
            Invoker  invoker = new Invoker();
            PageBase page    = new SettingsPageBasic(invoker, preferences, "settings", "settings");

            iXappController = new XappController(invoker, iHelper, Model.Instance, preferences, page, this);

            iWindow.MakeKeyAndVisible();

            iViewer = new ViewerBrowser(iViewController.WebView, iXappController.MainPageUri);

            return(true);
        }
コード例 #3
0
ファイル: AppDelegate.cs プロジェクト: daviddw/oss-public
        public override void FinishedLaunching(NSObject notification)
        {
            NSImage img = new NSImage(NSBundle.MainBundle.PathForImageResource("Icon106x106.png"));

            // create the helpers
            iHelper = new Helper(Environment.GetCommandLineArgs());
            iHelper.ProcessOptionsFileAndCommandLine();

            CrashLogDumperWindowController d = new CrashLogDumperWindowController(img, iHelper.Title, iHelper.Product, iHelper.Version);

            d.LoadWindow();
            iHelper.AddCrashLogDumper(d);

            iHelperAutoUpdate = new HelperAutoUpdate(iHelper, new Linn.Toolkit.Mac.ViewAutoUpdateStandard(img), new Linn.Toolkit.Mac.Invoker());
            iHelperAutoUpdate.Start();

            // create the xapp components
            iXapp      = new Framework <Session>(Path.Combine(OpenHome.Xen.Environment.AppPath, "PageHtml"));
            iWebServer = new WebServer(iXapp);
            iControl   = new PageControl(iHelper, iXapp, Path.Combine(OpenHome.Xen.Environment.AppPath, "PageHtml"), "PageDefinitions.xml");
            iControl.EventCloseApplicationRequested += CloseApplicationRequested;

            // create and show the main window
            iMainWindow = new MainWindowController();
            iMainWindow.Window.Title = iHelper.Product;
            iViewBrowser             = new ViewerBrowser(iMainWindow.WebView, iWebServer.ResourceUri);
            iMainWindow.Window.MakeKeyAndOrderFront(this);
        }
コード例 #4
0
        public override void WillTerminate(UIApplication application)
        {
            iXappController.Dispose();
            iXappController = null;

            iViewer.Dispose();
            iViewer = null;
        }
コード例 #5
0
 private void WindowDidBecomeKey(object sender, EventArgs e)
 {
     if (iViewer == null)
     {
         iViewer = new ViewerBrowser(iWebView, iServer.PresentationUri);
     }
     iPageMain.TrackPageVisibilityChange(true);
 }
コード例 #6
0
        public MainWindow(Helper aHelper, string aWebServerUri, PageControl aControl)
        {
            InitializeComponent();
            this.Title = aHelper.Product;

            Viewer viewer = new ViewerBrowser(webBrowser1, aWebServerUri);

            aControl.EventCloseApplicationRequested += CloseApplicationRequested;
        }
コード例 #7
0
ファイル: AppDelegate.cs プロジェクト: daviddw/oss-public
        public override void OnActivated(UIApplication application)
        {
            Assert.Check(iControl == null);
            iControl = new PageControl(iHelper, iXapp, Path.Combine(OpenHome.Xen.Environment.AppPath, "PageHtml"), "PageDefinitions.xml");
            //iControl.EventCloseApplicationRequested += ;

            Assert.Check(iViewBrowser == null);
            iViewBrowser = new ViewerBrowser(viewController.WebView, iWebServer.ResourceUri);
        }
コード例 #8
0
ファイル: AppDelegate.cs プロジェクト: daviddw/oss-public
        public override void AwakeFromNib()
        {
            // initialise resigned state
            iSessionResigned = false;

            // load some images from the bundle
            NSImage largeIcon = new NSImage(NSBundle.MainBundle.PathForImageResource("IconLarge.png"));

            // create the app helper
            iHelper = new Helper(Environment.GetCommandLineArgs());
            iHelper.ProcessOptionsFileAndCommandLine();

            // add a crash log dumper
            CrashLogDumperWindowController d = new CrashLogDumperWindowController(largeIcon, iHelper.Title, iHelper.Product, iHelper.Version);

            d.LoadWindow();
            iHelper.AddCrashLogDumper(d);

            // create auto update view and helper
            iHelperAutoUpdate = new HelperAutoUpdate(iHelper, new Linn.Toolkit.Mac.ViewAutoUpdateStandard(largeIcon), new Invoker(), (s, e) => {});
            iHelperAutoUpdate.Start();

            // create the main songcast model
            iModel = new Model(new Invoker(), iHelper);
            iModel.EventEnabledChanged += ModelEnabledChanged;

            // create the preferences 'view' for communicating with the system preferences app
            iViewPreferences = new ViewPreferences(new Invoker(), iModel, iHelperAutoUpdate);

            // creating the status item with a length of -2 is equivalent to the call
            // [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength]
            iStatusItem = NSStatusBar.SystemStatusBar.CreateStatusItem(-2);
            iStatusItem.HighlightMode = false;
            iStatusItem.Target        = this;
            iStatusItem.Action        = new Selector("statusItemClicked:");

            // setup system event notifications
            NSNotificationCenter center = NSWorkspace.SharedWorkspace.NotificationCenter;

            center.AddObserver(this, new Selector("willSleep:"), new NSString("NSWorkspaceWillSleepNotification"), null);
            center.AddObserver(this, new Selector("didWake:"), new NSString("NSWorkspaceDidWakeNotification"), null);
            center.AddObserver(this, new Selector("sessionDidResignActive:"), new NSString("NSWorkspaceSessionDidResignActiveNotification"), null);
            center.AddObserver(this, new Selector("sessionDidBecomeActive:"), new NSString("NSWorkspaceSessionDidBecomeActiveNotification"), null);

            // create the main window
            iMainWindow = new MainWindowController();
            iMainWindow.LoadWindow();
            iMainWindow.Window.DidResignKey      += MainWindowDidResignKey;
            iMainWindow.Window.CollectionBehavior = NSWindowCollectionBehavior.CanJoinAllSpaces;

            // create the xapp controller and view
            iXappController = new XappController(iModel, new Invoker());
            iXappController.MainPage.EventShowConfig += ShowConfig;
            iXappController.MainPage.EventShowHelp   += ShowHelp;
            iViewer = new ViewerBrowser(iMainWindow.WebView, iXappController.MainPageUri);
        }
コード例 #9
0
        private void Window_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (iViewer != null)
            {
                iViewer.Dispose();
                iViewer = null;
            }

            if (IsVisible)
            {
                iViewer = new ViewerBrowser(WebBrowser, iServer.PresentationUri);
                WebBrowser.Focus();
            }
        }
コード例 #10
0
ファイル: Controller.cs プロジェクト: daviddw/oss-public
        public Controller(string[] aArgs)
        {
            iHelper = new Helper(aArgs);
            iHelper.ProcessOptionsFileAndCommandLine();

            iMainWindow = new MainWindow(iHelper);
            iMainWindow.ShowAll();

            Preferences preferences = new Preferences(iHelper);

            Model.Instance = new Model(preferences);

            // create the xapp controller and view
            Invoker  invoker = new Invoker();
            PageBase page    = new SettingsPageBasic(invoker, preferences, "settings", "settings");

            iXappController = new XappController(invoker, iHelper, Model.Instance, preferences, page, iMainWindow);
            iViewer         = new ViewerBrowser(iMainWindow.WebView, iXappController.MainPageUri);
        }
コード例 #11
0
        private void Application_Exit(object sender, ExitEventArgs e)
        {
            if (iHelperAutoUpdate != null)
            {
                iHelperAutoUpdate.Dispose();
                iHelperAutoUpdate = null;
            }

            if (iXappController != null)
            {
                iXappController.Dispose();
                iXappController = null;
            }

            if (iViewer != null)
            {
                iViewer.Dispose();
                iViewer = null;
            }
        }
コード例 #12
0
        public override void FinishedLaunching(NSObject notification)
        {
            // load some images from the bundle
            NSImage largeIcon = new NSImage(NSBundle.MainBundle.PathForImageResource("IconLarge.png"));

            // create the app helper
            iHelper = new Helper(Environment.GetCommandLineArgs());
            iHelper.ProcessOptionsFileAndCommandLine();

            // add a crash log dumper
            CrashLogDumperWindowController d = new CrashLogDumperWindowController(largeIcon, iHelper.Title, iHelper.Product, iHelper.Version);

            d.LoadWindow();
            iHelper.AddCrashLogDumper(d);

            // create auto update view and helper
            iHelperAutoUpdate = new HelperAutoUpdate(iHelper, new Linn.Toolkit.Mac.ViewAutoUpdateStandard(largeIcon), new Invoker());
            iHelperAutoUpdate.Start();

            iMainWindowController = new MainWindowController(iHelper.Product);
            MainWindowDelegate windowDelegate = new MainWindowDelegate(iMainWindowController.Window, iHelper.Title, largeIcon);

            iMainWindowController.Window.Delegate = windowDelegate;
            iMainWindowController.Window.MakeKeyAndOrderFront(this);

            Preferences preferences = new Preferences(iHelper);

            Model.Instance = new Model(preferences);

            // create the xapp controller and view
            Invoker invoker = new Invoker();
            SettingsPageAdvanced   settings  = new SettingsPageAdvanced(invoker, Model.Instance, preferences, iHelperAutoUpdate, "settings", "settings");
            UpdateListenerRepeater listeners = new UpdateListenerRepeater(new IUpdateListener[] { windowDelegate, settings });

            iXappController = new XappController(invoker, iHelper, Model.Instance, preferences, settings, listeners);
            iViewer         = new ViewerBrowser(iMainWindowController.WebView, iXappController.MainPageUri);
        }
コード例 #13
0
ファイル: App.xaml.cs プロジェクト: daviddw/oss-public
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            try
            {
                // create helpers
                iHelper = new Helper(e.Args);
                ICrashLogDumper d = new CrashLogDumperWindow(ResourceManager.Icon, iHelper.Title, iHelper.Product, iHelper.Version);
                iHelper.AddCrashLogDumper(d);

                iHelperAutoUpdate = new HelperAutoUpdate(iHelper, new Linn.Toolkit.Wpf.ViewAutoUpdateStandard(ResourceManager.IconSongcaster, Linn.Songcast.Properties.Resources.IconLarge), new Invoker(this.Dispatcher));
                iHelperAutoUpdate.Start();

                // create the model
                iModel = new Model(new Invoker(this.Dispatcher), iHelper);

                iHelper.ProcessOptionsFileAndCommandLine();

                // this should be created before PreferencesWindowClosing event can be called or PreferencesWindowClosing will raise a null reference exception
                iWaitMainWindowClosed = new AutoResetEvent(false);

                // create the preferences window and controller
                iPreferencesWindow          = new PreferencesWindow(iHelper, new PreferenceBindings(iModel, iHelperAutoUpdate.OptionPageUpdates), iModel, iHelperAutoUpdate);
                iPreferencesWindow.Closing += PreferencesWindowClosing;
                iPreferencesWindow.EventButtonHelpClicked += OpenHelp;

                // create the main window
                iMainWindow              = new MainWindow();
                iMainWindow.Deactivated += MainWindowDeactivated;

                // create the xapp controller and view
                iXappController = new XappController(iModel, new Invoker(this.Dispatcher));
                iXappController.MainPage.EventShowConfig += OpenPreferences;
                iXappController.MainPage.EventShowHelp   += OpenHelp;
                iViewer = new ViewerBrowser(iMainWindow.WebBrowser, iXappController.MainPageUri);

                // create the sys tray icon
                iFormSysTray = new FormSysTray(iModel);
                iFormSysTray.EventIconClick += SysTrayIconClick;

                // start the model
                System.Drawing.Image   image  = System.Drawing.Image.FromStream(ResourceManager.Icon.StreamSource);
                System.IO.MemoryStream stream = new System.IO.MemoryStream();
                image.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                iModel.Start("linn.co.uk", "Linn", "http://www.linn.co.uk", "http://www.linn.co.uk", stream.ToArray(), "image/png");

                bool createdNew;
                iWaitHandleMainWindow = new EventWaitHandle(false, EventResetMode.ManualReset, "LinnSongcastOpenPreferences", out createdNew);
                if (!createdNew)
                {
                    iWaitHandleMainWindow.Set();
                    //MessageBox.Show("Linn Songcast is already running", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
                    App.Current.Shutdown(0);
                    return;
                }

                iWaitHandleExit = new EventWaitHandle(false, EventResetMode.ManualReset, "LinnSongcastExit", out createdNew);
                Assert.Check(createdNew);

                iThreadMainWindow = new Thread(ProcessOpenMainWindow);
                iThreadMainWindow.IsBackground = true;
                iThreadMainWindow.Start();

                iThreadExit = new Thread(ProcessExit);
                iThreadExit.IsBackground = true;
                iThreadExit.Start();

                Microsoft.Win32.SystemEvents.PowerModeChanged += PowerModeChanged;
            }
            catch (SongcastError)
            {
                MessageBox.Show("Failed to initialise Linn Songcast Driver", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                App.Current.Shutdown(1);
            }
        }