Before I do any double work I want ask if this already has been done:
I want one row of icons of fixed width, but variable height, (thumbnails) at the bottom of each page. If more icons than fit in one row exist I want any extra icons to be completely hidden. If hidden icons exist, and a window is deiconified the first hidden icon should take it’s place (or the icons should collapse and the newly visible icons should be added rightmost (I’ve not decided on that yet.))
Finally I want active edges alongside the iconrow to rotate the visible icons for hidden icons.
I got all thumbnailing working, and have a one row IconBox currently, but when it fills Icons start adding to other places on the page. Does anyone know of an existing function setup or module that achives the above?
That’s going to be tricky to implement – and there’s certainly nothing like that in FVWM at this time. I am even having trouble stretching my poor brain around some half-baked implementation. You can specify multiple IconBoxes which (depending on the order they’re defined in) will get used as and when they’re filled. What you can’t do with that of course, is track which icons are being iconified to which iconbox. If you could, then scripting a solution to your question would be relatively trivial.
So – what about another idea? You could probably also do this using FvwmIconBox too – but I’ll let you read up on that.
I’ve been doing some tests, and it seems as playing around with the NoIcon style is the way to do it. When displaying an icon that was prevously hidden with NoIcon it will be placed in any open spot. I guess I could script something that keeps track of the number of icons per pages and knows if a new icon should be NoIcon or !NoIcon. Then deiconifying something should take the next NoIcon iconified window (to bad that isn’t a conditional) and make it !NoIcon, and it would take up the spot of the deiconified window.
As for rotation I guess that Hiding the first icon, and then doing PlaceAgain Icon on the next in order before unhiding the first hidden icon should do it.
The trick is that I need to maintain an Icon ring, and thus can’t use Next or Prev to get the corect result. To me it seems as if I have to write a simple module that maintains the Icon ring for me. Any other take on this?
I’m afraid you’ll have to implement that yourself. A module would be OK as proof of concept, but having it as part of the core code base (to complement the window ring already in use for non-iconified windows) would be a nice counterpart.
Other than that I don’t have anything else to add. (Dissappointment, really. :P)
I know adding conditionals is quite straightforward, and I’ll probably do it myself if I need it. I’m not there just yet.
Well. You got to state everything that is obvious if you ever are to get a clear view of what is not so obvious.
As a first initial proof of concept (and as a way of learning the module interface better) I’ve created a window ring module, which I (due to lack of ideas) call FvwmWindowRing. It’s not much but it’s a base to start at, and probably is everything but the HasNoIcon conditional that is needed to do some sort of implementation of what I need.
From here I should either extend the module to automaticly maintain a ring of all iconifired windows, in order of iconification. Either by adding options to it, create another module based on it, or maybe interface it with FvwmEvent or some new specialized module.