檢視原始碼 wxRegion (wx v2.4.3)

wxRegion 代表裝置上下文或視窗上的簡單或複雜區域。

這個類別在內部使用參考計數和寫入時複製,因此這個類別的兩個實例之間的賦值非常便宜。因此,您可以使用實際物件而不是指標,而不會有效率問題。如果這個類別的實例被更改,它將在內部建立自己的資料,以便先前使用參考計數共享資料的其他實例不受影響。

預定義物件(包含 wx.hrl)

  • ?wxNullRegion

wxWidgets 文件:wxRegion

摘要

函式

清除目前的區域。

傳回一個值,指示給定的矩形是否包含在區域內。

傳回一個值,指示給定的點是否包含在區域內。

傳回一個值,指示給定的矩形是否包含在區域內。

將區域轉換為黑白點陣圖,白色像素在區域內。

銷毀物件

找出此區域與另一個區域的交集。

找出此區域與另一個以位置和大小指定的矩形區域的交集。

如果區域為空,則傳回 true,否則傳回 false。

預設建構子。

使用點陣圖建構一個區域。

從左上點和右下點建構一個矩形區域。

使用給定的位置和大小建構一個矩形區域。

將區域在水平和垂直方向上移動指定的偏移量。

從此區域減去一個區域。

找出此區域與另一個矩形區域的聯集。

找出此區域與點陣圖的非透明像素的聯集。

找出此區域與另一個以位置和大小指定的矩形區域的聯集。

找出此區域與另一個區域的互斥或。

找出此區域與另一個以位置和大小指定的矩形區域的互斥或。

類型

-type wxRegion() :: wx:wx_object().

函式

-spec clear(This) -> ok when This :: wxRegion().

清除目前的區域。

物件在清除後會變為無效或 null。

-spec contains(This, Pt) -> wx:wx_enum() when This :: wxRegion(), Pt :: {X :: integer(), Y :: integer()};
              (This, Rect) -> wx:wx_enum()
                  when
                      This :: wxRegion(),
                      Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.

傳回一個值,指示給定的矩形是否包含在區域內。

這個方法對於無效的區域總是傳回 wxOutRegion,但在這種情況下仍然可以安全地呼叫。

傳回:?wxOutRegion、?wxPartRegion 或 ?wxInRegion 其中之一。

注意:在 Windows 上,只會傳回 ?wxOutRegion 和 ?wxInRegion;值 ?wxInRegion 則表示區域的全部或部分包含在此區域中。

-spec contains(This, X, Y) -> wx:wx_enum() when This :: wxRegion(), X :: integer(), Y :: integer().

傳回一個值,指示給定的點是否包含在區域內。

這個方法對於無效的區域總是傳回 wxOutRegion,但在這種情況下仍然可以安全地呼叫。

傳回:傳回值為 wxOutRegionwxInRegion 其中之一。

連結至此函式

contains(This, X, Y, Width, Height)

檢視原始碼
-spec contains(This, X, Y, Width, Height) -> wx:wx_enum()
                  when
                      This :: wxRegion(),
                      X :: integer(),
                      Y :: integer(),
                      Width :: integer(),
                      Height :: integer().

傳回一個值,指示給定的矩形是否包含在區域內。

這個方法對於無效的區域總是傳回 wxOutRegion,但在這種情況下仍然可以安全地呼叫。

傳回:?wxOutRegion、?wxPartRegion 或 ?wxInRegion 其中之一。

注意:在 Windows 上,只會傳回 ?wxOutRegion 和 ?wxInRegion;值 ?wxInRegion 則表示區域的全部或部分包含在此區域中。

-spec convertToBitmap(This) -> wxBitmap:wxBitmap() when This :: wxRegion().

將區域轉換為黑白點陣圖,白色像素在區域內。

此方法不能用於無效的區域。

-spec destroy(This :: wxRegion()) -> ok.

銷毀物件

-spec getBox(This) -> {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}
                when This :: wxRegion().
-spec intersect(This, Rect) -> boolean()
                   when
                       This :: wxRegion(),
                       Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()};
               (This, Region) -> boolean() when This :: wxRegion(), Region :: wxRegion().

找出此區域與另一個區域的交集。

如果此區域無效,此方法總是會失敗,即傳回 false,但在這種情況下仍然可以安全地使用。

傳回:如果成功,則為 true,否則為 false。

備註:建立兩個區域的交集,也就是兩個區域中都有的部分。結果會儲存在此區域中。

連結至此函式

intersect(This, X, Y, Width, Height)

檢視原始碼
-spec intersect(This, X, Y, Width, Height) -> boolean()
                   when
                       This :: wxRegion(),
                       X :: integer(),
                       Y :: integer(),
                       Width :: integer(),
                       Height :: integer().

找出此區域與另一個以位置和大小指定的矩形區域的交集。

如果此區域無效,此方法總是會失敗,即傳回 false,但在這種情況下仍然可以安全地使用。

傳回:如果成功,則為 true,否則為 false。

備註:建立兩個區域的交集,也就是兩個區域中都有的部分。結果會儲存在此區域中。

-spec isEmpty(This) -> boolean() when This :: wxRegion().

如果區域為空,則傳回 true,否則傳回 false。

如果區域無效,則總是傳回 true。

-spec new() -> wxRegion().

預設建構子。

