GoSurface — lớp vỏ
Popup, bảng trượt và danh sách thả xuống đều dùng chung cái này. Nó lo vùng an toàn, bàn phím ảo, đầu và chân trang cố định, thân cuộn được, cửa sổ nào đang ở trên cùng, việc trả focus về chỗ cũ, quyền sở hữu nút Back và thao tác kéo để đổi kích thước.
| Vị trí đặt | Trông như | Dùng cho |
|---|---|---|
CENTER | Một tấm thẻ ở giữa | Xác nhận, cài đặt |
BOTTOM | Một bảng trồi lên từ dưới | Danh sách, trang quản lý |
ANCHOR | Một tấm thẻ ghim bên cạnh một control | Danh sách thả xuống, menu ngữ cảnh |
close_requested — ẩn đi hay giải phóng — là việc
của màn hình sở hữu nó, vì lớp vỏ không thể biết vì sao nó đang đóng (lưu rồi đóng, hay bỏ luôn).
GoSheet — một trang trồi lên từ đáy
var sheet := GoSheet.new()
add_child(sheet)
sheet.open("Túi đồ")
sheet.toolbar().add_child(GoStyle.line_edit("Tìm kiếm…"))
sheet.toolbar().visible = true
sheet.footer().add_child(GoStyle.button("Đóng", sheet.close, GoStyle.Tone.PRIMARY))
sheet.footer().visible = true
Nó sở hữu một CanvasLayer nên chắc chắn nằm trên HUD. open() dọn sạch
phần thân và tắt nút Back cùng các hàng cố định — một cái nút chết trên màn hình không có chỗ nào để
quay về thì người ta đọc ra là hỏng.
GoDialogs — hộp thoại xác nhận mà bạn await
if await dialogs.confirm("Xóa bản lưu", "Thao tác này không thể hoàn tác."):
delete_save()
confirm(title, body, ok_text, cancel_text, extra, args, destructive) — mọi thứ sau phần thân đều
tùy chọn, và alert() cũng vậy nhưng chỉ có một nút. Hãy đặt destructive cho
thao tác không thể hoàn tác: nút xác nhận trở thành nút tô đặc GoStyle.Tone.DANGER_SOLID.
Trên theme sáng, một nhãn nguy hiểm chỉ pha màu buộc phải tối đi đến mức đọc ra thành chữ đen; nút tô đặc thì
giữ chữ trắng trên nền đỏ. Sắc thái được áp lại ở mỗi lần gọi vì chỉ một cửa sổ được tái sử dụng, và một lần
confirm() thứ hai trong lúc cái trước còn mở sẽ trả về false ngay. confirm_key()
nhận khóa dịch.
Bố cục nút. action_layout mặc định là VERTICAL (an toàn cho những bản dịch dài),
HORIZONTAL cho một hàng chia đôi bề ngang, hoặc AUTO — chỉ dùng một hàng khi cả hai
nhãn vừa đúng nửa tấm thẻ trên một dòng, còn không thì xếp chồng. action_gap là khoảng cách giữa
các nút và body_gap là khoảng trống phía trên chúng — hãy để nó rộng hơn khoảng cách giữa các nút để
câu hỏi và lựa chọn đọc ra thành hai phần. Nếu chỉ muốn áp cho một hộp thoại, hãy gọi
set_next_action_layout() trước khi mở nó. Hàng nút được dựng khi hộp thoại mở lần đầu, nên một
GoDialogs nạp bằng autoload không thêm gì vào lúc khởi động.
GoForm — biểu mẫu giới hạn bề ngang
GoScroll — cuộn bằng ngón tay
Chỉ đặt một thứ vào bên trong. Phần đầu trang và hàng nút thì để bên ngoài — một danh sách dài
không được phép đẩy chúng ra khỏi màn hình. use_panel_edge() dời thanh cuộn vào phần đệm
sẵn có của tấm thẻ mà nội dung vẫn giữ nguyên lề thụt.