twig / dcxdll

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

Dialog - incorrect work of the function for rounding borders #36

Open EpicNet opened 3 years ago

EpicNet commented 3 years ago

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

When using the "/xdialog -R $dname +r 10" command to round off the borders of the dialog, I found several significant visual flaws.

  1. General noticeable irregularities at the point where the corners are rounded, which violate (disfigure) the overall design. Perhaps for the inner borders it is worth doing a rounding too, and perhaps this will require redrawing them.
  2. When using styles +t, +hty, +mnty for border of the dialog, only the upper left corner is rounded, and "Titlebar" changes its appearance to a style similar to that of "Windows 7".
  3. When using styles +tz, +z for border of the dialog, resizing happens in a weird way that breaks the window's appearance or only enlarges the border itself, without any internal content.
  4. When using style +v for border of the dialog, it is not displayed at all.

I would like all these shortcomings to be corrected and brought to the modern level of window decoration, to make it look beautiful.


image

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

alias F5 { dbrt }
alias dbrt {
  if ($dialog(dbrt1)) {
    .dialog -x dbrt1 | .dialog -x dbrt2 | .dialog -x dbrt3 | .dialog -x dbrt4 | .dialog -x dbrt5
    .dialog -x dbrt6 | .dialog -x dbrt7 | .dialog -x dbrt8 | .dialog -x dbrt9 | .dialog -x dbrt10
    .dialog -x dbrt11 | .dialog -x dbrt12 | .dialog -x dbrt13 | .dialog -x dbrt14 | .dialog -x dbrt15 | .dialog -x dbrt-norm
  }
  else {
    .dialog -mp dbrt1 dbrt1 | .dialog -mp dbrt2 dbrt2 | .dialog -mp dbrt3 dbrt3 | .dialog -mp dbrt4 dbrt4 | .dialog -mp dbrt5 dbrt5
    .dialog -mp dbrt6 dbrt6 | .dialog -mp dbrt7 dbrt7 | .dialog -mp dbrt8 dbrt8 | .dialog -mp dbrt9 dbrt9 | .dialog -mp dbrt10 dbrt10
    .dialog -mp dbrt11 dbrt11 | .dialog -mp dbrt12 dbrt12 | .dialog -mp dbrt13 dbrt13 | .dialog -mp dbrt14 dbrt14 | .dialog -mp dbrt15 dbrt15 | .dialog -mp dbrt-norm dbrt-norm
  }
}
dialog dbrt1 { 
  size $calc($window(@mirc).dx +270) $calc($window(@mirc).dy +100) 100 80
}
dialog dbrt2 {
  size $calc($window(@mirc).dx +390) $calc($window(@mirc).dy +100) 100 80
}
dialog dbrt3 {
  size $calc($window(@mirc).dx +510) $calc($window(@mirc).dy +100) 100 80
}
dialog dbrt4 {
  size $calc($window(@mirc).dx +630) $calc($window(@mirc).dy +100) 100 80
}
dialog dbrt5 {
  size $calc($window(@mirc).dx +750) $calc($window(@mirc).dy +100) 100 80
}
dialog dbrt6 {
  size $calc($window(@mirc).dx +270) $calc($window(@mirc).dy +220) 100 80
}
dialog dbrt7 {
  size $calc($window(@mirc).dx +390) $calc($window(@mirc).dy +220) 100 80
}
dialog dbrt8 {
  size $calc($window(@mirc).dx +510) $calc($window(@mirc).dy +220) 100 80
}
dialog dbrt9 {
  size $calc($window(@mirc).dx +630) $calc($window(@mirc).dy +220) 100 80
}
dialog dbrt10 {
  size $calc($window(@mirc).dx +750) $calc($window(@mirc).dy +220) 100 80
}
dialog dbrt11 {
  size $calc($window(@mirc).dx +270) $calc($window(@mirc).dy +340) 100 80
}
dialog dbrt12 {
  size $calc($window(@mirc).dx +390) $calc($window(@mirc).dy +340) 100 80
}
dialog dbrt13 {
  size $calc($window(@mirc).dx +510) $calc($window(@mirc).dy +340) 100 80
}
dialog dbrt14 {
  size $calc($window(@mirc).dx +630) $calc($window(@mirc).dy +340) 100 80
}
dialog dbrt15 {
  size $calc($window(@mirc).dx +750) $calc($window(@mirc).dy +340) 100 80
}
dialog dbrt-norm {
  size $calc($window(@mirc).dx +880) $calc($window(@mirc).dy +180) 200 150
}
on *:DIALOG:*:init:*:{
  if ($dname == dbrt1) { .dcx Mark $dname dbrt_work1 | .xdialog -b $dname + | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 1 text 40 35 50 50 transparent noformat | .xdid -f $dname 1 +b ansi 20 Tahoma | .xdid -t $dname 1 + | .xdialog -R $dname +r 10 }
  if ($dname == dbrt2) { .dcx Mark $dname dbrt_work2 | .xdialog -b $dname +b | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 2 text 30 35 50 50 transparent noformat | .xdid -f $dname 2 +b ansi 20 Tahoma | .xdid -t $dname 2 +b | .xdialog -R $dname +r 10 }
  if ($dname == dbrt3) { .dcx Mark $dname dbrt_work3 | .xdialog -b $dname +c | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 3 text 30 35 50 50 transparent noformat | .xdid -f $dname 3 +b ansi 20 Tahoma | .xdid -t $dname 3 +c | .xdialog -R $dname +r 10 }
  if ($dname == dbrt4) { .dcx Mark $dname dbrt_work4 | .xdialog -b $dname +d | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 4 text 30 35 50 50 transparent noformat | .xdid -f $dname 4 +b ansi 20 Tahoma | .xdid -t $dname 4 +d | .xdialog -R $dname +r 10 }
  if ($dname == dbrt5) { .dcx Mark $dname dbrt_work5 | .xdialog -b $dname +f | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 5 text 30 35 50 50 transparent noformat | .xdid -f $dname 5 +b ansi 20 Tahoma | .xdid -t $dname 5 +f | .xdialog -R $dname +r 10 }
  if ($dname == dbrt6) { .dcx Mark $dname dbrt_work6 | .xdialog -b $dname +s | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 6 text 30 35 50 50 transparent noformat | .xdid -f $dname 6 +b ansi 20 Tahoma | .xdid -t $dname 6 +s | .xdialog -R $dname +r 10 }
  if ($dname == dbrt7) { .dcx Mark $dname dbrt_work7 | .xdialog -b $dname +o | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 7 text 30 35 50 50 transparent noformat | .xdid -f $dname 7 +b ansi 20 Tahoma | .xdid -t $dname 7 +o | .xdialog -R $dname +r 10 }
  if ($dname == dbrt8) { .dcx Mark $dname dbrt_work8 | .xdialog -b $dname +w | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 8 text 30 35 50 50 transparent noformat | .xdid -f $dname 8 +b ansi 20 Tahoma | .xdid -t $dname 8 +w | .xdialog -R $dname +r 10 }
  if ($dname == dbrt9) { .dcx Mark $dname dbrt_work9 | .xdialog -b $dname +x | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 9 text 30 35 50 50 transparent noformat | .xdid -f $dname 9 +b ansi 20 Tahoma | .xdid -t $dname 9 +x | .xdialog -R $dname +r 10 }
  if ($dname == dbrt10) { .dcx Mark $dname dbrt_work10 | .xdialog -b $dname +y | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 10 text 30 35 50 50 transparent noformat | .xdid -f $dname 10 +b ansi 20 Tahoma | .xdid -t $dname 10 +y | .xdialog -R $dname +r 10 }
  if ($dname == dbrt11) { .dcx Mark $dname dbrt_work11 | .xdialog -b $dname +t | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 11 text 30 20 50 50 transparent noformat | .xdid -f $dname 11 +b ansi 20 Tahoma | .xdid -t $dname 11 +t | .xdialog -R $dname +r 10 }
  if ($dname == dbrt12) { .dcx Mark $dname dbrt_work12 | .xdialog -b $dname +hty | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 12 text 15 20 80 50 transparent noformat | .xdid -f $dname 12 +b ansi 20 Tahoma | .xdid -t $dname 12 +hty | .xdialog -R $dname +r 10 }
  if ($dname == dbrt13) { .dcx Mark $dname dbrt_work13 | .xdialog -b $dname +mnty | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 13 text 2 20 95 50 transparent noformat | .xdid -f $dname 13 +b ansi 20 Tahoma | .xdid -t $dname 13 +mnty | .xdialog -R $dname +r 10 }
  if ($dname == dbrt14) { .dcx Mark $dname dbrt_work14 | .xdialog -b $dname +tz | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 14 text 20 17 50 50 transparent noformat | .xdid -f $dname 14 +b ansi 20 Tahoma | .xdid -t $dname 14 +tz | .xdialog -R $dname +r 10 }
  if ($dname == dbrt15) { .dcx Mark $dname dbrt_work15 | .xdialog -b $dname +z | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 15 text 25 30 50 50 transparent noformat | .xdid -f $dname 15 +b ansi 20 Tahoma | .xdid -t $dname 15 +z | .xdialog -R $dname +r 10 }
  if ($dname == dbrt-norm) { .dcx Mark $dname dbrt-norm_work16 | .xdialog -g $dname +b $rgb(95,148,34) | .xdialog -c $dname 16 text 25 40 150 100 transparent noformat center | .xdid -f $dname 16 +b ansi 20 Tahoma | .xdid -t $dname 16 no border styles }
}
alias dbrt_work1 {} | alias dbrt_work2 {} | alias dbrt_work3 {} | alias dbrt_work4 {} | alias dbrt_work5 {}
alias dbrt_work6 {} | alias dbrt_work7 {} | alias dbrt_work8 {} | alias dbrt_work9 {} | alias dbrt_work10 {}
alias dbrt_work11 {} | alias dbrt_work12 {} | alias dbrt_work13 {} | alias dbrt_work14 {} | alias dbrt_work15 {} | alias dbrt-norm_work16 {}