此建構子會建立一個無效或 null 的物件,也就是說,對它呼叫 IsOk() 會傳回 false,而 isEmpty/1 會傳回 true。

-spec new(Rect) -> wxRegion()
             when Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()};
         (Bmp) -> wxRegion() when Bmp :: wxBitmap:wxBitmap().

使用點陣圖建構一個區域。

更多詳細資訊,請參閱 union/5

連結至此函式

new(TopLeft, BottomRight)

檢視原始碼
-spec new(TopLeft, BottomRight) -> wxRegion()
             when
                 TopLeft :: {X :: integer(), Y :: integer()},
                 BottomRight :: {X :: integer(), Y :: integer()}.

從左上點和右下點建構一個矩形區域。

連結至此函式

new(X, Y, Width, Height)

檢視原始碼
-spec new(X, Y, Width, Height) -> wxRegion()
             when X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().

使用給定的位置和大小建構一個矩形區域。

-spec offset(This, Pt) -> boolean() when This :: wxRegion(), Pt :: {X :: integer(), Y :: integer()}.
-spec offset(This, X, Y) -> boolean() when This :: wxRegion(), X :: integer(), Y :: integer().

將區域在水平和垂直方向上移動指定的偏移量。

如果區域無效,則不能呼叫此方法,因為那樣做沒有意義。嘗試這樣做會導致斷言失敗。

傳回:如果成功則為 true,否則為 false(然後區域不變)。

-spec subtract(This, Rect) -> boolean()
                  when
                      This :: wxRegion(),
                      Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()};
              (This, Region) -> boolean() when This :: wxRegion(), Region :: wxRegion().

從此區域減去一個區域。

如果此區域無效,此方法總是會失敗,即傳回 false,但在這種情況下仍然可以安全地使用。

傳回:如果成功,則為 true,否則為 false。

備註:此操作會合併「此」區域中不屬於第二個區域的部分。結果會儲存在此區域中。

-spec union(This, Region) -> boolean()
               when This :: wxRegion(), Region :: wxRegion:wxRegion() | wxBitmap:wxBitmap();
           (This, Rect) -> boolean()
               when
                   This :: wxRegion(),
                   Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.

找出此區域與另一個矩形區域的聯集。

即使此區域無效,也可以使用此方法,並且在這種情況下具有自然行為,也就是說,使此區域等於給定的矩形。

傳回:如果成功,則為 true,否則為 false。

備註:此操作會建立一個結合此區域和第二個區域的所有部分的區域。結果會儲存在此區域中。

連結至此函式

union(This, Bmp, TransColour)

檢視原始碼
-spec union(This, Bmp, TransColour) -> boolean()
               when This :: wxRegion(), Bmp :: wxBitmap:wxBitmap(), TransColour :: wx:wx_colour().

等同於 union(This, Bmp, TransColour, [])

-spec union(This, Bmp, TransColour, [Option]) -> boolean()
               when
                   This :: wxRegion(),
                   Bmp :: wxBitmap:wxBitmap(),
                   TransColour :: wx:wx_colour(),
                   Option :: {tolerance, integer()}.

找出此區域與點陣圖的非透明像素的聯集。

transColour 引數中指定要視為透明的顏色,以及一個可選的顏色容差值。

傳回:如果成功,則為 true,否則為 false。

備註:此操作會建立一個結合此區域和第二個區域的所有部分的區域。結果會儲存在此區域中。

連結至此函式

union(This, X, Y, Width, Height)

檢視原始碼
-spec union(This, X, Y, Width, Height) -> boolean()
               when
                   This :: wxRegion(),
                   X :: integer(),
                   Y :: integer(),
                   Width :: integer(),
                   Height :: integer().

找出此區域與另一個以位置和大小指定的矩形區域的聯集。

即使此區域無效,也可以使用此方法,並且在這種情況下具有自然行為,也就是說,使此區域等於給定的矩形。

傳回:如果成功,則為 true,否則為 false。

備註:此操作會建立一個結合此區域和第二個區域的所有部分的區域。結果會儲存在此區域中。

-spec 'Xor'(This, Rect) -> boolean()
               when
                   This :: wxRegion(),
                   Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()};
           (This, Region) -> boolean() when This :: wxRegion(), Region :: wxRegion().

找出此區域與另一個區域的互斥或。

即使此區域無效,也可以使用此方法,並且在這種情況下具有自然行為,也就是說,使此區域等於給定的 region

傳回:如果成功,則為 true,否則為 false。

備註:此操作會建立一個結合此區域和第二個區域的所有部分,但會排除任何重疊區域的區域。結果會儲存在此區域中。

連結至此函式

'Xor'(This, X, Y, Width, Height)

檢視原始碼
-spec 'Xor'(This, X, Y, Width, Height) -> boolean()
               when
                   This :: wxRegion(),
                   X :: integer(),
                   Y :: integer(),
                   Width :: integer(),
                   Height :: integer().

找出此區域與另一個以位置和大小指定的矩形區域的互斥或。

即使此區域無效,也可以使用此方法,並且在這種情況下具有自然行為,也就是說,使此區域等於給定的矩形。

傳回:如果成功,則為 true,否則為 false。

備註:此操作會建立一個結合此區域和第二個區域的所有部分,但會排除任何重疊區域的區域。結果會儲存在此區域中。