twig / dcxdll

Dialog Control eXtensions for mIRC
BSD 3-Clause "New" or "Revised" License
23 stars 2 forks source link

Divider - fix insignificant minor visual imperfections #65

Closed EpicNet closed 2 years ago

EpicNet commented 2 years ago

I am using "mIRC v7.67" + "DCX dll v3.1-git469" in system "Windows 8.1 x64".

This control has become almost perfect, but there are small visual flaws:

  1. When click on a separator, the color for highlighting it looks much paler and does not match the configured color.
  2. When quickly move the separator (color stripe) with the mouse at the moment of movement, it starts blinking or disappearing.
  3. With each new click on different dividers (without moving), the top margin increases and slowly goes down, and the bottom margin decreases and gradually goes beyond the bottom border of the control. This appears to be happening when clicking on the lower portion of the top divider (as if I'm clinging to the edge of the strip), but it shouldn't really resize the panels between the dividers unless there is real movement.

Would like to see a fix for these problems. Thanks.


image

Here is a test piece of script to reproduce this the problem. To run the script click on "F5" or enter the command "/divider_test":

alias F5 { divider_test }
alias divider_test {
  if ($dialog(divider_test)) .dialog -x divider_test | else { .dialog -m divider_test divider_test }
}
dialog divider_test {
  title "Divider test"
  icon $mircexe,0
  option pixels
  size -1 -1 500 400
}
on *:DIALOG:divider_test:init:0:{
  .dcx Mark $dname divider_test_work
  .xdialog -b $dname +ty
  .xdialog -g $dname +b $rgb(10,10,17)
  .xdialog -c $dname 1 divider 20 20 460 360 notheme | .xdid -x $dname 1 + | .xdid -v $dname 1 30
  .xdid -W $dname 1 3 | .xdid -Q $dname 1 $rgb(20,20,25) $rgb(255,150,0)
  .xdid -l $dname 1 30 0 $chr(9) 2 panel 0 0 0 0 notheme | .xdid -C $dname 2 +b $rgb(25,25,25)
  .xdid -r $dname 1 0 0 $chr(9) 3 divider 0 0 0 0 notheme vertical | .xdid -v $dname 3 360
  .xdid -l $dname 3 150 0 $chr(9) 4 divider 0 0 0 0 notheme | .xdid -v $dname 4 295
  .xdid -W $dname 3 3 | .xdid -Q $dname 3 $rgb(20,20,25) $rgb(255,150,0)
  .xdid -r $dname 3 100 0 $chr(9) 5 panel 0 0 0 0 notheme | .xdid -C $dname 5 +b $rgb(35,35,35)
  .xdid -l $dname 4 150 0 $chr(9) 6 panel 0 0 0 0 notheme | .xdid -C $dname 6 +b $rgb(40,40,47)
  .xdid -W $dname 4 3 | .xdid -Q $dname 4 $rgb(20,20,25) $rgb(255,150,0)
  .xdid -r $dname 4 30 0 $chr(9) 7 panel 0 0 0 0 notheme | .xdid -C $dname 7 +b $rgb(25,25,25)
  .xdid -J $dname 2,5-7 +r arrow
}
alias divider_test_work {}
OokEek commented 2 years ago

1: colour looks fine, remember this a cross-hatch pattern not a solid colour. 2: dunno what's causing this atm, looking into it. 3: unable to reproduce, sizes remain the same when not dragging the bar.

EpicNet commented 2 years ago

@OokEek, I have recorded a short video to demonstrate some the bugs:  🎥 Video  (open in a new browser tab).

In addition, I discovered one more drawback, when if you pull the upper divider so that it goes beyond the upper border of the dialog, then for some reason it drops to the very bottom to the edge of the lower border of the control, after that you have to make an extra movement in order to return the separator to its original position where it was originally. This also causes some inconvenience in using the control, especially when the window will use larges size.

Also, do not forget to add in the help documentation about "Divider" the note that at the end code need to use a similar command specifying the IDs of the child elements: "/xdid -J dcx 2,5-7 +r arrow", otherwise, the separators will not move.

If something comes out of this to adjust correct or add, I will be grateful to you. Thanks.

OokEek commented 2 years ago

Also, do not forget to add in the help documentation about "Divider" the note that at the end code need to use a similar command specifying the IDs of the child elements: "/xdid -J dcx 2,5-7 +r arrow", otherwise, the separators will not move.

Not a divider issue. This is caused by the child controls not having a default cursor.

OokEek commented 2 years ago

In addition, I discovered one more drawback, when if you pull the upper divider so that it goes beyond the upper border of the dialog, then for some reason it drops to the very bottom to the edge of the lower border of the control, after that you have to make an extra movement in order to return the separator to its original position where it was originally. This also causes some inconvenience in using the control, especially when the window will use larges size.

Fixed.