API 個人理解

🌐 基本概念

  • 所有 Widget(控制元件) 會返回一個「引用(reference)」,之後必須傳入給相關函式(如 MachoMenuGetInputbox / MachoMenuSetText)。

  • 引用類型

    • WindowReference:來自 MachoMenuWindow 的結果,用來操作視窗或子元素。

    • GroupReference:來自 MachoMenuGroup 的結果,用來安放 Widget。

    • WidgetReference:來自 Widget 本身的結果(例如 MachoMenuInputBox)。


🖼️ 視窗建立 (Window creation)

函式
說明

MachoMenuWindow(PosX, PosY, EndX, EndY)

建立主視窗,返回一個 handle 供子區域/Widget 使用。

MachoMenuTabbedWindow(Name, PosX, PosX, PosY, SizeX, SizeY, TabSectionWidth)

建立帶有分頁(Tabs)的視窗。

MachoMenuDestroy(WindowReference)

銷毀整個視窗。

MachoMenuSetAccent(WindowReference, r, g, b)

設定視窗的主題色(RGB)。

MachoMenuSetKeybind(WindowReference, Keybind)

設定開關菜單的快捷鍵,需使用 虛擬鍵代碼(例如 0x2E = DELETE)。


📦 區域 / 分區 (Widget areas / sections)

函式
說明

MachoMenuGroup(WindowReference OR TabReference, Name, PosX, PosY, EndX, EndY)

在視窗或分頁內建立一個子區域,返回 GroupReference,之後所有 Widget 可放入此 Group。


📑 分頁 (Tabs)

函式
說明

MachoMenuSmallText(WindowReference, Text)

在分頁區塊中顯示小字文字。

MachoMenuAddTab(WindowReference, Name)

新增一個分頁,返回 TabReference,供放置 Widget。


🔘 Widgets (控制元件)

函式
說明

MachoMenuButton(GroupReference, Name, Callback)

按鈕,點擊時執行 Callback。

MachoMenuCheckbox(GroupReference, Name, CallbackEnabled, CallbackDisabled)

勾選框,分別設定啟用/停用回呼。

MachoMenuSlider(GroupReference, Name, DefaultValue, Min, Max, Unit, DecimalPrecision, Callback)

滑桿,設定範圍、單位、小數精度,值變更時呼叫 Callback。

MachoMenuText(GroupReference, Text)

靜態文字顯示。

MachoMenuSetText(WidgetReference, Text)

修改已有 Widget 的文字。

MachoMenuInputbox(GroupReference, Text, Placeholder)

輸入框。

MachoMenuGetInputbox(WidgetReference)

取得輸入框目前文字(回傳 string)。

MachoMenuDropDown(GroupReference, Name, Callback, Selectable1, Selectable2, ...)

下拉選單,選擇後觸發 Callback。


✅ 總結工作流程

  1. 建立視窗MachoMenuWindowMachoMenuTabbedWindow

  2. 分區或分頁 → 用 MachoMenuGroupMachoMenuAddTab

  3. 加入 Widgets → Button, Slider, Checkbox, Inputbox 等

  4. 互動操作 → 設定回呼函式(Callback)、或讀取/更新 Widget 狀態(例如 MachoMenuGetInputbox, MachoMenuSetText

  5. 銷毀視窗(必要時) → MachoMenuDestroy

最后更新于