Skip to content

Add Refactored Tizen.WindowSystem#7459

Open
JoonghyunCho wants to merge 11 commits intoSamsung:mainfrom
JoonghyunCho:refactor-windowsystem-re
Open

Add Refactored Tizen.WindowSystem#7459
JoonghyunCho wants to merge 11 commits intoSamsung:mainfrom
JoonghyunCho:refactor-windowsystem-re

Conversation

@JoonghyunCho
Copy link
Member

@JoonghyunCho JoonghyunCho commented Feb 6, 2026

Description of Change

This PR refactors the Tizen.NUI.WindowSystem namespace to improve code quality, adhere to .NET Framework design guidelines, and remove the dependency on Tizen.NUI.

Changes

  • Namespace Update: Changed namespace from Tizen.NUI.WindowSystem to Tizen.WindowSystem.
  • Dependency Removal: Removed dependency on Tizen.NUI.
  • Dispose Pattern: Removed DisposeQueue and implemented the standard .NET IDisposable pattern using SafeHandle.
  • Input Gesture Refactoring: Refactored the InputGesture structure to an Object-Oriented Programming (OOP) style.
  • API Design: Converted Get/Set methods to Properties where appropriate.
  • Cleanup: Removed unnecessary destructors.
  • File Reorganization: Rearranged files and folders for better project structure.
  • Naming Conventions: Updated naming of enums, methods, and properties to align with .NET Framework guidelines.

API List

Below is the list of classes, methods, properties, and events included in this refactoring:

Tizen.WindowSystem.InputGesture

namespace Tizen.WindowSystem
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class InputGesture : IDisposable
    {
        public InputGesture();
        public void Dispose();

        // Events
        public event EventHandler<EdgeGestureEventArgs> EdgeSwipeDetected;
        public event EventHandler<EdgeGestureEventArgs> EdgeDragDetected;
        public event EventHandler<TapEventArgs> TapDetected;
        public event EventHandler<PalmCoverEventArgs> PalmCoverDetected;

        // Methods for Edge Swipe
        public void RegisterEdgeSwipe(int fingers, GestureEdge edge, GestureEdgeSize? edgeSize = null, int startPoint = 0, int endPoint = 0, GestureGrabMode? grabMode = null);
        public void UnregisterEdgeSwipe(int fingers, GestureEdge edge);
        public void SetEdgeSwipeSize(int fingers, GestureEdge edge, GestureEdgeSize edgeSize, int startPoint, int endPoint);

        // Methods for Edge Drag
        public void RegisterEdgeDrag(int fingers, GestureEdge edge, GestureEdgeSize? edgeSize = null, int startPoint = 0, int endPoint = 0, GestureGrabMode? grabMode = null);
        public void UnregisterEdgeDrag(int fingers, GestureEdge edge);
        public void SetEdgeDragSize(int fingers, GestureEdge edge, GestureEdgeSize edgeSize, int startPoint, int endPoint);

        // Methods for Tap
        public void RegisterTap(int fingers, int repeats, GestureGrabMode? grabMode = null);
        public void UnregisterTap(int fingers, int repeats);

        // Methods for Palm Cover
        public void RegisterPalmCover(GestureGrabMode? grabMode = null);
        public void UnregisterPalmCover();
    }
}

Tizen.WindowSystem.InputGenerator

namespace Tizen.WindowSystem
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class InputGenerator : IDisposable
    {
        public InputGenerator(string name = null, bool sync = false);
        public void Dispose();

        public void SendKey(string keyName, bool isPressed);
        public void SendWheel(WheelDirection wheelType, int value);
        public void SendPointer(int index, PointerAction action, int x, int y, InputGeneratorDevices device = InputGeneratorDevices.Pointer);
        public void SendPointer(int index, PointerAction action, int x, int y, double radiusX, double radiusY, double pressure, double angle, double palm);
    }
}

Tizen.WindowSystem.Shell.SoftkeyService

