2026-01-26 14:51:28 +09:00

114 lines
4.2 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using VisionCommon;
using System.Windows;
using System.Windows.Controls;
using CogCommon;
namespace CogUI {
/// <summary>
/// Interaction logic for BrightnessSettingWindow.xaml
/// </summary>
public partial class BrightnessSettingWindow : Window, IPatternSettingWindow {
public string WINDOW_TITLE => "Brightness";
private PatternAgentBase _patternAgent;
private PatternInfo _patternInfo;
private CameraDisplay _cogCameraDisplay;
private FovInfo _fovInfo;
public BrightnessSettingWindow(
PatternAgentBase patternAgent, PatternInfo patternInfo,
ICameraDisplay cameraDisplay,
FovInfo fovInfo) {
InitializeComponent();
_patternAgent = patternAgent;
_patternInfo = patternInfo;
_cogCameraDisplay = (CameraDisplay)cameraDisplay;
_fovInfo = fovInfo;
SetTitle();
CreateView();
}
private void CreateView() {
if (PatternConstants.IsSubPatternSupport(ePatternType.Brightness)) {
CreateSubPatternView();
}
else {
CreateSinglePatternView();
}
}
private void CreateSinglePatternView() {
var grid = new Grid();
var brightnessSettingView = new BrightnessSettingView() {
DataContext = new BrightnessSettingViewModel(_patternAgent, _patternInfo, _cogCameraDisplay, _fovInfo)
};
grid.Children.Add(brightnessSettingView);
brightnessSettingScrollViewer.Content = grid;
}
private void CreateSubPatternView() {
var subPatternTabControl = new TabControl();
subPatternTabControl.Style = FindResource("styleSubPatternTabControl") as Style;
AddMainPatternTabControl(subPatternTabControl);
AddSubPatternTabControl(subPatternTabControl);
brightnessSettingScrollViewer.Content = subPatternTabControl;
}
private void AddMainPatternTabControl(TabControl subPatternTabControl) {
AddPatternTabControl(subPatternTabControl, _patternAgent, _patternInfo, _cogCameraDisplay, _fovInfo);
}
private void AddSubPatternTabControl(TabControl subPatternTabControl) {
for (int i = PatternConstants.MAIN_PATTERN_INDEX + 1; i < PatternConstants.SUB_PATTERN_COUNT; i++) {
PatternInfo subPatternInfo;
var subPatternIndex = PatternAgentBase.GetSubPatternIndex(_patternInfo, i);
if (_patternAgent.IsPatternExist(subPatternIndex)) {
subPatternInfo = _patternAgent.GetPatternInfo(subPatternIndex);
}
else {
subPatternInfo = _patternInfo.Clone() as PatternInfo;
subPatternInfo.SetPatternSubId(i);
subPatternInfo.Description += string.Format($"_{i}");
}
AddPatternTabControl(subPatternTabControl, _patternAgent, subPatternInfo, _cogCameraDisplay, _fovInfo);
}
}
private void AddPatternTabControl(
TabControl subPatternTabControl,
PatternAgentBase patternAgent, PatternInfo patternInfo,
CameraDisplay milCameraDisplay,
FovInfo fovInfo) {
var brightnessSettingView = new BrightnessSettingView() {
DataContext = new BrightnessSettingViewModel(patternAgent, patternInfo, milCameraDisplay, fovInfo)
};
var subPatternTabItem = new TabItem() {
Header = patternInfo.GetPatternSubId().ToString(),
Content = brightnessSettingView
};
subPatternTabItem.Style = FindResource("styleSubMenuRootTabItem") as Style;
subPatternTabControl.Items.Add(subPatternTabItem);
}
public void SetTitle() {
Title = WINDOW_TITLE;
}
public void ResetPosition() {
Left = WindowUtil.GetLeftWithRatioOnMainWindow(0.6);
Top = WindowUtil.GetTopWithRatioOnMainWindow(0.15);
}
}
}