|
2 | 2 | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
3 | 3 | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
4 | 4 | Title="VSCode Updater" |
5 | | - Height="900" |
6 | | - Width="1300" |
| 5 | + MinHeight="750" |
| 6 | + MinWidth="1200" |
| 7 | + Width="1200" |
| 8 | + Height="750" |
| 9 | + Background="#E6F0FF" |
7 | 10 | WindowStartupLocation="CenterScreen" |
8 | 11 | ResizeMode="CanResize"> |
9 | 12 |
|
10 | | - <Grid Margin="15"> |
11 | | - |
12 | | - <!-- ROW DEFINITIONS --> |
| 13 | + <Grid Margin="10"> |
13 | 14 | <Grid.RowDefinitions> |
14 | | - <RowDefinition Height="Auto"/> <!-- Row 1: Status + Task --> |
15 | | - <RowDefinition Height="*"/> <!-- Row 2: Buttons + DataGrid --> |
16 | | - <RowDefinition Height="260"/> <!-- Row 3: Command Window --> |
17 | | - <RowDefinition Height="300"/> <!-- Row 4: Log Viewer --> |
| 15 | + <RowDefinition Height="Auto"/> <!-- Status + Task --> |
| 16 | + <RowDefinition Height="Auto"/> <!-- Buttons + DataGrid --> |
| 17 | + <RowDefinition Height="180"/> <!-- Command --> |
| 18 | + <RowDefinition Height="180"/> <!-- Log --> |
18 | 19 | </Grid.RowDefinitions> |
19 | 20 |
|
20 | | - <!-- COLUMN DEFINITIONS --> |
21 | 21 | <Grid.ColumnDefinitions> |
22 | | - <ColumnDefinition Width="260"/> <!-- Column 1 --> |
23 | | - <ColumnDefinition Width="260"/> <!-- Column 2 --> |
24 | | - <ColumnDefinition Width="*"/> <!-- Column 3 --> |
| 22 | + <ColumnDefinition Width="200"/> |
| 23 | + <ColumnDefinition Width="200"/> |
| 24 | + <ColumnDefinition Width="*"/> |
25 | 25 | </Grid.ColumnDefinitions> |
26 | 26 |
|
27 | | - <!-- ===================================================== --> |
28 | | - <!-- ROW 1: STATUS TEXT BOXES (COL 1–2) + TASK VIEWER (COL 3) --> |
29 | | - <!-- ===================================================== --> |
30 | | - |
31 | | - <!-- STATUS FIELDS --> |
32 | | - <StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,20,0"> |
33 | | - <TextBlock x:Name="TxtStatus" |
34 | | - FontSize="16" |
35 | | - FontWeight="Bold" |
36 | | - Margin="0,0,0,12"/> |
37 | | - |
38 | | - <TextBox x:Name="TxtActiveVersion" FontSize="13" Margin="0,0,0,4" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
39 | | - <TextBox x:Name="TxtSymlinkTarget" FontSize="13" Margin="0,0,0,4" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
40 | | - <TextBox x:Name="TxtSymlinkValid" FontSize="13" Margin="0,0,0,4" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
41 | | - <TextBox x:Name="TxtLastUpdate" FontSize="13" Margin="0,0,0,4" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
42 | | - <TextBox x:Name="TxtFallbackReason" FontSize="13" Margin="0,0,0,4" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
| 27 | + <!-- STATUS --> |
| 28 | + <StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,0,10,0"> |
| 29 | + <TextBlock Text="Active Version:" FontWeight="Bold" FontSize="13" Foreground="Black"/> |
| 30 | + <TextBox x:Name="TxtActiveVersion" FontSize="12" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
| 31 | + <TextBox x:Name="TxtSymlinkTarget" FontSize="12" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
| 32 | + <TextBox x:Name="TxtSymlinkValid" FontSize="12" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
| 33 | + <TextBox x:Name="TxtLastUpdate" FontSize="12" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
| 34 | + <TextBox x:Name="TxtFallbackReason" FontSize="12" IsReadOnly="True" BorderThickness="0" Background="Transparent"/> |
43 | 35 | </StackPanel> |
44 | 36 |
|
45 | | - <!-- TASK WINDOW --> |
46 | | - <StackPanel Grid.Row="0" Grid.Column="2" Margin="10,0,0,0"> |
47 | | - <TextBlock Text="Task Viewer" |
48 | | - FontSize="15" |
49 | | - FontWeight="Bold" |
50 | | - Foreground="White" |
51 | | - Margin="0,0,0,6"/> |
| 37 | + <!-- TASK VIEWER --> |
| 38 | + <StackPanel Grid.Row="0" Grid.Column="2" Margin="20,0,0,5" HorizontalAlignment="Left" VerticalAlignment="Top"> |
| 39 | + <TextBlock Text="Task Viewer" FontWeight="Bold" Foreground="Black" FontSize="13" Margin="0,0,0,4" HorizontalAlignment="Center"/> |
52 | 40 | <RichTextBox x:Name="TxtTaskViewer" |
53 | | - Height="220" |
| 41 | + Height="90" |
| 42 | + Width="250" |
54 | 43 | Background="#1E1E1E" |
55 | 44 | Foreground="White" |
56 | | - Padding="8" |
| 45 | + Padding="6" |
57 | 46 | VerticalScrollBarVisibility="Auto" |
58 | 47 | IsReadOnly="True"/> |
59 | 48 | </StackPanel> |
60 | 49 |
|
61 | | - <!-- ===================================================== --> |
62 | | - <!-- ROW 2: ACTION BUTTONS (COL 1–2) + DATAGRID (COL 3) --> |
63 | | - <!-- ===================================================== --> |
64 | | - |
65 | | - <!-- BUTTON COLUMN 1 --> |
66 | | - <StackPanel Grid.Row="1" Grid.Column="0" Margin="0,0,20,0"> |
67 | | - <Button x:Name="BtnUpdate" Content="Update VS Code" Margin="0,0,0,10" Height="30" Padding="5,2"/> |
68 | | - <Button x:Name="BtnRollback" Content="Rollback" Margin="0,0,0,10" Height="30" Padding="5,2"/> |
69 | | - <Button x:Name="BtnSwitch" Content="Switch Version" Margin="0,0,0,10" Height="30" Padding="5,2"/> |
70 | | - |
71 | | - <Separator Margin="0,10,0,10"/> |
72 | | - |
73 | | - <Button x:Name="BtnValidateSymlink" Content="Validate Symlink" Margin="0,0,0,10" Height="30" Padding="5,2"/> |
74 | | - <Button x:Name="BtnRestartSetup" Content="Restart Setup" Margin="0,0,0,10" Height="30" Padding="5,2"/> |
| 50 | + <!-- BUTTONS --> |
| 51 | + <StackPanel Grid.Row="1" Grid.Column="0" Margin="0,0,10,0"> |
| 52 | + <Button x:Name="BtnUpdate" Content="Update VS Code" Height="26" Padding="3,2" Margin="0,0,0,6"/> |
| 53 | + <Button x:Name="BtnRollback" Content="Rollback" Height="26" Padding="3,2" Margin="0,0,0,6"/> |
| 54 | + <Button x:Name="BtnSwitch" Content="Switch Version" Height="26" Padding="3,2" Margin="0,0,0,6"/> |
| 55 | + <Button x:Name="BtnValidateSymlink" Content="Validate Symlink" Height="26" Padding="3,2" Margin="0,0,0,6"/> |
| 56 | + <Button x:Name="BtnRestartSetup" Content="Restart Setup" Height="26" Padding="3,2"/> |
75 | 57 | </StackPanel> |
76 | 58 |
|
77 | | - <!-- BUTTON COLUMN 2 --> |
78 | | - <StackPanel Grid.Row="1" Grid.Column="1" Margin="0,0,20,0"> |
79 | | - <Button x:Name="BtnDashboard" Content="Open Dashboard" Margin="0,0,0,10" Height="30" Padding="5,2"/> |
80 | | - <Button x:Name="BtnSafeMode" Content="Run Safe Mode" Margin="0,0,0,10" Height="30" Padding="5,2"/> |
81 | | - |
82 | | - <CheckBox x:Name="ChkSafeMode" Content="Safe Mode Enabled" Margin="0,10,0,0"/> |
83 | | - |
84 | | - <Separator Margin="0,10,0,10"/> |
85 | | - |
86 | | - <CheckBox x:Name="ChkAutoScroll" Content="Auto Scroll Log" Margin="0,0,0,10"/> |
87 | | - |
88 | | - <StackPanel Orientation="Horizontal"> |
89 | | - <TextBox x:Name="TxtSearchLog" Width="150" Margin="0,0,10,0"/> |
90 | | - <Button x:Name="BtnSearchLog" Content="Search Log" Width="80" Height="28"/> |
91 | | - </StackPanel> |
| 59 | + <StackPanel Grid.Row="1" Grid.Column="1" Margin="0,0,10,0"> |
| 60 | + <Button x:Name="BtnDashboard" Content="Open Dashboard" Height="26" Padding="3,2" Margin="0,0,0,6"/> |
| 61 | + <Button x:Name="BtnSafeMode" Content="Run Safe Mode" Height="26" Padding="3,2" Margin="0,0,0,6"/> |
| 62 | + <CheckBox x:Name="ChkSafeMode" Content="Safe Mode Enabled" Margin="0,6,0,0"/> |
92 | 63 | </StackPanel> |
93 | 64 |
|
94 | 65 | <!-- DATAGRID --> |
95 | 66 | <DataGrid x:Name="DgVersions" |
96 | 67 | Grid.Row="1" |
97 | 68 | Grid.Column="2" |
| 69 | + Height="180" |
98 | 70 | Margin="10,0,0,0" |
99 | 71 | AutoGenerateColumns="False" |
100 | 72 | IsReadOnly="True" |
101 | 73 | HeadersVisibility="Column" |
102 | | - GridLinesVisibility="All" |
103 | | - SelectionMode="Single" |
104 | | - SelectionUnit="FullRow" |
105 | | - Height="300"> |
106 | | - |
| 74 | + GridLinesVisibility="All"> |
107 | 75 | <DataGrid.Columns> |
108 | | - <DataGridTextColumn Header="Version" |
109 | | - Binding="{Binding Name}" |
110 | | - Width="150"/> |
111 | | - <DataGridTextColumn Header="Path" |
112 | | - Binding="{Binding FullName}" |
113 | | - Width="*"/> |
114 | | - <DataGridTextColumn Header="Last Modified" |
115 | | - Binding="{Binding LastWriteTime, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" |
116 | | - Width="180"/> |
| 76 | + <DataGridTextColumn Header="Version" Binding="{Binding Name}" Width="180"/> |
| 77 | + <DataGridTextColumn Header="Path" Binding="{Binding FullName}" Width="*"/> |
| 78 | + <DataGridTextColumn Header="Last Modified" Binding="{Binding LastWriteTime, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" Width="150"/> |
117 | 79 | </DataGrid.Columns> |
118 | 80 | </DataGrid> |
119 | 81 |
|
120 | | - <!-- ===================================================== --> |
121 | | - <!-- ROW 3: COMMAND WINDOW (FULL WIDTH) --> |
122 | | - <!-- ===================================================== --> |
123 | | - |
124 | | - <StackPanel Grid.Row="2" Grid.ColumnSpan="3" Margin="0,10,0,10"> |
125 | | - <TextBlock Text="Command Output" |
126 | | - FontSize="15" |
127 | | - FontWeight="Bold" |
128 | | - Foreground="White" |
129 | | - Margin="0,0,0,6"/> |
| 82 | + <!-- COMMAND WINDOW --> |
| 83 | + <StackPanel Grid.Row="2" Grid.ColumnSpan="3" Margin="0,10,0,0"> |
| 84 | + <TextBlock Text="Command Output" FontWeight="Bold" Foreground="Black" FontSize="13" Margin="0,0,0,4"/> |
130 | 85 | <RichTextBox x:Name="TxtCommandOutput" |
| 86 | + Height="160" |
131 | 87 | Background="#1E1E1E" |
132 | 88 | Foreground="White" |
133 | | - Padding="8" |
| 89 | + Padding="6" |
134 | 90 | VerticalScrollBarVisibility="Auto" |
135 | 91 | IsReadOnly="True"/> |
136 | 92 | </StackPanel> |
137 | 93 |
|
138 | | - <!-- ===================================================== --> |
139 | | - <!-- ROW 4: LOG VIEWER (FULL WIDTH) --> |
140 | | - <!-- ===================================================== --> |
141 | | - |
| 94 | + <!-- LOG VIEWER --> |
142 | 95 | <Grid Grid.Row="3" Grid.ColumnSpan="3" Margin="0,10,0,0"> |
143 | 96 | <Grid.RowDefinitions> |
144 | 97 | <RowDefinition Height="Auto"/> <!-- Log controls --> |
145 | 98 | <RowDefinition Height="*"/> <!-- Log viewer --> |
146 | 99 | </Grid.RowDefinitions> |
147 | 100 |
|
148 | 101 | <!-- LOG CONTROL BAR --> |
149 | | - <StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,10"> |
150 | | - <Button x:Name="BtnPauseLog" Content="Pause Log" Width="100" Height="30" Margin="0,0,10,0"/> |
151 | | - <CheckBox x:Name="ChkAutoScrollLog" Content="Auto Scroll" Margin="0,0,20,0" VerticalAlignment="Center"/> |
152 | | - <TextBox x:Name="TxtSearchLogBar" Width="200" Height="25" Margin="0,0,10,0"/> |
153 | | - <Button x:Name="BtnSearchLogBar" Content="Search" Width="80" Height="28"/> |
| 102 | + <StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,6"> |
| 103 | + <Button x:Name="BtnPauseLog" Content="Pause Log" Width="90" Height="26" Margin="0,0,10,0"/> |
| 104 | + <CheckBox x:Name="ChkAutoScroll" Content="Auto Scroll" Margin="0,0,20,0" VerticalAlignment="Center"/> |
| 105 | + <TextBox x:Name="TxtSearchLogBar" Width="180" Height="24" Margin="0,0,10,0"/> |
| 106 | + <Button x:Name="BtnSearchLog" Content="Search" Width="70" Height="24"/> |
154 | 107 | </StackPanel> |
155 | 108 |
|
156 | 109 | <!-- LOG VIEWER --> |
157 | 110 | <TextBox x:Name="TxtLog" |
158 | 111 | Grid.Row="1" |
| 112 | + Height="150" |
159 | 113 | TextWrapping="Wrap" |
160 | 114 | VerticalScrollBarVisibility="Auto" |
161 | | - Padding="8" |
| 115 | + Padding="6" |
162 | 116 | IsReadOnly="True"/> |
163 | 117 | </Grid> |
164 | | - |
165 | 118 | </Grid> |
166 | 119 | </Window> |
0 commit comments