namespace Tizen.WindowSystem.Shell
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class SoftkeyService : IDisposable
    {
        public SoftkeyService(TizenShell tzShell, IWindowProvider win);
        public void Dispose();

        public event EventHandler<SoftkeyVisibleChangedEventArgs> VisibleChanged;
        public event EventHandler<SoftkeyExpandChangedEventArgs> ExpandChanged;
        public event EventHandler<SoftkeyOpacityChangedEventArgs> OpacityChanged;

        public void Show();
        public void Hide();
    }
}

Tizen.WindowSystem.Shell.SoftkeyClient

namespace Tizen.WindowSystem.Shell
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class SoftkeyClient : IDisposable
    {
        public SoftkeyClient(TizenShell tzShell, IWindowProvider win);
        public void Dispose();

        public bool IsVisible { get; }
        public bool IsExpandable { get; set; }
        public bool IsOpaque { get; set; }

        public void Show();
        public void Hide();
    }
}

Tizen.WindowSystem.Shell.KVMService

namespace Tizen.WindowSystem.Shell
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class KVMService : IDisposable
    {
        public KVMService(TizenShell tzShell, IWindowProvider win);
        public void Dispose();

        public event EventHandler DragStarted;
        public event EventHandler DragEnded;

        public void PerformDrop();
        public void PerformDrop(DropTarget target);
        public void CancelDrag();
        public void ReceiveDragData(string mimeType);
        public IEnumerable<string> GetSourceMimetypes();
        
        public void SetSecondarySelection();
        public void UnsetSecondarySelection();
    }
}

Tizen.WindowSystem.Shell.TaskbarService

namespace Tizen.WindowSystem.Shell
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class TaskbarService : IDisposable
    {
        public TaskbarService(TizenShell tzShell, IWindowProvider win, TaskbarPosition position = TaskbarPosition.Bottom);
        public void Dispose();

        public TaskbarPosition Position { get; set; }

        public void SetSize(int width, int height);
    }
}

Tizen.WindowSystem.Shell.QuickPanelService

namespace Tizen.WindowSystem.Shell
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class QuickPanelService : IDisposable
    {
        public QuickPanelService(TizenShell tzShell, IWindowProvider win, QuickPanelCategory type);
        public void Dispose();

        public QuickPanelEffect Effect { get; set; }
        public bool IsLocked { get; set; }
        public QuickPanelCategory ServiceType { get; }

        public void Show();
        public void Hide();
        public void SetContentRegion(uint angle, params (int x, int y, int widthm int height)[] regions);
        public void SetHandlerRegion(uint angle, params (int x, int y, int widthm int height)[] regions);
    }
}

Tizen.WindowSystem.Shell.QuickPanelClient

namespace Tizen.WindowSystem.Shell
{
    public class QuickPanelClient : IDisposable
    {
        public QuickPanelClient(TizenShell tzShell, IWindowProvider win, QuickPanelCategory type);
        public void Dispose();

        public event EventHandler<QuickPanelVisibility> VisibleChanged;
        public event EventHandler<WindowOrientation> OrientationChanged;
        public event EventHandler<int> RotationChanged;

        public QuickPanelVisibility Visibility { get; }
        public QuickPanelScrollMode ScrollMode { get; set; }
        public WindowOrientation Orientation { get; }

        public void Show();
        public void Hide();
    }
}

Tizen.WindowSystem.Shell.ScreensaverService

namespace Tizen.WindowSystem.Shell
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public class ScreensaverService : IDisposable
    {
        public ScreensaverService(TizenShell tzShell, IWindowProvider win);
        public void Dispose();
    }
}

Tizen.WindowSystem.Shell.TizenShell

namespace Tizen.WindowSystem.Shell
{
    public class TizenShell : IDisposable
    {
        public TizenShell();
        public void Dispose();
    }
}

@github-actions github-actions bot added the API14 Platform : Tizen 11.0 / TFM: net8.0-tizen11.0 label Feb 6, 2026
@TizenAPI-Bot
Copy link
Collaborator

