|
Post by George on Oct 12, 2022 15:46:06 GMT -5
Stefan: Interesting CK macros. Yes indeed, it makes no logical sense. The logic basically treats all non-zero RC the same.
Except the CK macro disproves that, should be an interesting debug session.
George
|
|
|
Post by George on Oct 12, 2022 15:27:04 GMT -5
Well, I can confirm the bug on my latest test version, so it is indeed a bug.
George
[UPDATE] For some reason (Boy, I'd like to remember the reason for some of these old decisions) but RELOAD does a full RESET before loading the file again. And if the Profile is UNLOCKED ... it gets saved.
Deleted that line, the full reload will re-establish everything anyway - correctly.
[/UPDATE]
|
|
|
Post by George on Oct 11, 2022 10:14:44 GMT -5
Stefan: I could not get the error in your last paragraph to occur, however I did clear up the LineCmd appearing on the Primary command line.
George
|
|
|
Post by George on Oct 7, 2022 14:41:20 GMT -5
Just for any of you following this thread.
There is progress, Robert and I have been busy in the background and thrashing things out. Hopefully a Beta can be rolled out soon.
George
|
|
|
Post by George on Oct 4, 2022 13:58:58 GMT -5
Not sure what you mean by "including it in the list" Those shown are the ones actually used within SPFLite. I've never chosen Calibri for any of them.
Now if the question is "Why not use Calibri instead of xxxx", then that's a valid question. Those choices were made many years ago, probably before Calibri even came along. But then we get into - Calibri is better than Tahoma whish is better than Courier which is ....... Who's to say which is best?
George
|
|
|
Post by George on Oct 4, 2022 9:15:02 GMT -5
Right now, there's a simple routine that examines the DPI of the system's desktop, and adjusts all the default font sizes of all the non-edit-data fonts(SB, Tab headers etc.) accordingly based on the old 'normal' of 96 DPI. It's not perfect, but is better than nothing.
SUB FontAdjustSizes() '----- Adjust fonts if high DPI used LOCAL hDC, LPIy, factor AS LONG hDC = GetDC(%HWND_DESKTOP) ' Get Desktop handle LPIy = GetDeviceCaps(hDC, %LOGPIXELSY) ' Get pixels / inch vertically ReleaseDC %HWND_DESKTOP, hDC ' Free hDC factor = (LPiY/96) * 100 ' Calc % font size gFontScale = factor / 100 ' Create a factor out of it '--------------------------------------------------------------+ ' Recreate the Fonts | '--------------------------------------------------------------+ FONT NEW "Arial", 10 / gFontScale, 1, 1, 1 TO gBoldFont ' Build font for our Preferences Dialog FONT NEW "Courier New", 10 / gFontScale, 1, 1, 1 TO gFixedFont ' Build font for our Preferences Dialog FONT NEW "Tahoma", 10 / gFontScale, 0, 1, 1 TO gSBFont ' Build font for the Status Bar FONT NEW "Tahoma", 10 / gFontScale, 1, 1, 1 TO gSBFontB ' Build font for the Status Bar FONT NEW "Tahoma", 12 / gFontScale, 0, 1, 1 TO gHlpFont ' Build font for the Help Dialog FONT NEW "Tahoma", 12 / gFontScale, 1, 1, 1 TO gHlpFontB ' Build font for the Help Dialog END SUB
|
|
|
Post by George on Oct 3, 2022 14:40:54 GMT -5
The box sizes of the SB are specified in pixels by absolute numbers from left to right.
The display routine for SB data uses the same font for everything. The problem is that there is no API to return a font given a string of text and a dialog size. It works the other way, you point the API at a dialog control, which has a font assigned, and it returns how much space it will take. So it's an iterative loop to find the optimum font size.
And if could be done at display time, you'd end up with different font sizes in the same box depending on the actual text data. And every box would have different font sizes. It would be a visual mess.
Picture the difference between "BNDS: MAX" and "BNDS: 350 to 1500" where 1 is twice the width of the other. If the text was small enough, it would even pick a huge font and blow the vertical dimensions of the box. It's simply not easy.
As I said, non-trivial.
George
|
|
|
Post by George on Oct 3, 2022 12:53:54 GMT -5
Robert: The main problem is a choice made back when SPFLite migrated from a Command line text syle window, to a proper Windows dialog. PB provides two unit types to dimension dialogs and their controls - Pixels and Dialog units, I chose Pixels as everything I was migrating was previously in Pixels.
As you're finding out Pixels, and hi-res displays don't get along, there is no simple easy rescaling available. SPFLite does some minor attempt, but it's not enough.
George
|
|
|
Post by George on Oct 3, 2022 8:31:14 GMT -5
Robrt: Certainly possible, but tricky as the sizes of the boxes would have to be calculated based on the longest string directed to that box in the chosen font. The custom layout etc. of the SB is already a bit convoluted. But this IS an area where something needs to be done.
George
|
|
|
Post by George on Oct 2, 2022 10:12:38 GMT -5
Srefan: One of those Hmmmmm. I think it may be in the logic that initially creates an FTX entry in the CFG file. My FTX works fine, but that may be because I changed something after my initial FTX entry was created to muck things up.
I guess you'll have to wait a bit longer to try it out.
George
|
|
|
Post by George on Sept 28, 2022 13:31:28 GMT -5
Stefan: Yes, they're 'ghosts'. In-process line commands are tracked in a table as they're entered. This is to avoid scanning a huge file for pending commands (think million+ lines).
As lines are inserted/deleted, this table and it's reference LPtr values has to be adjusted for these inserted/deleted lines (along with a bunch of other internal similar tables). Somewhere this adjustment for the B& style is fouled up.
I'm going to have to carefully 'walk' through the CC/B& and MM/B& variations and see if I can spot why one works and the other doeasn't. Plain old slog-work.
George
|
|
|
Post by George on Sept 28, 2022 9:01:05 GMT -5
Dave: Check the XTABS setting, better be 0. Otherwise any X'09' TAB character will get expanded and muck things up.
George
|
|
|
Post by George on Sept 27, 2022 8:31:14 GMT -5
Odd. I'll have a look.
George
[UPDATE]
I hate to say this, but if this gets fixed (ever) it will take a long time. It is buried very deeply in the whole line command handling jungle, I'm not sure anymore how it all works. I've spent a few hours now in debug, and basically gotten nowhere. LCmd handling goes through many iterations through routines as it winnows down to what's actually needed to be done, this makes adding breakpoints ridiculous as they get hit over and over during these loops and it's easy to lose track of what level of calling you're at.
I wish I had never been talked into adding the & support, line comands were bad enough before them.
It works fine with CC instead of MM. It works fine with A& instead of B& (Probably because the insertion point is before the B& line, but this is true for CC as well.
For now use A&. If I feel brave I might try again, but this is at the bottom of my list. I'm really concerned any fix may just open up other weird oddities in line control handling.
Maybe I'm just getting too old to wrap my mind around all this anymore.
[/UPDATE]
|
|
|
Post by George on Sept 26, 2022 13:21:34 GMT -5
This is now complete. Painful because of the quantity, not the complexity.
George
|
|
|
Post by George on Sept 26, 2022 13:20:02 GMT -5
OK, I think we have it properly fixed.
George
|
|