111 lines
2.9 KiB
Rust
111 lines
2.9 KiB
Rust
use std::{cell::RefCell, rc::Rc};
|
|
|
|
use evdev::Device;
|
|
use gtk::{glib, pango, prelude::*};
|
|
|
|
use super::{
|
|
devices::{CameraMode, DeviceCatalog},
|
|
diagnostics::DiagnosticsLog,
|
|
preview::{LauncherPreview, PreviewBinding, PreviewSurface},
|
|
state::{
|
|
BreakoutSizeChoice, BreakoutSizePreset, CaptureSizeChoice, CaptureSizePreset,
|
|
FeedSourceChoice, FeedSourcePreset, LauncherState,
|
|
},
|
|
};
|
|
|
|
include!("ui_components/types.rs");
|
|
include!("ui_components/build_contexts.rs");
|
|
include!("ui_components/style.rs");
|
|
include!("ui_components/panel_chips.rs");
|
|
include!("ui_components/combo_helpers.rs");
|
|
include!("ui_components/control_buttons.rs");
|
|
include!("ui_components/display_pane.rs");
|
|
include!("ui_components/scale_reset.rs");
|
|
|
|
pub fn build_launcher_view(
|
|
app: >k::Application,
|
|
server_addr: &str,
|
|
catalog: &DeviceCatalog,
|
|
state: &LauncherState,
|
|
) -> LauncherView {
|
|
let LauncherShellContext {
|
|
window,
|
|
root,
|
|
staging_row,
|
|
operations,
|
|
left_pane,
|
|
right_pane,
|
|
relay_light,
|
|
relay_value,
|
|
routing_light,
|
|
routing_value,
|
|
gpio_light,
|
|
gpio_value,
|
|
shortcut_value,
|
|
} = include!("ui_components/build_shell.rs");
|
|
|
|
let DeviceControlsContext {
|
|
device_refresh_button,
|
|
camera_combo,
|
|
camera_quality_combo,
|
|
microphone_combo,
|
|
speaker_combo,
|
|
keyboard_combo,
|
|
mouse_combo,
|
|
camera_channel_toggle,
|
|
microphone_channel_toggle,
|
|
audio_channel_toggle,
|
|
audio_gain_scale,
|
|
audio_gain_value,
|
|
mic_gain_scale,
|
|
mic_gain_value,
|
|
audio_check_detail,
|
|
audio_check_meter,
|
|
devices_panel,
|
|
preview_panel,
|
|
camera_preview_stack,
|
|
camera_preview_frame,
|
|
camera_preview,
|
|
camera_mirror_button,
|
|
camera_mirror_revealer,
|
|
camera_status,
|
|
camera_test_button,
|
|
microphone_test_button,
|
|
microphone_replay_button,
|
|
speaker_test_button,
|
|
} = include!("ui_components/build_device_controls.rs");
|
|
|
|
let OperationsRailContext {
|
|
server_entry,
|
|
start_button,
|
|
clipboard_button,
|
|
probe_button,
|
|
usb_recover_button,
|
|
power_auto_button,
|
|
power_on_button,
|
|
power_off_button,
|
|
power_detail,
|
|
input_toggle_button,
|
|
swap_key_button,
|
|
diagnostics_copy_button,
|
|
diagnostics_popout_button,
|
|
diagnostics_log,
|
|
diagnostics_label,
|
|
diagnostics_scroll,
|
|
console_copy_button,
|
|
console_popout_button,
|
|
console_level_combo,
|
|
session_log_level,
|
|
status_label,
|
|
session_log_buffer,
|
|
session_log_view,
|
|
preview,
|
|
} = include!("ui_components/build_operations_rail.rs");
|
|
|
|
include!("ui_components/assemble_view.rs")
|
|
}
|
|
|
|
#[cfg(test)]
|
|
#[path = "tests/ui_components_scale.rs"]
|
|
mod tests;
|