[NUI] Implements a BorderWindow
authorjoogab.yun <joogab.yun@samsung.com>
Mon, 11 Apr 2022 02:08:24 +0000 (11:08 +0900)
committerJaehyun Cho <jaehyun0cho@gmail.com>
Wed, 20 Apr 2022 08:38:08 +0000 (17:38 +0900)
commit208f54754a1dd55dc9ea94250a6f2ccfcf3fcd8a
treebdb9ddfef48d029c9c62bde845e8575c645a944a
parent97675c8a059f18aff9b0fef8964dd67ce3aeb5b5
[NUI] Implements a BorderWindow
1. Requirements :
 Like the desktop environment,
 - It should be possible to resize and move by adding a border area to the window.
 - By adding buttons to the border area, each button should have a minimize, maximize, and close function.
 - Border UI should be customizable.

2. interface IBorderInterface
 - User can configure border UI by inheriting IBorderInterface.

3. class DefautBorder is the default border UI.
 - User can also override the function by inheriting this DefaultBorder.

4. Sample
 - DefautBorder
```c#
  // If null is set for the second argument when creating a window, it is configured as DefaultBorder UI.
  subWindow = new Window("subwin", null, new Rectangle(20, 20, 800, 800), false);
```

 - CustomBorder
```c#
  class CustomBorder : DefaultBorder
  {
    public override voide CreateBorderView(View rootView)
    {
      // create custom border UI
      var custom = new View();
      rootView.Add(custom);
    }
  }

  void init()
  {
    CustomBorder border = new CustomBorder();
    var subWindow =  new Window("subwin", border, new Rectangle(60, 20, 800, 800), false);
  }
```
20 files changed:
src/Tizen.NUI/res/close.png [new file with mode: 0644]
src/Tizen.NUI/res/dark_close.png [new file with mode: 0644]
src/Tizen.NUI/res/dark_leftCorner.png [new file with mode: 0644]
src/Tizen.NUI/res/dark_maximalize.png [new file with mode: 0644]
src/Tizen.NUI/res/dark_minimalize.png [new file with mode: 0644]
src/Tizen.NUI/res/dark_rightCorner.png [new file with mode: 0644]
src/Tizen.NUI/res/dark_smallwindow.png [new file with mode: 0644]
src/Tizen.NUI/res/leftCorner.png [new file with mode: 0644]
src/Tizen.NUI/res/maximalize.png [new file with mode: 0644]
src/Tizen.NUI/res/minimalize.png [new file with mode: 0644]
src/Tizen.NUI/res/rightCorner.png [new file with mode: 0644]
src/Tizen.NUI/res/smallwindow.png [new file with mode: 0644]
src/Tizen.NUI/src/public/Application/NUIApplication.cs
src/Tizen.NUI/src/public/Common/Layer.cs
src/Tizen.NUI/src/public/Window/BorderWindow.cs [new file with mode: 0755]
src/Tizen.NUI/src/public/Window/DefaultBorder.cs [new file with mode: 0755]
src/Tizen.NUI/src/public/Window/IBorderInterface.cs [new file with mode: 0755]
src/Tizen.NUI/src/public/Window/Window.cs
src/Tizen.NUI/src/public/Window/WindowEvent.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/BorderWindowTest.cs [new file with mode: 0755]