issue-#163 Adding 'Decimal' Tabs to Rulers

Merged to the master branch
User avatar
Robert
Posts: 1024
Joined: Sat Sep 28, 2013 11:04 am
Location: Edinburgh, Scotland

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Robert »

Josef Templ wrote:@1: it is not possible to link to a CHAR, only ARRAY OF CHAR works.
Of course, I had forgotten that (I use CtlsSliders.NewCharField from the CPC site).

I think this is now ready for voting.
Ivan Denisov
Posts: 1700
Joined: Tue Sep 17, 2013 12:21 am
Location: Russia

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Ivan Denisov »

I am adopting some of Center features for Obertone Freenix version of BlackBox.

Importing HostPorts to Text subsystem is bad idea. It breaks hermeticity of Text subsystem.

Better use Ctrl key in Track procedure.

Code: Select all

               modify := Controllers.modify IN msg.modifiers;
               GrabMark(m, r, f, msg.x, msg.y, ~modify);
               IF (m.kind = tabs) & modify THEN
I adopted this feature that way.
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Josef Templ »

Ivan Denisov wrote:I am adopting some of Center features for Obertone Freenix version of BlackBox.

Importing HostPorts to Text subsystem is bad idea. It breaks hermeticity of Text subsystem.

Better use Ctrl key in Track procedure.
Ivan, In principle I agree that importing HostPorts in TextRulers should be avoided
but I didn't find a better solution.

The problem with your approach is that it changes existing behavior.
Both, extend and modify, are already used for tabs.

HostPorts.right is also used in DevDependencies. It is the same problem there.
Replacing HostPorts.right by the constant 18 would be even worse, obviously.

A clean solution would require to add another high-level modifier for mouse-right clicks to Controllers.TrackMsg.modifiers.
Something like 'context' (or 'menu' or 'properties' or 'popup') because mouse-right is usually used for opening a context menu of an object in the Windows GUI.
A simple and 'compatible by construction' approach would be to use the constant 18 (HostPorts.right) for that new modifier.
This effectively raises the platform specific concept of a mouse-right click to a high-level concept.
The ugly point here is that until now the platform specific modifiers are >= 16 (by convention) and this no longer holds then.
A cleaner approach therefore would be to add a new constant (e.g. context = 3) that is included in modifiers together with
the platform specific value HostPorts.right. I don't know if this causes any incompatibilities in existing mouse tracking procedures
but probably it will work without any problems.

I have put together an experimental clean version in issue-#163. Eventually, it will deserve a new issue because it also affects DevDependencies.
See diffs at https://redmine.blackboxframework.org/p ... 982824bd7b.

- Josef
Ivan Denisov
Posts: 1700
Joined: Tue Sep 17, 2013 12:21 am
Location: Russia

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Ivan Denisov »

Josef Templ wrote:
Ivan Denisov wrote:I am adopting some of Center features for Obertone Freenix version of BlackBox.

Importing HostPorts to Text subsystem is bad idea. It breaks hermeticity of Text subsystem.

Better use Ctrl key in Track procedure.
Ivan, In principle I agree that importing HostPorts in TextRulers should be avoided
but I didn't find a better solution.

The problem with your approach is that it changes existing behavior.
Both, extend and modify, are already used for tabs.
Ctrl was used to add vertical line. Now it is also can be used to add vertical lines with new dialog window. So there is not much inconvenience in that change.
Ivan Denisov
Posts: 1700
Joined: Tue Sep 17, 2013 12:21 am
Location: Russia

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Ivan Denisov »

Josef Templ wrote: A clean solution would require to add another high-level modifier for mouse-right clicks to Controllers.TrackMsg.modifiers.
Something like 'context' (or 'menu' or 'properties' or 'popup') because mouse-right is usually used for opening a context menu of an object in the Windows GUI.
A simple and 'compatible by construction' approach would be to use the constant 18 (HostPorts.right) for that new modifier.
This effectively raises the platform specific concept of a mouse-right click to a high-level concept.
The ugly point here is that until now the platform specific modifiers are >= 16 (by convention) and this no longer holds then.
A cleaner approach therefore would be to add a new constant (e.g. context = 3) that is included in modifiers together with
the platform specific value HostPorts.right. I don't know if this causes any incompatibilities in existing mouse tracking procedures
but probably it will work without any problems.
I like this idea, because initially (I guess) BlackBox was aimed for mac with only one mouse button. So there is lack of basic controls states. The "context" can help in many cases.
Last edited by Ivan Denisov on Sun Sep 03, 2017 10:06 am, edited 2 times in total.
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Josef Templ »

Ivan Denisov wrote: I like this idea, because... The "context" can help in many cases.
Right. It solves, for example, the same problem in DevDependencies.
Maybe there are more examples in CPC packages.

When I added the decimal tabs I actually thought about this option but was afraid to make too many changes.
Now it turned out to be a surprisingly simple change and so far I have not observed any incompatibilities.

- Josef
User avatar
Robert
Posts: 1024
Joined: Sat Sep 28, 2013 11:04 am
Location: Edinburgh, Scotland

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Robert »

Josef Templ wrote:A clean solution would require to add another high-level modifier for mouse-right clicks to Controllers.TrackMsg.modifiers.
Something like 'context' (or 'menu' or 'properties' or 'popup') because mouse-right is usually used for opening a context menu of an object in the Windows GUI.
This sounds like the start of a good solution, but, for me, the main part of a clean solution is to improve the Docus.

As a Windows user I am familiar with the ideas: Left-mouse-click, centre-mouse-click, right-mouse-click, Shift-key, Ctrl-key, & Alt-key. However how they map onto the BlackBox implementation and documentation (eg modify & extend, and now context) is not intuitive or documented accessibly.

Text/Docu/User-Man talks about ctl& alt keys (see sections 4 & 7) with no immediate mapping to the ideas modify & extend.

The mapping is given in System/Docu/Controllers, but not as clearly as I would like. I can't find this platform specific mapping in the PSI document. I thought it was mentioned in some higher level user manuals, but can't find it now.

I would like to see a clear table giving the full mapping (for Windows, and any other platforms where it makes sense). This table could be in one place, with links to it from other places where these ideas are currently mentioned.
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Josef Templ »

Robert wrote: The mapping is given in System/Docu/Controllers, but not as clearly as I would like. I can't find this platform specific mapping in the PSI document. I thought it was mentioned in some higher level user manuals, but can't find it now.

I would like to see a clear table giving the full mapping (for Windows, and any other platforms where it makes sense). This table could be in one place, with links to it from other places where these ideas are currently mentioned.
The platform mapping should be added to the P-S-I document, I think.

I don't know how the ALT-key is currently handled. This seems to be more tricky than shift and ctrl.
It is strange that the ALT-key is mentioned in the docu as if it were a high-level modifier.

- Josef
User avatar
Josef Templ
Posts: 2047
Joined: Tue Sep 17, 2013 6:50 am

Re: issue-#163 Adding 'Decimal' Tabs to Rulers

Post by Josef Templ »

I have now renamed the docu file to Tab-Dialog as discussed for issue-#175.

The diffs at https://redmine.blackboxframework.org/p ... 3b568ee07a shows the renaming but not the changes required for referencing this file. There are two such references, viz. Help button in the dialog and Text/Docu/User-Man.
They have been changed accordingly.

Remark: One more such renamings would be required for issue-#105 of BB 1.7 where the Preferences Help text has been added.
Host/Docu/Prefs needs to be renamed to Prefs-Dialog.

- Josef
Post Reply