Public API Changed

Please follow the ACR process for the changed API below.

Added: 39, Removed: 0, Changed: 0

Added

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelCategory

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::AppsMenu

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::ContextMenu

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::SystemDefault

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::Unknown

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelClient

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelClient::ScrollMode()

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelClient::Visibility()

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.WindowOrientation Tizen.WindowSystem.Shell.QuickPanelClient::Orientation()

+ /// <since_tizen>12</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::.ctor(Tizen.WindowSystem.Shell.TizenShell,Tizen.Common.IWindowProvider,Tizen.WindowSystem.Shell.QuickPanelCategory)

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Dispose()

+ /// <since_tizen>none</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Dispose(System.Boolean)

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Hide()

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Show()

+ /// <since_tizen>12</since_tizen
+ System.EventHandler`1<System.Int32> Tizen.WindowSystem.Shell.QuickPanelClient::RotationChanged

+ /// <since_tizen>8</since_tizen
+ System.EventHandler`1<Tizen.WindowSystem.Shell.QuickPanelVisibility> Tizen.WindowSystem.Shell.QuickPanelClient::VisibleChanged

+ /// <since_tizen>8</since_tizen
+ System.EventHandler`1<Tizen.WindowSystem.Shell.WindowOrientation> Tizen.WindowSystem.Shell.QuickPanelClient::OrientationChanged

+ /// <since_tizen>none</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelEffect

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelEffect Tizen.WindowSystem.Shell.QuickPanelEffect::Custom

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelEffect Tizen.WindowSystem.Shell.QuickPanelEffect::Move

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelEffect Tizen.WindowSystem.Shell.QuickPanelEffect::Swipe

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelScrollMode

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::NotScrollable

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::Retain

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::Scrollable

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::Unknown

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelVisibility

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelVisibility::Hidden

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelVisibility::Shown

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelVisibility::Unknown

+ /// <since_tizen>none</since_tizen
+ Tizen.WindowSystem.Shell.TaskbarPoition

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPoition Tizen.WindowSystem.Shell.TaskbarPoition::Bottom

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPoition Tizen.WindowSystem.Shell.TaskbarPoition::Left

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPoition Tizen.WindowSystem.Shell.TaskbarPoition::Right

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPoition Tizen.WindowSystem.Shell.TaskbarPoition::Top

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.TizenShell

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.TizenShell::.ctor()

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.TizenShell::Dispose()

+ /// <since_tizen>none</since_tizen
+ System.Void Tizen.WindowSystem.Shell.TizenShell::Dispose(System.Boolean)

Internal API Changed

Added: 177, Removed: 0, Changed: 0

/// </summary>
/// This class is need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public class SoftkeyClient : IDisposable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SoftkeyService와 SoftkeyClient 클래스의 역할이 각각 어떻게다른가요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SoftKey 제공자/요청자로 Service는 System에서, 앱은 Client를 사용해 Softkey상태 확인 및 show/hide 요청을 하는것으로 보입니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반대 같은데.. Softkey를 구현하는 앱에서 Softkey상태의 변화를 전달하기 위해서 제공되는 API를 사용하고,
SoftkeyService 객체에서는 Client에 의해서 변경된 상태에 대한 이벤트를 발생시키고, 이를 일반 다른 앱에서 수신해서 처리하는게 아닐까요?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다시 보니... Service가 Softkey를 구현하는 것이고, Client는 이를 제어 (열고 닫고 show, hide)하는 요청을 보내기 위한 IPC API인거군요...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네, Client가 SoftKey 상태를 확인하고 제어 요청을 하고, Service가 Client의 요청에 따라 SoftKey를 실제 조정하는것으로 보입니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JoonghyunCho 님 말씀대로 Softkey Service는 실제 Softkey를 제공하는 service app으로 서버의 softkey state 변경 이벤트를 받아 처리하고,
Softkey client는 softkey의 상태 확인과 요청을 위한 클래스입니다.

/// the drag data will be received by the DragEvent of the window.
/// </summary>
/// <exception cref="ArgumentException">Thrown when failed of invalid argument.</exception>
public void ReceiveDragData(string mimeType)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 API는 특정 상황(drag가 발생한 상황)에서만 valid한 값을 제공할 것 같은데, 이렇게 일반적으로 접근 가능한 API로 제공하는게 맞나요?
정확한 동작 시나리오는 모르겠지만, 만약 특정 상황에서(event)만 valid한 API가 맞다면 event의 event args를 통해 제공하는 객체에서 제공하는 API로 제고하는게 좋을것 같네요

/// If there are no mimetype, returns null.
/// </returns>
/// <exception cref="ArgumentException">Thrown when failed of invalid argument.</exception>
public IEnumerable<string> GetSourceMimetypes()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

/// </summary>
/// This class is need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public class KVMService : IDisposable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 클래스의 목적/ 역할을 잘 모르겠습니다.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

KVM Service는 Keyboard, Video, Mouse 공유 환경 지원을 위한 서비스입니다. 기기간 Copy&Paste, Drag & drop을 지원하기 위한 클래스입니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그리도 모호하네요
KVM서비스에서 서버역할 (마우스/키보드 이벤트 소스를 제공하는)을 하는 객체인지,
클라이언트 (마우스/키보드 이벤트를 수신해서, 시스템의 이벤트로 feeding하는) 역할을 하는건지 잘 모르겠고, 정획하 외부에서 어떤 방식으로 타이젠의 KVMService에 연결할 수 있는건지에 대한 정보도 없고 반대로 어떤 방식으로 타이젠이 다른 KVMService에서 클라이언트로서 연결할 수 있는지에 대한 설명/ 방법이 없는것 같습니다.

/// </privilege>
/// This class is need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public class InputGesture : IDisposable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

클래스 이름과 역할이 잘 매치가 안됩니다. 정확히는 이 클래스의 목적이 API만 보고는 잘 모르겠습니다.

API만으로 파악하면 CreateEdgeSwipe를 통해 만들어진 객체를 통해 EdgeSwipe에 대한 동작을 detect할 수 있는것으로 보입니다.

그렇다면 EdgeSwipeGesture를 위한 별도 객체가 불필요할 것 같고, 그냥 이 클래스 자체에서 이벤트를 수신하는 것이 더 적합합니다.

native에서 단순하게 gesture를 검출할 영역을 구조체로 전달하는 것을 C#으로 오다보니 구조체 -> 클래스 로 변경되어 버린것 같습니다.

lifetime의존도도 InputGesture객체가 live할때만, Gesture 객체들이 live할수 있는것 같습니다.
따라서 gesture객체들은 노출하지 않는게 맞는것 같습니다.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EdgeSwipe, EdgeDrag, Tap, PalmCover 각각 class에서 직접 Register/Grab하는 형태로 리팩토링 하였습니다

/// Enumeration of pointer event types.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public enum PointerAction
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action보단 State가 더 일반적으로 사용하는 용어 같네요

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

InputGenerator를 통해 발생시킬 event라 action으로 유지하였습니다

/// </privilege>
/// This class is need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public class InputGenerator : IDisposable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Android의 https://developer.android.com/reference/android/app/Instrumentation 를 참고하면 좋을 것 같습니다.

/// <param name="width">The width of the taskbar area.</param>
/// <param name="height">The height of the taskbar area.</param>
/// <exception cref="ArgumentException">Thrown when failed of invalid argument.</exception>
public void ReSize(uint width, uint height)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naming: Method name ReSize violates casing conventions. Suggestion: Rename to Resize.

@TizenAPI-Bot
Copy link
Collaborator

Public API Changed

Please follow the ACR process for the changed API below.

Added: 39, Removed: 33, Changed: 0

Added

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelCategory

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::AppsMenu

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::ContextMenu

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::SystemDefault

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelCategory Tizen.WindowSystem.Shell.QuickPanelCategory::Unknown

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelClient

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelClient::ScrollMode()

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelClient::Visibility()

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.WindowOrientation Tizen.WindowSystem.Shell.QuickPanelClient::Orientation()

+ /// <since_tizen>12</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::.ctor(Tizen.WindowSystem.Shell.TizenShell,Tizen.Common.IWindowProvider,Tizen.WindowSystem.Shell.QuickPanelCategory)

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Dispose()

+ /// <since_tizen>none</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Dispose(System.Boolean)

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Hide()

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.QuickPanelClient::Show()

+ /// <since_tizen>12</since_tizen
+ System.EventHandler`1<System.Int32> Tizen.WindowSystem.Shell.QuickPanelClient::RotationChanged

