#include <stdint.h>
#include <stdbool.h>
#include "rust_widgets.h"
static uint64_t g_window = 0;
static uint64_t g_button = 0;
static uint64_t g_input = 0;
static uint64_t g_menu_item_quit = 0;
void app_init_ui(void) {
rust_widgets_init();
g_window = rust_widgets_create_window("Harmony Bridge Sample", 80, 80, 720, 480);
g_button = rust_widgets_create_button(g_window, "Tap", 20, 40, 120, 36);
g_input = rust_widgets_create_line_edit(g_window, "", 20, 90, 240, 36);
uint64_t menu_bar = rust_widgets_create_menu_bar(g_window, 0, 0, 720, 28);
rust_widgets_attach_menu_bar_to_window(g_window, menu_bar);
uint64_t file_menu = rust_widgets_create_menu(menu_bar, "File", 0, 0, 0, 0);
g_menu_item_quit = rust_widgets_menu_add_item(file_menu, "Quit", "cmd+q");
rust_widgets_show_widget(g_window);
}
void arkui_on_node_ready(uint64_t node_handle, uint64_t widget_id) {
rust_widgets_harmony_bind_node(node_handle, widget_id);
}
void arkui_on_node_dispose(uint64_t node_handle) {
rust_widgets_harmony_unbind_node(node_handle);
}
void arkui_on_button_click(uint64_t node_handle) {
rust_widgets_harmony_on_node_click(node_handle);
}
void arkui_on_input_changed(uint64_t node_handle) {
rust_widgets_harmony_on_node_value_changed(node_handle);
}
void arkui_on_menu_quit(void) {
rust_widgets_harmony_on_menu_item(g_menu_item_quit);
}
void app_pump_events(void) {
uint64_t menu_item = rust_widgets_poll_menu_triggered();
if (menu_item == g_menu_item_quit) {
rust_widgets_quit();
return;
}
uint64_t widget_id = 0;
unsigned int kind = rust_widgets_poll_widget_trigger_event(&widget_id);
if (kind == 1 && widget_id == g_button) {
} else if (kind == 2 && widget_id == g_input) {
}
}