twig / dcxdll

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

Scroll - new ideas and proposals to fix and improve for update the control #74

Open EpicNet opened 2 years ago

EpicNet commented 2 years ago

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

When creating my own design, I was faced with the impossibility of completely customizing the control "Scroll" in own colors, or use your own images to create a unique look for the scroll. For example, if the design is made in the Gothic style or in some other unusual format, then this of course will differ from the standard appearance. Light gray standard buttons do not fit into the overall concept of the design idea, which makes this control useless when using it. It would be nice to expand the possibilities. Thanks.

My proposals for what needs to be added or corrected in "Scroll", to make it maximally functional and beautiful:

  1. Add new styles hgradient & vgradient to customize colors in gradient.
  2. Add customizable control background colors (in gradient) for different states "Disabled/Hovering/Normal/Selected".
  3. Add customizable button background colors (in gradient) for different states "Disabled/Hovering/Normal/Selected".
  4. Add customizable of arrow colors on buttons for different states "Disabled/Hovering/Normal/Selected".
  5. Add customizable slider background colors (in gradient) for different states "Disabled/Hovering/Normal/Selected".
  6. Add frames in 1 pixel around buttons and slider, with customizable color for these frames.
  7. Add the ability to change the standard button and slider to your own images of any "ICO/JPG/PNG/BMP/GIF" extension.
  8. Add new properties to get the values of all these new functions.

On the left is how it looks now, and on the right is how it could be after the update:

image

image

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

alias F5 { scroll_test }
alias scroll_test {
  if ($dialog(scroll_test)) .dialog -x scroll_test | else { .dialog -m scroll_test scroll_test }
}
dialog scroll_test {
  title "Scroll test"
  icon $mircexe,0
  option pixels
  size -1 -1 300 260
}
on *:DIALOG:scroll_test:init:0:{
  .dcx Mark $dname scroll_test_work
  .xdialog -b $dname +ty
  .xdialog -g $dname +b $rgb(35,35,37)
  .xdialog -c $dname 1 scroll 255 20 20 220 notheme vertical
  .xdid -v $dname 1 50 | .xdid -C $dname 1 +b $rgb(70,63,77)
  .xdialog -c $dname 2 scroll 25 20 220 20 notheme 
  .xdid -v $dname 2 50 | .xdid -C $dname 2 +b $rgb(90,110,130)
  .xdialog -c $dname 3 scroll 25 120 220 20 notheme 
  .xdid -v $dname 3 50 | .xdid -C $dname 3 +b $rgb(120,110,90)
  .xdialog -c $dname 4 scroll 25 220 220 20 notheme 
  .xdid -v $dname 4 50 | .xdid -C $dname 4 +b $rgb(75,110,100)
}
alias scroll_test_work { if ($2 == keydown && $4 == 116) { scroll_test } }