+ /// <since_tizen>8</since_tizen
+ System.EventHandler`1<Tizen.WindowSystem.Shell.QuickPanelVisibility> Tizen.WindowSystem.Shell.QuickPanelClient::VisibleChanged

+ /// <since_tizen>8</since_tizen
+ System.EventHandler`1<Tizen.WindowSystem.Shell.WindowOrientation> Tizen.WindowSystem.Shell.QuickPanelClient::OrientationChanged

+ /// <since_tizen>none</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelEffect

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelEffect Tizen.WindowSystem.Shell.QuickPanelEffect::Custom

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelEffect Tizen.WindowSystem.Shell.QuickPanelEffect::Move

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelEffect Tizen.WindowSystem.Shell.QuickPanelEffect::Swipe

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelScrollMode

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::NotScrollable

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::Retain

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::Scrollable

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelScrollMode Tizen.WindowSystem.Shell.QuickPanelScrollMode::Unknown

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.QuickPanelVisibility

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelVisibility::Hidden

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelVisibility::Shown

+ /// <since_tizen>8</since_tizen
+ static Tizen.WindowSystem.Shell.QuickPanelVisibility Tizen.WindowSystem.Shell.QuickPanelVisibility::Unknown

+ /// <since_tizen>none</since_tizen
+ Tizen.WindowSystem.Shell.TaskbarPosition

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPosition Tizen.WindowSystem.Shell.TaskbarPosition::Bottom

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPosition Tizen.WindowSystem.Shell.TaskbarPosition::Left

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPosition Tizen.WindowSystem.Shell.TaskbarPosition::Right

