mirror of
https://github.com/fadden/6502bench.git
synced 2024-12-01 22:50:35 +00:00
Populate Notes panel
This was pretty easy to do with DataGrid, even with custom background colors in some cells. Score one for WPF.
This commit is contained in:
parent
9e525d1428
commit
0abc7a7587
@ -406,6 +406,9 @@ namespace SourceGenWPF {
|
|||||||
// Populate the Symbols list.
|
// Populate the Symbols list.
|
||||||
PopulateSymbolsList();
|
PopulateSymbolsList();
|
||||||
|
|
||||||
|
// Load initial contents of Notes panel.
|
||||||
|
PopulateNotesList();
|
||||||
|
|
||||||
mMainWin.ShowCodeListView = true;
|
mMainWin.ShowCodeListView = true;
|
||||||
mNavStack.Clear();
|
mNavStack.Clear();
|
||||||
|
|
||||||
@ -510,6 +513,9 @@ namespace SourceGenWPF {
|
|||||||
mMainWin.SetCodeListTopIndex(topItemIndex);
|
mMainWin.SetCodeListTopIndex(topItemIndex);
|
||||||
mReanalysisTimer.EndTask("Restore selection and top position");
|
mReanalysisTimer.EndTask("Restore selection and top position");
|
||||||
|
|
||||||
|
// Update the Notes list as well.
|
||||||
|
PopulateNotesList();
|
||||||
|
|
||||||
mReanalysisTimer.EndTask("ProjectView.ApplyChanges()");
|
mReanalysisTimer.EndTask("ProjectView.ApplyChanges()");
|
||||||
|
|
||||||
//mReanalysisTimer.DumpTimes("ProjectView timers:", mGenerationLog);
|
//mReanalysisTimer.DumpTimes("ProjectView timers:", mGenerationLog);
|
||||||
@ -1386,6 +1392,32 @@ namespace SourceGenWPF {
|
|||||||
|
|
||||||
#endregion References panel
|
#endregion References panel
|
||||||
|
|
||||||
|
#region Notes panel
|
||||||
|
|
||||||
|
private void PopulateNotesList() {
|
||||||
|
mMainWin.NotesList.Clear();
|
||||||
|
foreach (KeyValuePair<int, MultiLineComment> kvp in mProject.Notes) {
|
||||||
|
int offset = kvp.Key;
|
||||||
|
MultiLineComment mlc = kvp.Value;
|
||||||
|
|
||||||
|
// Replace line break with bullet. If there's a single CRLF at the end, strip it.
|
||||||
|
string nocrlfStr;
|
||||||
|
if (mlc.Text.EndsWith("\r\n")) {
|
||||||
|
nocrlfStr = mlc.Text.Substring(0, mlc.Text.Length - 2).Replace("\r\n", " \u2022 ");
|
||||||
|
} else {
|
||||||
|
nocrlfStr = mlc.Text.Replace("\r\n", " \u2022 ");
|
||||||
|
}
|
||||||
|
|
||||||
|
MainWindow.NotesListItem nli = new MainWindow.NotesListItem(
|
||||||
|
mOutputFormatter.FormatOffset24(offset),
|
||||||
|
nocrlfStr,
|
||||||
|
mlc.BackgroundColor);
|
||||||
|
mMainWin.NotesList.Add(nli);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Notes panel
|
||||||
|
|
||||||
#region Symbols panel
|
#region Symbols panel
|
||||||
|
|
||||||
private void PopulateSymbolsList() {
|
private void PopulateSymbolsList() {
|
||||||
|
@ -256,10 +256,24 @@ limitations under the License.
|
|||||||
|
|
||||||
<GroupBox Grid.Row="2" Header="Notes">
|
<GroupBox Grid.Row="2" Header="Notes">
|
||||||
<DataGrid Name="notesList" IsReadOnly="True"
|
<DataGrid Name="notesList" IsReadOnly="True"
|
||||||
FontFamily="{StaticResource GeneralMonoFont}">
|
ItemsSource="{Binding NotesList}"
|
||||||
|
FontFamily="{StaticResource GeneralMonoFont}"
|
||||||
|
SnapsToDevicePixels="True"
|
||||||
|
GridLinesVisibility="Vertical"
|
||||||
|
VerticalGridLinesBrush="#FF7F7F7F"
|
||||||
|
AutoGenerateColumns="False"
|
||||||
|
HeadersVisibility="Column"
|
||||||
|
CanUserReorderColumns="False"
|
||||||
|
SelectionMode="Single">
|
||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
<DataGridTextColumn Header="Offset" Binding="{Binding Offset}"/>
|
<DataGridTextColumn Header="Offset" Binding="{Binding Offset}"/>
|
||||||
<DataGridTextColumn Header="Note" Binding="{Binding Note}"/>
|
<DataGridTextColumn Header="Note" Binding="{Binding Note}">
|
||||||
|
<DataGridTextColumn.ElementStyle>
|
||||||
|
<Style TargetType="{x:Type TextBlock}">
|
||||||
|
<Setter Property="Background" Value="{Binding BackBrush}"/>
|
||||||
|
</Style>
|
||||||
|
</DataGridTextColumn.ElementStyle>
|
||||||
|
</DataGridTextColumn>
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</DataGrid>
|
</DataGrid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
@ -543,7 +543,27 @@ namespace SourceGenWPF.ProjWin {
|
|||||||
|
|
||||||
|
|
||||||
#region Notes panel
|
#region Notes panel
|
||||||
// TODO
|
|
||||||
|
public class NotesListItem {
|
||||||
|
public string Offset { get; private set; }
|
||||||
|
public string Note { get; private set; }
|
||||||
|
public SolidColorBrush BackBrush { get; private set; }
|
||||||
|
|
||||||
|
public NotesListItem(string offset, string note, Color backColor) {
|
||||||
|
Offset = offset;
|
||||||
|
Note = note;
|
||||||
|
BackBrush = new SolidColorBrush(backColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString() {
|
||||||
|
return "[NotesListItem: off=" + Offset + " note=" + Note + " brush=" +
|
||||||
|
BackBrush + "]";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObservableCollection<NotesListItem> NotesList { get; private set; } =
|
||||||
|
new ObservableCollection<NotesListItem>();
|
||||||
|
|
||||||
#endregion Notes panel
|
#endregion Notes panel
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user