twig / dcxdll

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

List - new ideas and proposals to fix and improve for update the control #71

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.

My proposals for what needs to be added or corrected in “List” to make it maximally functional and beautiful:

  1. Add a new style striped with customizable background colors (in a gradient) for two lines that will alternate following each other to create a striped list reminiscent of a zebra. An example of a new command or flag for this style:

    • Syntax: /xdid -C [DNAME] [ID] [+FLAGS] [START-COLOR1] [END-COLOR1] [START-COLOR2] [END-COLOR2]
    • [START-COLOR1] [END-COLOR1] - gradient colors of the first line of the list
    • [START-COLOR2] [END-COLOR2] - gradient colors of the second line of the list
    • Example: /xdid -C dcx 4 +c $rgb(51,51,64) $rgb(51,51,55) $rgb(37,37,51) $rgb(37,37,42)

    image

  2. Add a new command and flags to set indent margin and padding for lines (in pixels), similar to how in "HTML/CSS".

    • Syntax: /xdid -I [DNAME] [ID] [+FLAGS] [TOP] [RIGHT] [BOTTOM] [LEFT]
    • Example for margin: /xdid -I dcx 4 +m 1 3 1 3
    • Example for padding: /xdid -I dcx 4 +p 4 2 4 2
    • Note: This should also affect to indent in lines when using the striped style.
  3. Add customizable background colors (in gradient) to the highlighted line based on its "Disabled/Hovering/Normal/Selected" state.

  4. Add customizable colors for line text based on "Disabled/Hovering/Normal/Selected" state.

  5. Add a new style frame to display a frame around each line, with customizable thickness in pixels and colors (in gradient) depending on the "Disabled/Hovering/Normal/Selected" state.

  6. Add a new style separator to display horizontal separator between the lines, with customizable color and thickness in pixels.

  7. Add a new style right for align text to the right border of the control.

  8. Add a new style sepcol to work with style multicol to display a vertical separator strip between columns.

  9. Add a new style showlinenumbers to display the gutter with line numbering for counting.

  10. Expand functionality for the style transparent, so that only the background and highlighting lines can become transparent (without affecting the text) and the transparency level was regulation using the command: /xdid -R dcx 4 +b 2 [0-255] - through the number +b 2, so as not to break backward compatibility for those who use the effect through the number +b 1.


Perhaps, to make all these updates, will have to rewrite most of the source code, but it's worth it, because with these new settings, be able to create full-fledged, incredibly beautiful visual effects for the "List" control.

I recorded a demo video with an example of how this might look after the update:  🎥 Video  (open in a new browser tab).

To create such a pseudo-list, it took me to use as many as 3 controls: "Panel & Line & Text" and in addition write a bunch of code in the callback alias to create the effects. But in fact, all this should be able to do only one the "List" control.

image image

I hope you will succeed and will be able to implement this. Thanks. 👍