+ /// <since_tizen>none</since_tizen
+ static Tizen.WindowSystem.Shell.TaskbarPosition Tizen.WindowSystem.Shell.TaskbarPosition::Top

+ /// <since_tizen>8</since_tizen
+ Tizen.WindowSystem.Shell.TizenShell

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.TizenShell::.ctor()

+ /// <since_tizen>8</since_tizen
+ System.Void Tizen.WindowSystem.Shell.TizenShell::Dispose()

+ /// <since_tizen>none</since_tizen
+ System.Void Tizen.WindowSystem.Shell.TizenShell::Dispose(System.Boolean)

Removed

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient

- /// <since_tizen>8</since_tizen
- Tizen.NUI.Window/WindowOrientation Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Orientation()

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Scrollable()

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Visible()

- /// <since_tizen>12</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::.ctor(Tizen.NUI.WindowSystem.Shell.TizenShell,Tizen.Common.IWindowProvider,Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::.ctor(Tizen.NUI.WindowSystem.Shell.TizenShell,Tizen.NUI.Window,Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Dispose()

- /// <since_tizen>none</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Dispose(Tizen.NUI.DisposeTypes)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Finalize()

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Hide()

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Show()

- /// <since_tizen>12</since_tizen
- System.EventHandler`1<System.Int32> Tizen.NUI.WindowSystem.Shell.QuickPanelClient::RotationChanged

- /// <since_tizen>8</since_tizen
- System.EventHandler`1<Tizen.NUI.Window/WindowOrientation> Tizen.NUI.WindowSystem.Shell.QuickPanelClient::OrientationChanged

