2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 using Tizen.Applications.CoreBackend;
21 namespace Tizen.Applications
24 /// Represents an application that has an UI screen. The events for resuming and pausing are provided.
26 public class CoreUIApplication : CoreApplication
29 /// Initializes the CoreUIApplication class.
32 /// The default backend for the UI application will be used.
34 public CoreUIApplication() : base(new UICoreBackend())
39 /// Initializes the CoreUIApplication class.
42 /// If you want to change the backend, use this constructor.
44 /// <param name="backend">The backend instance implementing the ICoreBacked interface.</param>
45 public CoreUIApplication(ICoreBackend backend) : base(backend)
50 /// Occurs whenever the application is resumed.
52 public event EventHandler Resumed;
55 /// Occurs whenever the application is paused.
57 public event EventHandler Paused;
60 /// Runs the UI application's main loop.
62 /// <param name="args">Arguments from the commandline.</param>
63 public override void Run(string[] args)
65 Backend.AddEventHandler(EventType.PreCreated, OnPreCreate);
66 Backend.AddEventHandler(EventType.Resumed, OnResume);
67 Backend.AddEventHandler(EventType.Paused, OnPause);
72 /// Overrides this method if you want to handle the behavior before calling OnCreate().
74 protected virtual void OnPreCreate()
79 /// Overrides this method if you want to handle the behavior when the application is resumed.
80 /// If base.OnResume() is not called, the event 'Resumed' will not be emitted.
82 protected virtual void OnResume()
84 Resumed?.Invoke(this, EventArgs.Empty);
88 /// Overrides this method if you want to handle the behavior when the application is paused.
89 /// If base.OnPause() is not called, the event 'Paused' will not be emitted.
91 protected virtual void OnPause()
93 Paused?.Invoke(this, EventArgs.Empty);