• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Kaleidoscope Scheme to Appearance Theme Conversion

Dennis Nedry

Well-known member
kaleidoscope.net just recently went out of existence. Is this a coincidence, or does anyone think it's related to the development here? Now I have no idea how to get in touch with those people, the email address was @kaleidoscope.net! I would like to talk to those guys but it's a real challenge to find them.

If anything, what we're doing here would bring back interest to Kaleidoscope, I don't know how it would upset anyone, especially considering that it was developed by just a couple of guys who probably care a lot about it.

Would anyone be willing to help track these guys down? Greg Landweber designed the engine and Arlo Rose made some schemes from what I understand. It would be great to move forward with this project, but it's not going to happen if we're upsetting people in the process. This is just for fun, that's the entire point.

edit

I found this page:

http://math.bard.edu/greg/biography.php

I'll fire him a message.

 

Dennis Nedry

Well-known member
Me likes the looks of this. :D

I added a bit to the 'layo' builder that eliminates repeat coordinate entries. I went from over 100 coordinates down to 8 on the bevel buttons! Wow. Also some bug reduction concerning the 0th element in 'layo's. I had just skipped it and wasted the memory in the program, though it didn't affect the final output. But it's less likely to cause a bug without that.

Picture 4.png

 

Dennis Nedry

Well-known member
Are there tabs within these glitches? Yay! These act a little bit different with the 'cinf' resource, so it'll take a bit more hacking. The 'cinf's that I've done so far stretch both vertical and horizontal, and these stretch only horizontal, thus the strangeness. Also I'm not exactly sure where to position the text.

Picture 6.png

 

Dennis Nedry

Well-known member
Well, that's it for tonight. Large North Tabs are working but I don't approve of my hackmanship. I have to figure out more detail about this cinf stuff.

I would like to point out again that embossed text is not supported in themes, so this is as good as the tabs can look.

Picture-11.gif

 

Dennis Nedry

Well-known member
It's official! We have permission from Greg Landweber to develop this converter! When I get back home on Monday, I'll post the latest source code. It's a pretty big jump from the previous version that I posted.

The scheme seen in the last couple of images is "Scherzo!", which is included with Kaleidoscope. Window frames are 'wnd#' in this scheme, so the window frames won't be working for a while.

I made a Gizmo-like theme a long time ago called Doohickey. There's also one that looks a lot like Mac OS X 10.2. I made only a few themes, but they are high quality:

http://www.d.umn.edu/~bold0070/projects/themes/

You can download, put them in your Mac OS 8.5-9.2.2 "System Folder/Appearance/Themes" folder and select them in the Appearance control panel. These themes are complete and original, ready for everyday use.

 

ChristTrekker

Well-known member
How did Greg's permission go?

I imagine that since Kal is not really a revenue stream for them anymore, and never was for the scheme designers, they couldn't really care less, and thus were gracious enough to give permission. Darn nice of him to do so.

 

Dennis Nedry

Well-known member
Yep, absolutely - that was awesome. It was an e-mail that he sent to me specifically, so I'm not too sure if I should post it directly on here, but basically he said that he didn't have any problem with it, and actually went so far as to ask if we needed any support. If there's an issue with this, I can forward the message to a moderator here for verification purposes. For that matter, a moderator could probably contact Greg directly as well. He seems like a cool, approachable guy.

 

Dennis Nedry

Well-known member
All tabs are done now, and that required me to develop image transformations. (rotate, flip)

Notice the hacked AppearanceSamplePPC about box. Nothing samples all of the tab panes with text. It wasn't a good choice because I can't make that window inactive.

These should be identical to the ones Kaleidoscope displays, with the exception that I fixed some text bounding boxes. The boxes are the same as they are for Apple Platinum now. It is normal for text to not rotate on its own for the east and west tabs.

The original scheme, with Kaleidoscope running, is included for comparison.

Picture-21.gif

Picture-1.gif

 

Dennis Nedry

Well-known member
Slowly but surely.

Check boxes and radio buttons are working now. I've never seen alternate checkbox styles activated in a theme, there's no option anywhere to turn them on, but I put them in there anyway.

Apparently the code only can convert Scherzo! now. OOPS

I have to build in a lot of exceptions, error handling, and check for scheme versions and such. I think I'll focus on this scheme for now and worry about all of that later.

My control.c file is getting enormous, I need to think about how to split that down because it will be many many times larger the way things are going.

Picture 8.png

 

Dennis Nedry

Well-known member
I got the breakdown of control.cpp done. This is much more manageable now.

I ran into an issue with root menu item titles. In Kaleidoscope, the titles overlap by 1 pixel, by means of setting the left bound 1 pixel to the left of the default bounding box. When I attempt to do this in a theme, the extra pixel does not draw on the screen, nor will it draw if I attempt hanging off from the right side. So there's a little issue there, maybe something in the 'tinf' resource will help but I doubt it. I'll just play with it and see what happens.

I found something interesting in the Hi-Tech checkbox layo - they used a NULL type image to make the checkbox redraw, so maybe I'll try that.

 

Dennis Nedry

Well-known member
Here are the pull-down menus. You can see exactly all of the little things I can't do in themes here.

Depending on your browser, you may have to actually click the image to see it in normal size, otherwise it won't display correctly.

Picture-1.gif

 

Dennis Nedry

Well-known member
Tonight, Pop-up Buttons and Arrow Buttons are working, also extensive work was done to hush up all of the errors for non-Scherzo schemes so that it will work on all schemes again.

There's a lot left to do:

Substitute platinum with proper palette for missing items in schemes

Manage different scheme versions and default 'cinf's

Figure out where to find window background colors in newer schemes

layo

Fix ppat VH structure backgrounds (currently pattern starts from incorrect origin, must be fixed by using 'frme's. You can see this problem by converting Antique and looking at the tabs.)

All sliders

All scroll bars

Newer window frames (wnd#)

Disclosure triangle

Little Arrows

Progress bars, indeterminate progress bar

Image well

frme

Design a frame maker software module

Groups / separators

Edit Text frame

List box Frame

Dialog Content Edge

Window Header

Window Placard

I forgot to mention that I finally figured out how the 'tinf' resource works, so now the converter actually spits out a theme that runs all on its own once you run it through Rez and change the type/creator codes.

 

Dennis Nedry

Well-known member
I ran into a glitch with popup buttons. Appearance manager uses clr# color IDs 0, 1, 2 for normal, inactive, and pressed text instead of 17, 18, 19. Because of this, popup button text shares the same color as Alert Window text! There's no fix for that short of hacking the appearance manager. I'm not that crazy.

So here it is, with the wrong text color (should be white)

Picture-3.gif

 

Dennis Nedry

Well-known member
This is parsed directly from a wnd# resource. I have done non-stretching parts of the top and bottom.

Stretch regions are going to be tricky. Sides with 1 or 2 stretch regions should be possible. Because I can only split things in half proportionally in themes, I think that we're stuck with 2^n numbers of stretch regions, otherwise they won't be evenly spaced. Even with, say, 4 stretch regions, all of the little "islands" would have to be the same size. I can calculate anything I want in the converter program, but unfortunately I don't have math functions available directly in themes, all I can do is cut things in half. There may not be many schemes that use more than 2 stretch regions per side, though.

The Close, Zoom and Collapse boxes will require the same color table combination code as the scroll arrows before they will work properly.

This wnd# code is VERY MESSY, most of the code is switch statements. There is nothing done for stretch regions, islands, or left/right sides yet. I did it that way to avoid copy/pasting the same code chunks with little changes, but I think there comes a point where the copy/pasting has an advantage.

Picture-2.gif

Picture-3.gif

 
Top