SourceView:
- Request syntax highlight information when new source file is set.
- Adjust _FormatLine() to also patch raw syntax highlights to match
up with calculated tabstops.
- Draw strings in pieces corresponding to how they're broken up in
terms of syntax highlights with colors.
- Implement a basic highlighting engine for C/C++. Not yet used/tested,
as SourceView will first need some adjustments in order to acquire
and make use of the highlighter modules in the first place.
- Add recognition of several additional types of tokens that, while
not necessary for single line expressions, will be needed for
parsing/highlighting source files. Also rename tokens for open/close
paren to reflect their content more accurately, and adjust callers
accordingly.
- Add missing public keyword for SyntaxHighlightSource/SyntaxHighlightInfo.
- Add initial set of basic syntax highlight types.
- Remove SyntaxHighlightSource. Instead, add a general purpose LineDataSource
interface to the model classes. Correspondingly adjust SourceCode to inherit
from it and fixup its derivatives accordingly; also adjust SyntaxHighlighter
to take a LineDataSource rather than a SyntaxHighlightSource.
Clicking the thumbnail in the package info area will now open a
window where the full-size screenshot is downloaded and shown. There can
only be one such screenshot window open. Navigating between multiple
screenshots of a package is not yet implemented. Also, no caching, but
this may be OK as it is, since one usually looks at these only once and
doesn't want the harddrive filling up with screenshots.
* I'm not sure why this was changed back in 2006, the file panel is
reused in various cases but I don't see one where selecting a folder
would make sense.
* If I missed something, then different file panels should be used for
the different cases.
Fixes#8805.
* None of these are required to be cross-built, as they all can be built on
the bootstrap image just fine.
* Additionally, update bash_boostrap from 4.27 to 4.30, as 4.27 causes the
build of gcc on the bootstrap image to fail.
* I went with my own graphics as the one in the preflet didn't look that
nice
* The clicked button is shown using a bold font rather than filling it
grey. I was too lazy to find the correct BShapes for all cases (1, 2 and
3 button mouses)
Fixes#6825.
gcc2 was relying on the c99 functions being there, but they are not in
the std namespace.
* Disable the C99 functions and macros in C++ mode
* Redefine them as inline functions in cmath in the std namespace.
Fixes#7396.
* There is no need to delay this to AllAttached
* Apps may want to override the SetDivider, and doing it as late as
AllAttached can be annoying.
Fixes#10734.
* Select items in the encoding list by block identifier rather than
list index (there are holes in the list)
* Scroll to the start of the list when the application starts
* Add and use IsBlockVisible to detect when we need to make a block
visible, avoiding unwanted scrollings in some cases with the previous
method of testing for only one character in the block.
Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>
Fixes some problems with previous enhancements from #3651.
* only update if font family update is detected.
* character map can now detect new fonts or removed fonts without
restarting
Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>
Fixes#3651 part 7.
The computation of the graph width could overflow leading to an absurdly
high count of lines to be drawn. This would freeze with BShape trying to
realloc the array to bigger and bigger sizes as lines were added to it
(by increment of 256, but still), or trigerred a bad_alloc in
BeginLineArray which allocates them upfront after I converted the code
to use that (it is more appropriate).
Add sanity checks to avoid the overflow, now you can have hundreds of
graphs without problems (much more than I can fit on my screen anyway,
which I think is good enough).
Fixes#6841.
We allow this method to throw bad_alloc exceptions as there is no other
way to report errors. However we left the object in a broken state
(maxCount set, but array not initialized) which would crash when calling
either AddLine or EndLineArray.
Initialize the count to 0 before throwing the exception so now
EndLineArray can be called and operations resumed safely after an
allocation failure.
* The key down message is not delivered when completing a dead key, so
act on key up instead.
* Pressing a character after a dead key would leave the keymap in "dead
key" mode, and that mode would be exited only by pressing a dead key
again.
Fixes#5734.
We add a 8 pixel space between the label and the menu, but we shouldn't
do that when the label is empty. This matches BMenuField behavior.
Fixes part of #10734.
set explicit minimum width of character view to be a bit larger than
fCodeView so that there isn't jumping of the pane sizes when fCodeView's
contents are too long
Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>
Fixes#3651 part 9.