added Linux arm64 SDK

This commit is contained in:
Andrew Zambazos
2026-06-11 14:07:38 +12:00
parent c0395a49bd
commit cbf3f085d0
2160 changed files with 1 additions and 542 deletions
-181
View File
@@ -1,181 +0,0 @@
#include "Tab.h"
#include "UI.h"
#include <iostream>
#include <string>
#define INSPECTOR_DRAG_HANDLE_HEIGHT 10
Tab::Tab(UI* ui, uint64_t id, uint32_t width, uint32_t height, int x, int y)
: ui_(ui), id_(id), container_width_(width), container_height_(height) {
overlay_ = Overlay::Create(ui->window_, width, height, x, y);
view()->set_view_listener(this);
view()->set_load_listener(this);
}
Tab::~Tab() {
view()->set_view_listener(nullptr);
view()->set_load_listener(nullptr);
}
void Tab::Show() {
overlay_->Show();
overlay_->Focus();
if (inspector_overlay_)
inspector_overlay_->Show();
}
void Tab::Hide() {
overlay_->Hide();
overlay_->Unfocus();
if (inspector_overlay_)
inspector_overlay_->Hide();
}
void Tab::ToggleInspector() {
if (!inspector_overlay_) {
view()->CreateLocalInspectorView();
} else {
if (inspector_overlay_->is_hidden()) {
inspector_overlay_->Show();
} else {
inspector_overlay_->Hide();
}
}
// Force resize to update layout
}
bool Tab::IsInspectorShowing() const {
if (!inspector_overlay_)
return false;
return !inspector_overlay_->is_hidden();
}
IntRect Tab::GetInspectorResizeDragHandle() const {
if (!IsInspectorShowing())
return IntRect::MakeEmpty();
int drag_handle_height_px = (uint32_t)std::round(INSPECTOR_DRAG_HANDLE_HEIGHT * ui_->window()->scale());
// This drag handle should span the width of the UI and be centered vertically at the boundary between
// the page overlay and inspector overlay.
int drag_handle_x = (int)inspector_overlay_->x();
int drag_handle_y = (int)inspector_overlay_->y() - drag_handle_height_px / 2;
return { drag_handle_x, drag_handle_y, drag_handle_x + (int)inspector_overlay_->width(),
drag_handle_y + drag_handle_height_px };
}
int Tab::GetInspectorHeight() const {
if (inspector_overlay_)
return inspector_overlay_->height();
return 0;
}
void Tab::SetInspectorHeight(int height) {
if (height > 2) {
inspector_overlay_->Resize(inspector_overlay_->width(), height);
// Trigger a resize to perform re-layout / re-size of content overlay
Resize(container_width_, container_height_);
}
}
void Tab::Resize(uint32_t width, uint32_t height) {
container_width_ = width;
container_height_ = height;
uint32_t content_height = container_height_;
if (inspector_overlay_ && !inspector_overlay_->is_hidden()) {
content_height -= inspector_overlay_->height();
}
if (content_height < 1)
content_height = 1;
overlay_->Resize(container_width_, content_height);
if (inspector_overlay_ && !inspector_overlay_->is_hidden()) {
inspector_overlay_->MoveTo(0, overlay_->y() + overlay_->height());
inspector_overlay_->Resize(container_width_, inspector_overlay_->height());
}
}
void Tab::OnChangeTitle(View* caller, const String& title) {
ui_->UpdateTabTitle(id_, title);
}
void Tab::OnChangeURL(View* caller, const String& url) {
ui_->UpdateTabURL(id_, url);
}
void Tab::OnChangeTooltip(View* caller, const String& tooltip) {}
void Tab::OnChangeCursor(View* caller, Cursor cursor) {
if (id_ == ui_->active_tab_id_)
ui_->SetCursor(cursor);
}
void Tab::OnAddConsoleMessage(View* caller, const ConsoleMessage& msg) {
}
RefPtr<View> Tab::OnCreateChildView(ultralight::View* caller,
const String& opener_url, const String& target_url,
bool is_popup, const IntRect& popup_rect) {
return ui_->CreateNewTabForChildView(target_url);
}
RefPtr<View> Tab::OnCreateInspectorView(ultralight::View* caller, bool is_local,
const String& inspected_url) {
if (inspector_overlay_)
return nullptr;
inspector_overlay_ = Overlay::Create(ui_->window_, container_width_, container_height_ / 2, 0, 0);
// Force resize to update layout
Resize(container_width_, container_height_);
inspector_overlay_->Show();
return inspector_overlay_->view();
}
void Tab::OnBeginLoading(View* caller, uint64_t frame_id, bool is_main_frame, const String& url) {
ui_->UpdateTabNavigation(id_, caller->is_loading(), caller->CanGoBack(), caller->CanGoForward());
}
void Tab::OnFinishLoading(View* caller, uint64_t frame_id, bool is_main_frame, const String& url) {
ui_->UpdateTabNavigation(id_, caller->is_loading(), caller->CanGoBack(), caller->CanGoForward());
}
void Tab::OnFailLoading(View* caller, uint64_t frame_id, bool is_main_frame, const String& url,
const String& description, const String& error_domain, int error_code) {
if (is_main_frame) {
char error_code_str[16];
sprintf(error_code_str,"%d", error_code);
String html_string = "<html><head><style>";
html_string += "* { font-family: sans-serif; }";
html_string += "body { background-color: #CCC; color: #555; padding: 4em; }";
html_string += "dt { font-weight: bold; padding: 1em; }";
html_string += "</style></head><body>";
html_string += "<h2>A Network Error was Encountered</h2>";
html_string += "<dl>";
html_string += "<dt>URL</dt><dd>" + url + "</dd>";
html_string += "<dt>Description</dt><dd>" + description + "</dd>";
html_string += "<dt>Error Domain</dt><dd>" + error_domain + "</dd>";
html_string += "<dt>Error Code</dt><dd>" + String(error_code_str) + "</dd>";
html_string += "</dl></body></html>";
view()->LoadHTML(html_string);
}
}
void Tab::OnUpdateHistory(View* caller) {
ui_->UpdateTabNavigation(id_, caller->is_loading(), caller->CanGoBack(), caller->CanGoForward());
}