1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-11-19 21:31:30 +00:00
Commit Graph

6 Commits

Author SHA1 Message Date
Andy McFadden
a7d66e67e0 Fiddle with selection
There was a bigger change here, but the approach turned out to
have some problems with large sets.  The current app saves and
restores the selected rows when you make an edit, retaining the set
of selected bytes even if the number of lines changes (maybe you
reformatted bytes into a string).  There's no way to do that quickly
with WPF when the number of selected items gets large (say 10K+).
I will probably just cap the selection, and refuse to restore it if
it exceeds a certain size.

The ListView SelectedItems management seems to use an O(n^2) (or
worse) algorithm.  It might be trying to verify that items being
added to SelectedItems actually exist in Items -- I can see it
calling Contains().  Whatever the case, it's a big step backward
performance-wise from WinForms.  Yay WPF.

See the DisasmUiTest project's Selection Test to see what I tried.
2019-05-29 17:39:36 -07:00
Andy McFadden
17af7efbbb Show formatted data in the code list
The disassembled lines are now shown in the custom-styled list view.
The DisplayList isn't being kept up to date on edits, but since we
can't edit anything yet that's not too limiting.

Pulled more code over, including the mostly-GUI-agnostic bits of the
source generation and assembler execution code.
2019-05-27 18:52:25 -07:00
Andy McFadden
f3f4c44633 Refactor DisplayList to support data virtualization
In WinForms, if you want a virtual ListView, you set the "virtual"
property and define a couple of callbacks.  In WPF, there are
separate notions of "UI virtualization" and "data virtualization".
The former is done automatically (usually) by the ListView.  The
latter requires creating an implementation of IList, and relies on
behavior that I'm having trouble finding in official documentation.
Yay WPF.

This splits the source-generation stuff out into DisplayListGen,
leaving DisplayList as a list of stuff to display that can be bound
to WPF as a ListView ItemsSource.  The DisplayList instance will have
a hook back into DisplayListGen to perform the on-demand string
rendering.  (For now it's just generating test patterns.)
2019-05-11 10:16:54 -07:00
Andy McFadden
d830605f5e Add a place-holder code ListView
Set up a notifiable property to control whether the "launch panel"
(i.e. the thing you see when the app launches) or the code ListView
is visible.  Unearthed the magic required to left-justify the column
headers.
2019-05-09 16:13:20 -07:00
Andy McFadden
bf310d17bc Load a hard-coded project file
Fixed some stuff that crashed.  The project is loaded but nothing
visually interesting happens yet.

I'm still not entirely sure what the deal with declaring resources
is, but it seems you can either declare a ResourceDictionary and put
everything in it, or you can declare a bunch of items, which are then
implicitly placed in a ResourceDictionary.  This matters if you want
to have your string definitions merged in with everything else.  All
of the examples I found did one thing or the other, not both at once,
so it took some fiddling.  Yay WPF.
2019-05-08 18:08:46 -07:00
Andy McFadden
ce27ae720e Port project loader code
Created a file to hold the non-WPF parts of ProjectView.cs.
Pulled some code related to project loading into it.  Created a few
related dialogs.
2019-05-05 16:50:28 -07:00