- /// <since_tizen>8</since_tizen
- System.EventHandler`1<Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState> Tizen.NUI.WindowSystem.Shell.QuickPanelClient::VisibleChanged

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Retain

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Set

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Unknown

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Unset

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::AppsMenu

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::ContextMenu

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::SystemDefault

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::Unknown

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState::Hidden

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState::Shown

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState::Unknown

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.TizenShell

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::.ctor()

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::Dispose()

- /// <since_tizen>none</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::Dispose(Tizen.NUI.DisposeTypes)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::Finalize()

Internal API Changed

Added: 151, Removed: 196, Changed: 0

@TizenAPI-Bot
Copy link
Collaborator

Public API Changed

Please follow the ACR process for the changed API below.
Added: 39, Removed: 66, Changed: 4

Internal API Changed

Added: 180, Removed: 206, Changed: 1

@TizenAPI-Bot
Copy link
Collaborator

Public API Changed

Please follow the ACR process for the changed API below.

Added: 0, Removed: 66, Changed: 4

Removed

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.FaceInfo

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.FaceInfo::Id()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.FaceInfo::MediaInfoId()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.FaceInfo::Tag()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.Orientation Tizen.Content.MediaContent.FaceInfo::Orientation()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.Rectangle Tizen.Content.MediaContent.FaceInfo::Rect()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.FaceInfo::ToString()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.FaceInfoColumns

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.FaceInfoColumns::Id()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.FaceInfoColumns::Tag()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.FaceInfoCommand

- /// <privilege>http://tizen.org/privilege/content.write</privilege
- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Boolean Tizen.Content.MediaContent.FaceInfoCommand::Delete(System.String)

- /// <privilege>http://tizen.org/privilege/content.write</privilege
- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Boolean Tizen.Content.MediaContent.FaceInfoCommand::UpdateTag(System.String,System.String)

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Void Tizen.Content.MediaContent.FaceInfoCommand::.ctor(Tizen.Content.MediaContent.MediaDatabase)

- /// <privilege>http://tizen.org/privilege/content.write</privilege
- /// <since_tizen>6</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.FaceInfo Tizen.Content.MediaContent.FaceInfoCommand::Insert(System.String,Tizen.Content.MediaContent.Rectangle,Tizen.Content.MediaContent.Orientation,System.String)

- /// <privilege>http://tizen.org/privilege/content.write</privilege
- /// <since_tizen>6</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.FaceInfo Tizen.Content.MediaContent.FaceInfoCommand::Insert(System.String,Tizen.Content.MediaContent.Rectangle,Tizen.Content.MediaContent.Orientation)

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.MediaDataReader`1<Tizen.Content.MediaContent.FaceInfo> Tizen.Content.MediaContent.FaceInfoCommand::Select()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.MediaDataReader`1<Tizen.Content.MediaContent.FaceInfo> Tizen.Content.MediaContent.FaceInfoCommand::Select(Tizen.Content.MediaContent.SelectArguments)

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Double Tizen.Content.MediaContent.ImageInfo::FNumber()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Int32 Tizen.Content.MediaContent.ImageInfo::Iso()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.ImageInfo::ExposureTime()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.String Tizen.Content.MediaContent.ImageInfo::Model()

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Int32 Tizen.Content.MediaContent.MediaInfoCommand::CountFaceInfo(System.String,Tizen.Content.MediaContent.CountArguments)

- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Int32 Tizen.Content.MediaContent.MediaInfoCommand::CountFaceInfo(System.String)

- /// <privilege>http://tizen.org/privilege/content.write</privilege
- /// <privilege>http://tizen.org/feature/vision.face_recognition</privilege
- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Threading.Tasks.Task`1<System.Int32> Tizen.Content.MediaContent.MediaInfoCommand::DetectFaceAsync(System.String,System.Threading.CancellationToken)

