檢視原始碼 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
,但在這種情況下仍然可以安全地呼叫。
傳回:傳回值為 wxOutRegion
和 wxInRegion
其中之一。
-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 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。
備註:建立兩個區域的交集,也就是兩個區域中都有的部分。結果會儲存在此區域中。
-spec intersect(This, X, Y, Width, Height) -> boolean() when This :: wxRegion(), X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().
找出此區域與另一個以位置和大小指定的矩形區域的交集。
如果此區域無效,此方法總是會失敗,即傳回 false,但在這種情況下仍然可以安全地使用。
傳回:如果成功,則為 true,否則為 false。
備註:建立兩個區域的交集,也就是兩個區域中都有的部分。結果會儲存在此區域中。
如果區域為空,則傳回 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
。
-spec new(TopLeft, BottomRight) -> wxRegion() when TopLeft :: {X :: integer(), Y :: integer()}, BottomRight :: {X :: integer(), Y :: integer()}.
從左上點和右下點建構一個矩形區域。
-spec new(X, Y, Width, Height) -> wxRegion() when X :: integer(), Y :: integer(), Width :: integer(), Height :: 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。
備註:此操作會建立一個結合此區域和第二個區域的所有部分的區域。結果會儲存在此區域中。
-spec union(This, Bmp, TransColour) -> boolean() when This :: wxRegion(), Bmp :: wxBitmap:wxBitmap(), TransColour :: wx:wx_colour().
-spec union(This, Bmp, TransColour, [Option]) -> boolean() when This :: wxRegion(), Bmp :: wxBitmap:wxBitmap(), TransColour :: wx:wx_colour(), Option :: {tolerance, integer()}.
找出此區域與點陣圖的非透明像素的聯集。
在 transColour
引數中指定要視為透明的顏色,以及一個可選的顏色容差值。
傳回:如果成功,則為 true,否則為 false。
備註:此操作會建立一個結合此區域和第二個區域的所有部分的區域。結果會儲存在此區域中。
-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。
備註:此操作會建立一個結合此區域和第二個區域的所有部分,但會排除任何重疊區域的區域。結果會儲存在此區域中。
-spec 'Xor'(This, X, Y, Width, Height) -> boolean() when This :: wxRegion(), X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().
找出此區域與另一個以位置和大小指定的矩形區域的互斥或。
即使此區域無效,也可以使用此方法,並且在這種情況下具有自然行為,也就是說,使此區域等於給定的矩形。
傳回:如果成功,則為 true,否則為 false。
備註:此操作會建立一個結合此區域和第二個區域的所有部分,但會排除任何重疊區域的區域。結果會儲存在此區域中。