ソースを参照

feat(api): add `{LogicalPosition,LogicalSize}.toPhysical` method (#11031)

closes #11008
Amr Bashir 10 ヶ月 前
コミット
ddf69157b5

+ 6 - 0
.changes/api-to-physical.md

@@ -0,0 +1,6 @@
+---
+"@tauri-apps/api": "patch:feat"
+---
+
+Add `toPhysical` method on `LogicalPositon` and `LogicalSize` classes.
+

ファイルの差分が大きいため隠しています
+ 0 - 0
crates/tauri/scripts/bundle.global.js


+ 36 - 2
packages/api/src/dpi.ts

@@ -16,6 +16,23 @@ class LogicalSize {
     this.width = width
     this.height = height
   }
+
+  /**
+   * Converts the logical size to a physical one.
+   * @example
+   * ```typescript
+   * import { getCurrentWindow } from '@tauri-apps/api/window';
+   * const appWindow = getCurrentWindow();
+   * const factor = await appWindow.scaleFactor();
+   * const size = new LogicalSize(400, 500);
+   * const physical = size.toPhysical(factor);
+   * ```
+   *
+   * @since 2.0.0
+   */
+  toPhysical(scaleFactor: number): PhysicalSize {
+    return new PhysicalSize(this.width * scaleFactor, this.height * scaleFactor)
+  }
 }
 
 /**
@@ -43,7 +60,7 @@ class PhysicalSize {
    * const size = await appWindow.innerSize();
    * const logical = size.toLogical(factor);
    * ```
-   *  */
+   */
   toLogical(scaleFactor: number): LogicalSize {
     return new LogicalSize(this.width / scaleFactor, this.height / scaleFactor)
   }
@@ -63,6 +80,23 @@ class LogicalPosition {
     this.x = x
     this.y = y
   }
+
+  /**
+   * Converts the logical position to a physical one.
+   * @example
+   * ```typescript
+   * import { getCurrentWindow } from '@tauri-apps/api/window';
+   * const appWindow = getCurrentWindow();
+   * const factor = await appWindow.scaleFactor();
+   * const position = new LogicalPosition(400, 500);
+   * const physical = position.toPhysical(factor);
+   * ```
+   *
+   * @since 2.0.0
+   */
+  toPhysical(scaleFactor: number): PhysicalPosition {
+    return new PhysicalPosition(this.x * scaleFactor, this.x * scaleFactor)
+  }
 }
 
 /**
@@ -90,7 +124,7 @@ class PhysicalPosition {
    * const position = await appWindow.innerPosition();
    * const logical = position.toLogical(factor);
    * ```
-   * */
+   */
   toLogical(scaleFactor: number): LogicalPosition {
     return new LogicalPosition(this.x / scaleFactor, this.y / scaleFactor)
   }

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません