GUI feature wishlist

Propose new features and changes
canisdibellum
Posts: 47
Joined: 09 Oct 2014, 11:44

GUI feature wishlist

23 Jun 2016, 03:30

Firstus, I want to start with thanking Lexikos...I know you didn't start AHK but you've made it very powerful and useful...it helped me discover my love of coding...I'f i'd attempted to start with anything else (even VB) I would've written the whole thing off as too complicated.

ok on to the ideas (Numbers and letters are ideas, bullets are explanations, please keep in mind I know nothing about Windows API and if it is even possible to implement any of them. )

1. built-in command or function to "Anchor" a gui to another window(even non AHK ones)
- Seems like a lot of users use AHK for Overlays and this ability might be enjoyed by many
- I made an overlay for PuTTY once and it was possible but complicated to keep it tethered to the window (it was early in my scripting career, maybe I just didn't know enough yet)

2. Listviews....ah listviews...love them but man they can be a pain to interact with...couple notes. Keep in mind I'm writing this in the middle of a project of over a year writing an Inventory Program and I'm very much used to Excel.

(yes I said program, idgaf if AHK is a scripting language not a programming language, IMO if a final product can stand alone without interacting with anything else, it's a program, plain and simple. Specifically if it has a GUI.)

a) is it possible to implement the ability to edit cells other than Column 1 in-cell?
- Found one in the forums and even wound up making something similar using sendmessages and dll calls to make a gui with the right positioning but it's...unreliable at best (it doesn't even work on the bottom 2 rows :problem: let the troubleshooting commence!)

b) the ability to change a range of values at once
- currently possible but when the LV size gets any kind of size, looping through and changing each gets very slow and looks sloppy (yes, I realize that even excel gets bogged down if the spreadsheet is big enough, but mine was slowed way down with only 300 lines!)

c) a search function
- I know, possible but slow using current methods

d) copy row/column (as pipe or tab delimited values would be nice) function?
- My current project has to compile lists from columns at any given time throughout use (like for filling DDLs and comboboxes) and gets pretty slow even with only 300 lines. It seems like it'd be faster to be able to dump a whole column into memory and parse through it or string replace or sort U or whatever than to go, line by line, through a physical control.

e) having the "Sort" option on an LV seems to be a bit tricky if user needs to manipulate data since the row numbers aren't in order any more...is there a way to force a re-assignment of the row numbers? (or am I just using the sort option wrong? if I tell it to retrieve a value that I see in Row 9, it would grab a totally different row even rows that are found programmatically can be incorrect)

f) filter options would be awesome
- I currently have some clunky ones using external DDL's but they can be a pain to load correctly (see my earlier statement about a proposed column copy function) and my End users are complaining about the confusing interface with the filters not being able to be aligned over the columns they filter.

...which brings me to....

3) ability to update control autosize to encompass changed content
- mostly talking about DDL's but unless I'm missing something, once you add a control, theres no way to go back and get it to refresh its autosize (but, then again, my google-fu and forum-fu have started to appear weak as of late when it comes to AHK)
- saw quite a few complaints and kludgy workarounds for DDL's in forums but it would be nice to have built-in support

4) can we please, please, please, get some kind of way to have colored buttons?
- No solution I've seen (that still has code posted) has been able to implement a windows 7+ button with a different colored highlight than the default (except maybe one that actually changed a windows config file but I didn't try that one because my program won't be used on systems we have Admin access to)
- I'm almost positive I've seen it in non-ahk programs before, this makes me think it MAY be possible (or possibly the developers were really clever....or just really artistic and colored each pixel of a stock button, used pictures and really understood messages or maybe even that language they used was more versatile)

Thanks for your time.
I apologize for bad grammar, spelling, and tangential writing method.... it's nearly 3:30 am and I get up at 6 every day :|
ok off to bed

Edit:
Oh one more thing,
5) the ability to Align Controls, like centering in a gui or evenly distributed horizontally or vertically
- I don't really mind doing the math, but this is a wishlist after all
lexikos
Posts: 9690
Joined: 30 Sep 2013, 04:07
Contact:

Re: Feature wishlist

23 Jun 2016, 21:35

"Feature wishlist" is not at all a useful subject line in the Wish List forum. I have added the keyword "GUI".

1. Just use one of the existing script functions.

2. Most of these are beyond what a standard ListView control allows for. Aside from syntax and possibly performance, any built-in implementation would likely work exactly the same as a script one, only written in C++ instead of AutoHotkey. I'm not interested in implementing any of them myself.

2a. It can be done in script without great difficulty, and without any issues. You just need to retrieve the position and size of the cell using LVM_GETSUBITEMRECT and show an Edit control. If you have code that works for all rows except the last two, I think that's not due to any inherent problem with ListViews but just a bug in the script.

2b. For performance, you should disable redraw temporarily (using WM_SETREDRAW) while modifying large amounts of data.

2e. It's only tricky if the user needs to know/specify the row number. If the user simply highlights or clicks rows, you will be given the correct row number. The only way to reset the row numbers when sorting items would be to manually sort the data yourself and clear and repopulate the ListView.

2f. Presuming you mean to apply a filter to which rows appear, I'm not aware of any built-in capability of the control to do this, or even to hide items. You would need to actually remove the items that you don't want to appear.

4. I've never seen a system-themed button that was a non-default colour, and I suspect that any buttons you'll find with non-default appearance are not using the system theme.

3. This might be worth implementing, for those types of controls which are autosized. Some are not.
canisdibellum
Posts: 47
Joined: 09 Oct 2014, 11:44

Re: GUI feature wishlist

24 Jun 2016, 00:17

Fair enough on all counts...I appreciate your time and honestly expected a "No" on all counts...I assumed most if any limitations were either because of C++ or the windows API or even more than likely my own lack of knowledge, even with 2 years experience (I really need to figure out DLL calls and messages, I almost got sendmessage with wm_commands down or atleast a good list of resources)...and just to make myself look even worse I found out solutions to 1 and 2d on my own today.....2d was almost completely by accident while I was researching something else (ControlGet...who knew?) :oops:

Good tip with disabling redraw BTW hadn't even occurred to me but it makes total sense
lexikos
Posts: 9690
Joined: 30 Sep 2013, 04:07
Contact:

Re: GUI feature wishlist

29 Jul 2016, 04:00

2a. I guess that you were using LV_InCellEdit, since I see you posted in that thread. You probably already know about the new version needing testing.

2c. I don't know what "current method" you're referring to, but I suspect it's not LV_EX_FindString, which uses the ListView's built-in search functionality. Any speed difference between that and a built-in function would probably be negligible.

Return to “Wish List”

Who is online

Users browsing this forum: No registered users and 32 guests