By Peter J. Morris [peetm]
Best viewed at 1280 x 1024 [sorry, I'm useless at web stuff]
Part 1: The 16-bit and 'Book Days'
[Part 2: The 32-bit Days]
You perhaps know how it is ... |
|
Nowadays, when we want to know if our machines are CPU-bound, we're all used to hitting Ctrl + Alt + Del to get to the task-manager - and from there to the performance pane.
XP's 'Perf Meter'
|
|
|
![]() |
If memory serves, this was a pretty easy thing to do with Windows 3, the only limitation being the time it took to actually draw the menu. I got around that by doing some 'off screen' stuff though - no big deal, and I think it took just a few hours work.
Ok, so I didn't get around to coming up with a neat solution to displaying symbolic fonts, although to substitute the particular font for the system font would have been easy - perhaps with a bracketed (sym) added to its name?
Q. What happens if you've got more fonts that can fit on the menu?
Back then, the menu would go off screen - if I remember right, it would go off the top and bottom an equal amount, i.e., it would leave only the centre of the menu visible on-screen. Hmmm. More on how to fix that problem can be found further below.
|
|
Some history:
Now, this wasn't new, as Presentation Manager had this type of menu already [that's OS/2's PM for those that remember such things]. I worked a bit on PM and I really liked this feature - and, if PM had it, well I thought, why shouldn't Windows!
At the time, I remember trying to convince the lead programmer on the Windows team that this should be put into 3.0; I guess that, as it wasn't, he wasn't interested [not invented here perhaps?]
So there you have it - non-dismissible menus in Windows 3.0
Anyway, I'm pretty sure that IBM would have patented this, so it's not one I'm dwelling on here. However it did lead on to something else that I wish I had patented - something that explains this item's title - toolbar or menu.
[Aside] |
|
With this you could move menus around, and place them wherever you wanted - meaning that their functionality was always available.
If you think about it, the result was that you could have multiple non-dismissible menus that could be placed according to the user's preference, i.e., you're left with a floating toolbar type of gadget here!
In the picture you'll see my solution to the problem - something which kind of built on to the non-dismissible menu idea above.
The menus on the right each have an extra item on them - like the 'Dismiss Menu' item show earlier.
Here the item says 'Tear Off', and that's exactly what it did i.e., when this was selected, the menu became a floating window in its own right - and with its own caption bar etc. You could tear off any/all the menus in this way!
|
![]() |
That took a while to get going, and, although I can't remember the exact problem now, I gave it up after a while and included it in the book as an example of having a stab at solving a problem, i.e., that you then might think on for a while - and then revisit and later improve upon [hopefully].
What I did in the end was to 'get in the knickers' [so to speak] of Windows' menuing system [the book had all the gory details], and the result was that I added scrollbars to the menus themselves, i.e., the only thing I wanted that the listbox gave me was the scrolling - so, why not just add scrolling to menus as standard?
After the book was published I improved this code so as to make it list items that were most frequently used - actually, I just altered it so that that just worked on the fonts menu [something I personally found I really wanted] ... but the code could have been used elsewhere of course. And to think, all of this in the late 80s and early 90s - sigh.
|
|
In the book I came up with a similar idea, i.e., adding some useful buttons to the desktop - including Iconise, i.e., iconise every open window [that could be made iconic] so that you can easily get back to the desktop.
I also added an Exit Windows button - that acted like the modern Start | Turn Off Computer.
After the book was done I layered a transparent window over the top of these. This transparent window was also transparent to the left mouse button [HT_TRANSPARENT processing I seem to remember] - meaning that you could still press the buttons [left clicks fall through to what's underneath].
However, the right mouse button was used to pop-up a menu that contained a list of common programs I liked - left-click to shell [naturally]. Windows did a pretty good job here - in that if any menu contained a sub-menu, when it got selected, Windows would move the menus so that they all fitted on to the screen.
All in all, functionality somewhat akin to what a part of the Windows' Taskbar gives you today.
The end of Part 1, and why the book didn't do so well.
When I wrote the book I worked for ... - well, enough said about that. However, my employer's status certainly helped me in finding a few interested publishers [btw, just in case you ask - there wouldn't have been a block, on my patenting these ideas - even with said employer]. The two best known were Addison Wesley and Prentice Hall - either of which I very much fancied working with [I'm told that my old employer has since created their own publishing arm]!
However, a week or so after I'd talked to these two companies - and after they'd both made me an offer - I was called by a guy who had previously represented one of them [I won't say which] the week before. It turned out that he'd jumped ship and moved from being an acquisitions editor at x, and gone to y [one I'd never heard of before]. He said that y would love the book, and as he knew how much x had offered me [he'd originally offered it!], he knew he could improve upon it! He also told me that y could get it into as many countries and stores as Addison Wesley or Prentice Hall could.
Stupidly I went with y, and y screwed it up IMHO.
I've no idea now how many copies the book sold - over 25,000, but beyond that, I've no idea.
P.S. If you had this book and wondered about some of the code - like it didn't work - it might be because it got typeset using something called Ventura Publisher, and that treated characters like > as some sort of mark-up, and it would occasionally remove them if it thought they were 'bad mark-up' [starting to feel where this is going?], so in the books themselves, expressions like if(n >= i) often got turned in to if(n = i) - just a little bit different!!!!
Want a copy :-)
Can you spot mine amongst my other museum pieces?
Well, at the time of writing, Amazon.co.uk have two available starting at £118 http://tinyurl.com/229w6y! And their .com has two for $40 http://tinyurl.com/yr45c3.
Failing that, just Google for the ISBN: http://tinyurl.com/23h5vq
|
Copyright © 2007 by peetm. peet.morris -at- cslab.com |
|