- /// <privilege>http://tizen.org/privilege/content.write</privilege
- /// <privilege>http://tizen.org/feature/vision.face_recognition</privilege
- /// <since_tizen>4</since_tizen
- [Obsolete]
- System.Threading.Tasks.Task`1<System.Int32> Tizen.Content.MediaContent.MediaInfoCommand::DetectFaceAsync(System.String)

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.MediaDataReader`1<Tizen.Content.MediaContent.FaceInfo> Tizen.Content.MediaContent.MediaInfoCommand::SelectFaceInfo(System.String,Tizen.Content.MediaContent.SelectArguments)

- /// <since_tizen>4</since_tizen
- [Obsolete]
- Tizen.Content.MediaContent.MediaDataReader`1<Tizen.Content.MediaContent.FaceInfo> Tizen.Content.MediaContent.MediaInfoCommand::SelectFaceInfo(System.String)

- /// <since_tizen>3</since_tizen
- [Obsolete]
- System.Void Tizen.Multimedia.Display::.ctor(ElmSharp.Window)

- /// <since_tizen>3</since_tizen
- [Obsolete]
- System.Void Tizen.Multimedia.Display::.ctor(Tizen.Multimedia.MediaView)

- /// <since_tizen>3</since_tizen
- Tizen.Multimedia.MediaView

- /// <since_tizen>3</since_tizen
- System.IntPtr Tizen.Multimedia.MediaView::CreateHandle(ElmSharp.EvasObject)

- /// <since_tizen>3</since_tizen
- System.Void Tizen.Multimedia.MediaView::.ctor(ElmSharp.EvasObject)

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient

- /// <since_tizen>8</since_tizen
- Tizen.NUI.Window/WindowOrientation Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Orientation()

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Scrollable()

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Visible()

- /// <since_tizen>12</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::.ctor(Tizen.NUI.WindowSystem.Shell.TizenShell,Tizen.Common.IWindowProvider,Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::.ctor(Tizen.NUI.WindowSystem.Shell.TizenShell,Tizen.NUI.Window,Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Dispose()

- /// <since_tizen>none</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Dispose(Tizen.NUI.DisposeTypes)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Finalize()

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Hide()

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.QuickPanelClient::Show()

- /// <since_tizen>12</since_tizen
- System.EventHandler`1<System.Int32> Tizen.NUI.WindowSystem.Shell.QuickPanelClient::RotationChanged

- /// <since_tizen>8</since_tizen
- System.EventHandler`1<Tizen.NUI.Window/WindowOrientation> Tizen.NUI.WindowSystem.Shell.QuickPanelClient::OrientationChanged

- /// <since_tizen>8</since_tizen
- System.EventHandler`1<Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState> Tizen.NUI.WindowSystem.Shell.QuickPanelClient::VisibleChanged

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Retain

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Set

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Unknown

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/ScrollableState::Unset

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::AppsMenu

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::ContextMenu

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::SystemDefault

- /// <since_tizen>none</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types Tizen.NUI.WindowSystem.Shell.QuickPanelClient/Types::Unknown

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState::Hidden

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState::Shown

- /// <since_tizen>8</since_tizen
- static Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState Tizen.NUI.WindowSystem.Shell.QuickPanelClient/VisibleState::Unknown

- /// <since_tizen>8</since_tizen
- Tizen.NUI.WindowSystem.Shell.TizenShell

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::.ctor()

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::Dispose()

- /// <since_tizen>none</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::Dispose(Tizen.NUI.DisposeTypes)

- /// <since_tizen>8</since_tizen
- System.Void Tizen.NUI.WindowSystem.Shell.TizenShell::Finalize()

Changed

/// <since_tizen>3</since_tizen
+ [Obsolete]
Tizen.Multimedia.TonePlayer

/// <since_tizen>3</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task Tizen.Multimedia.TonePlayer::StartAsync(Tizen.Multimedia.ToneType,Tizen.Multimedia.AudioStreamPolicy,System.Int32,System.Threading.CancellationToken)

/// <since_tizen>3</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task Tizen.Multimedia.TonePlayer::StartAsync(Tizen.Multimedia.ToneType,Tizen.Multimedia.AudioStreamPolicy,System.Int32)

