Panel, nút, công tắc, thanh trượt, lựa chọn, popup, toast; chuột, bàn phím, tay cầm; tùy biến ảnh và shader. Tiếp...
Classes | |
| struct | njin::ui_skin |
| Cách vẽ một mặt của widget: màu phẳng, ảnh (có thể 9-slice), hoặc cả hai. Tiếp... | |
| struct | njin::ui_look |
| Diện mạo của một loại widget ở từng trạng thái. Tiếp... | |
| struct | njin::ui_style |
| Toàn bộ giao diện của UI: phông chữ, kích thước, diện mạo từng loại widget, âm thanh. Tiếp... | |
| struct | njin::ui_panel_desc |
| Vị trí và kích thước của một panel, dùng với ui_begin(). Tiếp... | |
| struct | njin::ui_circle_desc |
| Mô tả một thanh tiến độ hình tròn, dùng với ui_progress_circle(). Tiếp... | |
| struct | njin::ui_toast_desc |
| Cách hiện một toast. Tiếp... | |
| struct | njin::ui_popup_desc |
| Mô tả một popup, dùng với ui_popup() và ui_popup_begin(). Tiếp... | |
| struct | njin::ui_widget_data |
| Dữ liệu cấu hình và trạng thái của một widget. Tiếp... | |
| struct | njin::ui_panel_data |
| Dữ liệu của một panel chứa danh sách widget. Tiếp... | |
| struct | njin::ui_popup_data |
| Dữ liệu của một popup thông báo hoặc xác nhận. Tiếp... | |
| struct | njin::ui_layout |
| Toàn bộ bố cục UI nạp từ file JSON hoặc xuất từ editor. Tiếp... | |
| struct | njin::ui_layout_event |
| Sự kiện UI phát ra khi người dùng tương tác với widget. Tiếp... | |
Typedefs | |
| using | njin::ui_event_callback = std::function<void(const ui_layout_event &)> |
| Kiểu hàm callback khi có sự kiện UI. | |
Enumerations | |
| enum | njin::ui_toast_kind { njin::ui_toast_info , njin::ui_toast_success , njin::ui_toast_warning , njin::ui_toast_error } |
| Loại toast: quyết định màu vạch bên trái (xem ui_style::toast_accent). Tiếp... | |
| enum class | njin::ui_widget_kind { ui_widget_kind::label , ui_widget_kind::space , ui_widget_kind::button , ui_widget_kind::toggle , ui_widget_kind::slider , ui_widget_kind::choice , ui_widget_kind::progress , ui_widget_kind::image , ui_widget_kind::row , ui_widget_kind::keybind , ui_widget_kind::circle } |
| Loại widget trong layout UI khai báo. Tiếp... | |
Các hàm | |
| ui_style | njin::ui_default_style () |
| Giao diện mặc định: panel tối trong suốt, nút bo góc, màu nhấn xanh. | |
| void | njin::ui_style_set (context &ctx, const ui_style &style) |
| Đặt style cho mọi widget vẽ sau đó. | |
| ui_style | njin::ui_style_get (const context &ctx) |
| Style hiện tại. | |
| void | njin::ui_begin (context &ctx, const ui_panel_desc &desc={}) |
| Bắt đầu một panel. | |
| void | njin::ui_end (context &ctx) |
| Kết thúc panel và vẽ nó. | |
| void | njin::ui_row (context &ctx, i32 columns) |
| Xếp columns widget tiếp theo thành một hàng ngang, chia đều bề rộng. | |
| void | njin::ui_label (context &ctx, const char *text) |
| Một dòng chữ. | |
| void | njin::ui_space (context &ctx, f32 height) |
| Khoảng trống. | |
| bool | njin::ui_button (context &ctx, const char *label, bool enabled=true) |
| Một nút bấm. | |
| bool | njin::ui_toggle (context &ctx, const char *label, bool &value) |
| Một công tắc bật/tắt. | |
| bool | njin::ui_slider (context &ctx, const char *label, f32 &value, f32 min, f32 max, f32 step=0.0f, bool percent=false) |
| Một thanh trượt. | |
| bool | njin::ui_choice (context &ctx, const char *label, i32 &index, std::initializer_list< const char * > options) |
| Chọn một trong nhiều lựa chọn bằng trái/phải hoặc bấm: độ khó, độ phân giải, ngôn ngữ. | |
| bool | njin::ui_choice (context &ctx, const char *label, i32 &index, std::span< const std::string > options) |
| Chọn một trong nhiều lựa chọn (danh sách động). | |
| void | njin::ui_progress (context &ctx, f32 value, const char *text=nullptr) |
| Một thanh tiến độ, không bấm được: máu, thời gian nạp. | |
| void | njin::ui_progress_circle (context &ctx, const ui_circle_desc &desc) |
| Một thanh tiến độ hình tròn, không bấm được: hồi chiêu, nạp đạn, máu dạng vòng. | |
| void | njin::ui_image (context &ctx, texture_handle texture, vec2 size, rect source={}) |
| Một ảnh, căn giữa trong panel. | |
| bool | njin::ui_keybind (context &ctx, const char *label, action_handle action, bool pad=false) |
| Một dòng đổi phím cho màn hình cài đặt: bên trái là tên, bên phải là phím đang gắn vào action. | |
| bool | njin::ui_keybind_listening (const context &ctx) |
| Có dòng ui_keybind() nào đang chờ phím không. | |
| bool | njin::ui_back (context &ctx) |
| true ở frame người chơi bấm quay lại (Esc, Backspace, nút B) trong lúc có panel đang hiện. | |
| void | njin::ui_focus (context &ctx, const char *label) |
| Chọn sẵn widget có nhãn label (trong panel đang mở), thường gọi khi vừa mở menu để nút mặc định được chọn cho tay cầm. | |
| bool | njin::ui_active (const context &ctx) |
| Có panel nào nhận phím được vẽ ở frame trước không (panel HUD với navigable = false không tính). | |
| rect | njin::ui_last_rect (const context &ctx) |
| Khung của widget vừa đặt trong panel đang mở (ui_label(), ui_button(), ui_space()...), pixel màn hình. | |
| bool | njin::ui_mouse_over (const context &ctx) |
| Chuột có đang nằm trên một panel không (các panel của frame trước). | |
| void | njin::ui_toast (context &ctx, const char *text, const ui_toast_desc &desc={}) |
| Hiện một thông báo nhỏ ở góc màn hình, tự biến mất: "Đã lưu game", "Nhặt được
5 vàng". | |
| void | njin::ui_toast_clear (context &ctx) |
| Xóa mọi toast đang hiện, ví dụ khi đổi scene. | |
| i32 | njin::ui_popup (context &ctx, const ui_popup_desc &desc, bool &open) |
| Một popup xác nhận: nền tối, tiêu đề, nội dung và vài nút. | |
| void | njin::ui_popup_begin (context &ctx, const ui_popup_desc &desc) |
| Bắt đầu một popup có nội dung tùy ý: làm tối nền, mở panel modal. | |
| void | njin::ui_popup_end (context &ctx) |
| Kết thúc popup bắt đầu bằng ui_popup_begin(). | |
| ui_style | njin::ui_pixel_style () |
| Style pixel-art tiêu chuẩn của njin (góc vuông phẳng, kích thước nhỏ gọn 16px). | |
| bool | njin::ui_layout_load (context &ctx, const char *path, ui_layout &out) |
| Nạp bố cục UI từ file JSON. | |
| bool | njin::ui_layout_parse (const json_value &json, ui_layout &out) |
| Phân tích dữ liệu JSON thành ui_layout. | |
| json_value | njin::ui_layout_to_json (const ui_layout &layout) |
| Chuyển đổi ui_layout thành json_value để lưu file. | |
| bool | njin::ui_layout_save (const char *path, const ui_layout &layout, bool pretty=true) |
| Ghi bố cục UI ra file JSON. | |
| bool | njin::ui_draw_panel (context &ctx, ui_layout &layout, const char *panel_id, const ui_event_callback &on_event=nullptr) |
| Vẽ một panel cụ thể trong layout. | |
| void | njin::ui_draw_layout (context &ctx, ui_layout &layout, const ui_event_callback &on_event=nullptr) |
| Vẽ tất cả các panel có cờ visible == true và các popup đang open. | |
| bool | njin::ui_layout_is_clicked (const ui_layout &layout, const char *widget_id) |
| Kiểm tra nút có vừa được bấm trong lần vẽ gần nhất hay không. | |
| bool | njin::ui_layout_get_bool (const ui_layout &layout, const char *widget_id, bool fallback=false) |
| Đọc giá trị bool của toggle. | |
| void | njin::ui_layout_set_bool (ui_layout &layout, const char *widget_id, bool value) |
| Gán giá trị bool cho toggle. | |
| f32 | njin::ui_layout_get_float (const ui_layout &layout, const char *widget_id, f32 fallback=0.0f) |
| Đọc giá trị float của slider hoặc progress. | |
| void | njin::ui_layout_set_float (ui_layout &layout, const char *widget_id, f32 value) |
| Gán giá trị float cho slider hoặc progress. | |
| i32 | njin::ui_layout_get_int (const ui_layout &layout, const char *widget_id, i32 fallback=0) |
| Đọc index của choice. | |
| void | njin::ui_layout_set_int (ui_layout &layout, const char *widget_id, i32 value) |
| Gán index cho choice. | |
| const char * | njin::ui_layout_get_text (const ui_layout &layout, const char *widget_id, const char *fallback="") |
| Đọc nhãn/văn bản của widget. | |
| void | njin::ui_layout_set_text (ui_layout &layout, const char *widget_id, const char *text) |
| Gán nhãn/văn bản cho widget. | |
| std::string | njin::ui_layout_generate_cpp (const ui_layout &layout, const char *func_name="draw_ui") |
| Sinh mã nguồn C++ gọi njin::ui_* từ ui_layout hoặc ui_panel_data. | |
| std::string | njin::ui_panel_generate_cpp (const ui_panel_data &panel, const char *func_name="draw_panel") |
| Sinh mã nguồn C++ cho một panel. | |
Panel, nút, công tắc, thanh trượt, lựa chọn, popup, toast; chuột, bàn phím, tay cầm; tùy biến ảnh và shader.
| enum njin::ui_toast_kind |
Loại toast: quyết định màu vạch bên trái (xem ui_style::toast_accent).
| Enumerator | |
|---|---|
| ui_toast_info | Thông tin trung tính. |
| ui_toast_success | Việc vừa làm thành công. |
| ui_toast_warning | Cảnh báo. |
| ui_toast_error | Lỗi. |
|
strong |
Loại widget trong layout UI khai báo.
| ui_style njin::ui_default_style | ( | ) |
Giao diện mặc định: panel tối trong suốt, nút bo góc, màu nhấn xanh.
| void njin::ui_style_set | ( | context & | ctx, |
| const ui_style & | style ) |
Đặt style cho mọi widget vẽ sau đó.
Đổi giữa chừng được (ví dụ một panel cảnh báo màu đỏ).
| ctx | Context của engine. |
| style | Style mới. |
| ui_style njin::ui_style_get | ( | const context & | ctx | ) |
Style hiện tại.
| ctx | Context của engine. |
| void njin::ui_begin | ( | context & | ctx, |
| const ui_panel_desc & | desc = {} ) |
Bắt đầu một panel.
Các widget gọi sau đó xếp từ trên xuống bên trong nó, cho đến ui_end(). Chiều cao tự tính theo nội dung. Panel cao hơn màn hình thì tự thu nhỏ (cả chữ, tối đa còn một nửa) cho vừa, thay vì tràn ra trên và dưới.
Gọi trong phase_post_render (không gian màn hình). Chỉ panel nào được gọi trong frame mới hiện; muốn ẩn menu thì đừng gọi nó.
| ctx | Context của engine. |
| desc | Vị trí và kích thước. |
| void njin::ui_end | ( | context & | ctx | ) |
Kết thúc panel và vẽ nó.
| ctx | Context của engine. |
| void njin::ui_row | ( | context & | ctx, |
| i32 | columns ) |
Xếp columns widget tiếp theo thành một hàng ngang, chia đều bề rộng.
Mũi tên trái/phải di chuyển giữa chúng.
| ctx | Context của engine. |
| columns | Số widget trong hàng. |
| void njin::ui_label | ( | context & | ctx, |
| const char * | text ) |
Một dòng chữ.
Trong một hàng (ui_row()) nó cao bằng một widget và chữ nằm giữa theo chiều dọc, thẳng hàng với nút bên cạnh.
| ctx | Context của engine. |
| text | Chữ (UTF-8). |
| void njin::ui_space | ( | context & | ctx, |
| f32 | height ) |
Khoảng trống.
| ctx | Context của engine. |
| height | Chiều cao, pixel (trước scale). |
| bool njin::ui_button | ( | context & | ctx, |
| const char * | label, | ||
| bool | enabled = true ) |
Một nút bấm.
Nhãn phải khác nhau trong cùng panel; hai nút cùng chữ thì thêm hậu tố ẩn sau ##: "Xóa##slot1", "Xóa##slot2" (phần sau ## không được vẽ).
| ctx | Context của engine. |
| label | Nhãn (UTF-8). |
| enabled | false thì nút xám và không bấm được. |
| bool njin::ui_toggle | ( | context & | ctx, |
| const char * | label, | ||
| bool & | value ) |
Một công tắc bật/tắt.
Bấm để đổi.
| ctx | Context của engine. |
| label | Nhãn. |
| value | Giá trị, được sửa khi bấm. |
| bool njin::ui_slider | ( | context & | ctx, |
| const char * | label, | ||
| f32 & | value, | ||
| f32 | min, | ||
| f32 | max, | ||
| f32 | step = 0.0f, | ||
| bool | percent = false ) |
Một thanh trượt.
Kéo bằng chuột, hoặc trái/phải khi đang được chọn.
| ctx | Context của engine. |
| label | Nhãn. |
| value | Giá trị, được sửa khi kéo. |
| min | Giá trị nhỏ nhất. |
| max | Giá trị lớn nhất. |
| step | Bước khi dùng phím hay tay cầm, và làm tròn khi kéo. 0 là 1/20 khoảng. |
| percent | Hiện giá trị dạng phần trăm của khoảng thay vì con số. |
| bool njin::ui_choice | ( | context & | ctx, |
| const char * | label, | ||
| i32 & | index, | ||
| std::initializer_list< const char * > | options ) |
Chọn một trong nhiều lựa chọn bằng trái/phải hoặc bấm: độ khó, độ phân giải, ngôn ngữ.
| ctx | Context của engine. |
| label | Nhãn. |
| index | Lựa chọn hiện tại, được sửa khi đổi. Vòng lại ở hai đầu. |
| options | Các lựa chọn. |
| bool njin::ui_choice | ( | context & | ctx, |
| const char * | label, | ||
| i32 & | index, | ||
| std::span< const std::string > | options ) |
Chọn một trong nhiều lựa chọn (danh sách động).
| ctx | Context của engine. |
| label | Nhãn. |
| index | Lựa chọn hiện tại. |
| options | Mảng các lựa chọn dạng chuỗi. |
| void njin::ui_progress | ( | context & | ctx, |
| f32 | value, | ||
| const char * | text = nullptr ) |
Một thanh tiến độ, không bấm được: máu, thời gian nạp.
| ctx | Context của engine. |
| value | Tiến độ 0..1. |
| text | Chữ vẽ giữa thanh. Có thể null. |
| void njin::ui_progress_circle | ( | context & | ctx, |
| const ui_circle_desc & | desc ) |
Một thanh tiến độ hình tròn, không bấm được: hồi chiêu, nạp đạn, máu dạng vòng.
Chiếm một dòng cao bằng đường kính, căn giữa trong panel (hoặc trong cột của ui_row()).
| ctx | Context của engine. |
| desc | Giá trị và kiểu dáng. |
| void njin::ui_image | ( | context & | ctx, |
| texture_handle | texture, | ||
| vec2 | size, | ||
| rect | source = {} ) |
Một ảnh, căn giữa trong panel.
| ctx | Context của engine. |
| texture | Ảnh. |
| size | Kích thước vẽ, pixel (trước scale). |
| source | Vùng trong ảnh. Kích thước 0 là cả ảnh. |
| bool njin::ui_keybind | ( | context & | ctx, |
| const char * | label, | ||
| action_handle | action, | ||
| bool | pad = false ) |
Một dòng đổi phím cho màn hình cài đặt: bên trái là tên, bên phải là phím đang gắn vào action.
Bấm vào thì dòng chờ phím mới ("..."); phím (hoặc nút chuột) bấm tiếp theo được gắn thay phím cũ bằng action_rebind(). Esc hủy. Trong lúc chờ, UI không điều hướng.
Lưu phím mới bằng settings_save() (hoặc input_bindings_save()).
| ctx | Context của engine. |
| label | Nhãn. |
| action | Action cần đổi phím. |
| pad | true để đổi nút tay cầm thay vì phím. |
| bool njin::ui_keybind_listening | ( | const context & | ctx | ) |
Có dòng ui_keybind() nào đang chờ phím không.
Trong lúc đó đừng coi Esc là "đóng menu".
| ctx | Context của engine. |
| bool njin::ui_back | ( | context & | ctx | ) |
true ở frame người chơi bấm quay lại (Esc, Backspace, nút B) trong lúc có panel đang hiện.
Dùng để đóng menu con hay quay về màn trước.
| ctx | Context của engine. |
| void njin::ui_focus | ( | context & | ctx, |
| const char * | label ) |
Chọn sẵn widget có nhãn label (trong panel đang mở), thường gọi khi vừa mở menu để nút mặc định được chọn cho tay cầm.
| ctx | Context của engine. |
| label | Nhãn đầy đủ, kể cả phần ##. |
| bool njin::ui_active | ( | const context & | ctx | ) |
Có panel nào nhận phím được vẽ ở frame trước không (panel HUD với navigable = false không tính).
Trong lúc đó UI nhận các phím điều hướng (mũi tên, Enter, Space, Esc) và game không thấy chúng, nên nhân vật không chạy khi người chơi đang chọn menu.
| ctx | Context của engine. |
| rect njin::ui_last_rect | ( | const context & | ctx | ) |
Khung của widget vừa đặt trong panel đang mở (ui_label(), ui_button(), ui_space()...), pixel màn hình.
Dùng để vẽ thêm lên một widget: hình trong nút, bản đồ nhỏ trong một khoảng ui_space(). Panel chỉ được vẽ ở ui_end(), nên phần vẽ thêm phải đặt sau ui_end(), không thì nền panel đè lên.
| ctx | Context của engine. |
| bool njin::ui_mouse_over | ( | const context & | ctx | ) |
Chuột có đang nằm trên một panel không (các panel của frame trước).
Ở đó UI đã nuốt nút chuột trái; hàm này để game bỏ qua cả nút phải, bánh xe hay con trỏ riêng của nó, ví dụ không ra lệnh cho quân khi bấm chuột phải lên HUD.
| ctx | Context của engine. |
| void njin::ui_toast | ( | context & | ctx, |
| const char * | text, | ||
| const ui_toast_desc & | desc = {} ) |
Hiện một thông báo nhỏ ở góc màn hình, tự biến mất: "Đã lưu game", "Nhặt được 5 vàng".
Gọi từ bất cứ đâu, bất cứ phase nào, không cần ui_begin. Engine tự xếp hàng, trượt vào, mờ dần và vẽ đè lên mọi thứ trừ hiệu ứng chuyển scene. Chữ dài tự xuống dòng.
Toast chỉ để đọc, không nuốt phím hay chuột của game, khác với panel của UI. Thời gian tính theo giờ thật: vẫn chạy khi game đang pause hay hitstop. Diện mạo lấy từ ui_style::toast, nên có thể dùng ảnh, 9-slice và shader như mọi widget khác.
| ctx | Context của engine. |
| text | Nội dung (UTF-8). |
| desc | Loại và thời gian hiện. |
| void njin::ui_toast_clear | ( | context & | ctx | ) |
Xóa mọi toast đang hiện, ví dụ khi đổi scene.
| ctx | Context của engine. |
| i32 njin::ui_popup | ( | context & | ctx, |
| const ui_popup_desc & | desc, | ||
| bool & | open ) |
Một popup xác nhận: nền tối, tiêu đề, nội dung và vài nút.
Gọi mỗi frame trong phase_post_render khi popup đang mở; open do game giữ. Popup tự đóng (đặt open = false) khi bấm một nút hay quay lại.
Popup là modal: các panel khác vẫn được vẽ nhưng không nhận chuột, phím hay tay cầm cho đến khi popup đóng, và njin::ui_back() chỉ báo cho popup. Khi mở, nút default_button được chọn sẵn; khi đóng, lựa chọn trở lại chỗ cũ. Frame popup vừa mở bỏ qua nút quay lại, để cùng cú nhấn Esc vừa mở nó không đóng nó ngay.
| ctx | Context của engine. |
| desc | Mô tả popup. |
| open | Popup đang mở. Được đặt false khi đóng. |
| void njin::ui_popup_begin | ( | context & | ctx, |
| const ui_popup_desc & | desc ) |
Bắt đầu một popup có nội dung tùy ý: làm tối nền, mở panel modal.
Gọi các widget bình thường (ui_button, ui_slider...), rồi ui_popup_end(). Đóng popup bằng cách không gọi nữa; dùng njin::ui_back() để bắt phím quay lại.
Chỉ dùng id, title và width của desc.
| ctx | Context của engine. |
| desc | Mô tả popup. |
| void njin::ui_popup_end | ( | context & | ctx | ) |
Kết thúc popup bắt đầu bằng ui_popup_begin().
| ctx | Context của engine. |
| ui_style njin::ui_pixel_style | ( | ) |
Style pixel-art tiêu chuẩn của njin (góc vuông phẳng, kích thước nhỏ gọn 16px).
| bool njin::ui_layout_load | ( | context & | ctx, |
| const char * | path, | ||
| ui_layout & | out ) |
Nạp bố cục UI từ file JSON.
| ctx | Context của engine. |
| path | Đường dẫn file JSON. |
| out | Nhận layout đọc được. |
| bool njin::ui_layout_parse | ( | const json_value & | json, |
| ui_layout & | out ) |
Phân tích dữ liệu JSON thành ui_layout.
| json | Đối tượng json_value gốc. |
| out | Nhận layout đọc được. |
| json_value njin::ui_layout_to_json | ( | const ui_layout & | layout | ) |
Chuyển đổi ui_layout thành json_value để lưu file.
| layout | Bố cục UI. |
| bool njin::ui_layout_save | ( | const char * | path, |
| const ui_layout & | layout, | ||
| bool | pretty = true ) |
Ghi bố cục UI ra file JSON.
| path | Đường dẫn lưu file. |
| layout | Bố cục UI. |
| pretty | Xuống dòng và thụt lề cho dễ đọc. |
| bool njin::ui_draw_panel | ( | context & | ctx, |
| ui_layout & | layout, | ||
| const char * | panel_id, | ||
| const ui_event_callback & | on_event = nullptr ) |
Vẽ một panel cụ thể trong layout.
Gọi trong phase_post_render. Nếu layout.custom_style bật thì gọi ui_style_set() với style của layout và không trả lại style cũ.
| ctx | Context engine. |
| layout | Layout chứa panel. |
| panel_id | ID của panel cần vẽ. |
| on_event | Callback tùy chọn khi có tương tác widget. |
| void njin::ui_draw_layout | ( | context & | ctx, |
| ui_layout & | layout, | ||
| const ui_event_callback & | on_event = nullptr ) |
Vẽ tất cả các panel có cờ visible == true và các popup đang open.
Gọi trong phase_post_render. Có cùng lưu ý về style với ui_draw_panel().
| ctx | Context engine. |
| layout | Layout cần vẽ. |
| on_event | Callback tùy chọn khi có tương tác widget. |
| bool njin::ui_layout_is_clicked | ( | const ui_layout & | layout, |
| const char * | widget_id ) |
Kiểm tra nút có vừa được bấm trong lần vẽ gần nhất hay không.
| layout | Layout chứa widget. |
| widget_id | ID của nút. |
| bool njin::ui_layout_get_bool | ( | const ui_layout & | layout, |
| const char * | widget_id, | ||
| bool | fallback = false ) |
Đọc giá trị bool của toggle.
| layout | Layout chứa widget. |
| widget_id | ID của toggle. |
| fallback | Giá trị trả về khi không có widget. |
| void njin::ui_layout_set_bool | ( | ui_layout & | layout, |
| const char * | widget_id, | ||
| bool | value ) |
Gán giá trị bool cho toggle.
Không làm gì nếu không có widget.
| layout | Layout chứa widget. |
| widget_id | ID của toggle. |
| value | Giá trị mới. |
| f32 njin::ui_layout_get_float | ( | const ui_layout & | layout, |
| const char * | widget_id, | ||
| f32 | fallback = 0.0f ) |
Đọc giá trị float của slider hoặc progress.
| layout | Layout chứa widget. |
| widget_id | ID của slider hoặc progress. |
| fallback | Giá trị trả về khi không có widget. |
Gán giá trị float cho slider hoặc progress.
Không làm gì nếu không có widget.
| layout | Layout chứa widget. |
| widget_id | ID của slider hoặc progress. |
| value | Giá trị mới. |
Đọc index của choice.
| layout | Layout chứa widget. |
| widget_id | ID của choice. |
| fallback | Giá trị trả về khi không có widget. |
Gán index cho choice.
Không làm gì nếu không có widget.
| layout | Layout chứa widget. |
| widget_id | ID của choice. |
| value | Index mới. |
| const char * njin::ui_layout_get_text | ( | const ui_layout & | layout, |
| const char * | widget_id, | ||
| const char * | fallback = "" ) |
Đọc nhãn/văn bản của widget.
| layout | Layout chứa widget. |
| widget_id | ID của widget. |
| fallback | Chuỗi trả về khi không có widget. |
| void njin::ui_layout_set_text | ( | ui_layout & | layout, |
| const char * | widget_id, | ||
| const char * | text ) |
Gán nhãn/văn bản cho widget.
Không làm gì nếu không có widget.
| layout | Layout chứa widget. |
| widget_id | ID của widget. |
| text | Nhãn mới. |
| std::string njin::ui_layout_generate_cpp | ( | const ui_layout & | layout, |
| const char * | func_name = "draw_ui" ) |
Sinh mã nguồn C++ gọi njin::ui_* từ ui_layout hoặc ui_panel_data.
| layout | Layout cần sinh code. |
| func_name | Tên hàm C++ sẽ được tạo ra. |
| std::string njin::ui_panel_generate_cpp | ( | const ui_panel_data & | panel, |
| const char * | func_name = "draw_panel" ) |
Sinh mã nguồn C++ cho một panel.
| panel | Panel cần sinh code. |
| func_name | Tên hàm C++ sẽ được tạo ra. |