/// <since_tizen>3</since_tizen
+ [Obsolete]
Tizen.Multimedia.ToneType

Internal API Changed

Added: 219, Removed: 206, Changed: 1

@TizenAPI-Bot
Copy link
Collaborator

Internal API Changed

Added: 186, Removed: 0, Changed: 0

/// </summary>
/// This class is need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public class SoftkeyClient : IDisposable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반대 같은데.. Softkey를 구현하는 앱에서 Softkey상태의 변화를 전달하기 위해서 제공되는 API를 사용하고,
SoftkeyService 객체에서는 Client에 의해서 변경된 상태에 대한 이벤트를 발생시키고, 이를 일반 다른 앱에서 수신해서 처리하는게 아닐까요?

@myroot
Copy link
Contributor

myroot commented Mar 3, 2026

새롭게 추가되는 클래스에 대해서 사용성 평가(?) 즉 써보지 않고 / 해당 API를 사용해서 관련 모듈을 만들어보지 않고,
릴리즈 된 이후에는 freeze되어야할 API를 내놓는게 조금 걱정스럽습니다.

@JoonghyunCho
Copy link
Member Author

새롭게 추가되는 클래스에 대해서 사용성 평가(?) 즉 써보지 않고 / 해당 API를 사용해서 관련 모듈을 만들어보지 않고, 릴리즈 된 이후에는 freeze되어야할 API를 내놓는게 조금 걱정스럽습니다.

우선 TizenFX/test 하위 3개의 WindowSystem test를 Migration 해보겠습니다, 혹은 작업 후 모듈 담당자에게 어떻게 테스트 해보면 좋을지 문의해보겠습니다.

@myroot
Copy link
Contributor

myroot commented Mar 3, 2026

실제 사용 시나리오가 있는 Taskbar Service 정도만 개선해서 추가하는게 어떨까요? 또는 InputGenerator정도만 개선하고 나머지는 사용시나리오가 명확해지고 실제 사용처가 나올때 개선하는것이 좋을것 같습니다.

@TizenAPI-Bot
Copy link
Collaborator

Internal API Changed

Added: 178, Removed: 0, Changed: 0

@TizenAPI-Bot
Copy link
Collaborator

Internal API Changed

Added: 178, Removed: 0, Changed: 0

@oduna00
Copy link

oduna00 commented Mar 5, 2026

안녕하세요, @JoonghyunCho 님.
InputGenerator에 device 타입을 all로 요청해도 되지만, 타입을 명시 (keyboard / pointer / touchscreen) 하면 서버에서는 명시한 타입으로 device 하나만 생성하고 있습니다.

@JoonghyunCho JoonghyunCho force-pushed the refactor-windowsystem-re branch from d9f7443 to 0ef5862 Compare March 10, 2026 04:55
@TizenAPI-Bot
Copy link
Collaborator

Internal API Changed

Added: 178, Removed: 0, Changed: 0

@JoonghyunCho
Copy link
Member Author

JoonghyunCho commented Mar 10, 2026

안녕하세요, @JoonghyunCho 님. InputGenerator에 device 타입을 all로 요청해도 되지만, 타입을 명시 (keyboard / pointer / touchscreen) 하면 서버에서는 명시한 타입으로 device 하나만 생성하고 있습니다.

@oduna00 안녕하세요, 리뷰 감사드립니다. InputGenerator는 SendKey(), SendPointer(), SendWheel(),.. 과 같이 모든 디바이스 타입의 기능이 지원되고 있습니다. 그래서 type역시 모든 기능을 커버할 수 있게 생성하였습니다.
서버에서 All로 생성하는 경우 오버헤드가 있을까요? 필요하다면 최초 type의 설정에 따라 불일치 함수에서는 InvalidOperationException을 발생하는것이 더 효율적일까요?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API14 Platform : Tizen 11.0 / TFM: net8.0-tizen11.0 Internal API Changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants