AS studio and Interface Builder

Is there a way to give windows in interface builder the same look that the Apple Pro apps have? I have heard it referred to as “Dark Aqua” and “Graphite”, but it is not the same Graphite that one sets in system preferences. It still maintains the blue buttons and the red, yellow, green window controlls, it just has a dark gray window instead of the subtle horizontal lines.

Dr. Scotty Delicious, Scientist.

It’s not a switch you can throw, no. You might want to start here:

Thanks Mikey.
That link has actually been one of my bookmarks for some time!
Which part of it did you think would be most useful in the situation of a non standard NSWindow?

Here is a screen shot of the app I am working on, which is working well, with a few things like image upload and some more advanced rich text WYIWYG html stuff to finish, but I got several requests to make it look more like iTunes or better yet the pro apps like FCP or DVDSP

*** EDIT ***
I guess image tags aren’t working
Command Control Screen Shot.

Dr. Scotty Delicious, Scientist.

All of it. If you subclass NSWindow to alter its look, most or all of those standard controls and views will look out of place, and you’ll need to understand the intricacies of subclassing them, as well. At that point, it shouldn’t be an AppleScript thing, it should be a full-blown MVC-centric application.

Welcome to Cocoa. It’s nice here.

Thanks Mikey.

I was sort of hoping it wouldn’t be a full blown subclass of NSWindow, but I guess that is wishful thinkig! LOL
Anyway, thanks a lot for your response, I appreciate your time, Time to start from scratch <cracks_knuckles>tears open NSWindow and gasps!</cracks_knuckles>

Dr. Scotty Delicious, Scientist.

It just depends on what you want it to look like. You may only need to alter a few things, not every single control.

But stop to think for a second, before you start writing code:

Is this an application that will benefit from looking like Final Cut Pro? Just because some people request something doesn’t mean they know what they want (users usually don’t) or that they know what’s best for your application.

You need more design goals than “some people requested something somewhat non-specific”, before you start.

just in case an iApp look was sufficient … there is an open source subclass by Matt Gemmell you could eventually use: → ‘TunesWindow’


As long as he knows not to implement something he doesn’t fully grasp. Use Gemmell’s source as a learning tool first, then once you understand it, rock out with it.

I must confess, it seems to me you that it is you that is being the rude one. While I’ve disagreed with mikey-san about things in the past, I completely agree with what he has to say on this one.

Well, yeah… duh. As a developer, you should never implement anything in your code or application that you can not pick apart completely and then re-write yourself. Not to make your job more complicated, but because things often cause unforeseen problems when you simply copy and paste them. I’ve cut&pasted MANY things I’ve found on the internet, such as routines or subclasses, only to have them conflict with other bits of code later on or in certain circumstances. Thanking dominik for the “find” and then admiting you have no idea how or why it works shows your ignorance on the matter and an obvious disregard for common coding practices. Open-source code is typically distributed as such for your learning, not just as an end-all. Just because it works, doesn’t mean you should use it. Some of us here find that out the hard way, and are here telling you about it as a service to you, not to be jerks about it. The ONLY reason any of us regulars are here for any period of time is to help people like you… to help you cut corners and to take some of the burden off of your learning curve. Most of us end up leaving because people like you take us for granted and don’t show US the proper respect for helping you do things you otherwise couldn’t. Jumping the gun and attacking mikey-san for offering his honest opinion (formulated by actual experience, I might add) is what’s insulting here, and shows your obvious lack of understanding of how “online etiquette” works, even in this forum with it’s exceedingly kind and helpful members. Just because mikey-san didn’t submit a big chunk of code that magically solved all of your problems for you doesn’t mean that he didn’t offer you something helpful.

As of this post, you’ve got 26 posts here at this forum. That says a lot to me, both about your experience level and your ‘place’ in this little world. I consider us all equal, no matter what our experience level… UNTIL, someone like you comes along and pretends like you’ve got it all figured out. If you’re such an expert, then why did you have to post asking for help in the first place? Sometimes the answers we get are not the ones we want to hear, but they’re the right answers, nonetheless. Don’t jump to conclusions unless you really do have all the answers. While I sometimes take issue with HOW people post, I rarely take issue when people post something useful. While you may not see his post as particularly useful now, you may re-read this thread in a few years and feel the urge to delete your comments. Mikey-san only speaks the truth, as difficult as the truth can be and as poor as his choice of words may or may not be. Once you have some more experience to base your judgments on, you may find yourself agreeing with his input rather than being defensive about it. Personally, I believe he couldn’t have been more to the point and more honest. If that upsets you, you must be from la-la land. Sounds like you’ll be needing your wife again, this time for a shoulder to cry one and then a happy hand-holding skip through a field of daisies. Note that we can be sarcastic and condescending too, so don’t get in the habit of dishing it out too much. We all have our own personalities and quirks. If you take EVERYTHING as an insult, you’re going to run out of friends here quickly.

Oh, no… the gloves are off. :rolleyes:

Good point, and this is assumed at this forum. When all people do is ask, ask, ask… about every little thing… it starts to rub many of us the wrong way. You do seem to be enthusiastic and working hard to achieve your goals. This is commendable and I encourage that. I suggest that you take mikey-san’s advice (“Use Gemmell’s source as a learning tool first, then once you understand it, rock out with it.”), though, and work it out FIRST, not last. At no time does he say you shouldn’t do it, he just said figure it out fully before you implement it and then forget it. You’re the one who’s making up his input in your head, and then judging him based on what you assume. If I had bothered to write you any suggestions, I’d probably have said the same thing as mikey-san, but I probably wouldn’t have been so nice about it as he was. In fact, I’d have probably laid into you for whining about not subclassing nswindow. If you want to alter the window, why would you do anything BUT subclass the window? That’s standard procedure, and doing anything but would be a hack and I’d have let you know it. Anyways, waiting to figure out code you’ve just added until “later, maybe” sounds like a ridiculous approach. I especially think so if this will be for anyone but yourself. As a “developer”, you have a responsibility that goes above and beyond simply writing scripts that do stuff and cramming them into an interface. While I’m not a nazi about the human interface guidelines, I do encourage using them as just that… guidelines, and finding solutions that are sound and supported. It could be that the code you’ve downloaded to achieve a certain task was written in 2003, and there’s a 1-line bit of code available now that does the same thing. It could be that implementing a major interface subclass requires subclassing dozens of other subclasses just to add true support. It could be that you have to add more custom methods derived from other places that are inherently incompatible with this implementation… causing you much grief and forcing you to later un-implement everything. Considering these things and more… all of which more experienced people such as mikey-san can support through actual development time… I think that encouraging you to take a day or two to figure out what every line of code does is not that bad of an idea. This is one place where your enthusiasm may get you into trouble. Developing a significant application takes A LONG TIME. I’ve been reworking Chronicle for nearly a year, and am still a ways away from beta testing… much to my dismay. But I’m not cutting corners, and I’m not rushing to an early release… because ultimately people like you will get their hands on it and I don’t want it to freak out when you do something stupid with it. I’m taking my time, making sure that everything I’ve coded works well, is not waiting to explode, and is done PROPERLY. The biggest mistake you can make is rushing to say “I’m finished!”. If this is for anyone but you, it will likely NEVER be finished.

This is another thing you’ve done right, and again, I commend this. But don’t use your thanks to some people as a statement of judgment against someone else. Rubbing your approval of one person in the face of someone else you don’t like at the moment is hardly a decent or professional way of doing business with others… especially not in public. Not only have you said a lot about yourself, now that it’s here for us all to see, you’ve kind of made an ass out of yourself. Yes, you may make a statement to mikey-san about how you feel about him, but the rest of us take note, too. Is the only reason you care to thank one person for their help is because someone else offended you? I take note of what pretty much everyone does here, especially what the newbies do. By being unreasonable regarding mikey-san’s replies, you illustrate to people like me that you’re not worth my time to help. While I do not sit atop a high horse, I know for fact that I’ve been of great help to a great deal of people. By expressing to us all that you are beyond our opinions (whatever they may be) and that you already know it all, you may find that more and more people are unwilling to help you with your requests.

Take care, and lighten up… we’re only trying to help…

Consider my position on the subject “corrected”
My apologies.


I wouldn’t have recommended Matt’s subclass if I just had ‘found’ the link. Some time ago I was looking for an iApp window class, found, tried it, trashed it then and wrote my own. But no - it isn’t buggy/crashing/unstable at all … - I simply didn’t like the way it creates the gradient image from several pngs … :wink:

Let me start over and begin with this:

I am an AppleScript novice.
I came to this forum in search of help and advice from those who have been there and solved these problems before.

Somewhere along the way in this post I made the mistake of thinking that I get to decide who I am going to be able to learn from. That is one of the gravest mistakes a person, especially a novice can make. For that, I apologize.

I made a second mistake in taking personally some implication that I perceived that may or may not have actually been implied, but if it was, it was correct. I don’t know WTF I am talking about… yet. (someday, I hope).

I made a third mistake in intentionally trying to insult a fellow forum member… a senior, experienced member, who I stand to learn a lot from. I hope I have not burned a bridge that can never be rebuilt.

Honestly, I probably made a ton of mistakes that I am not even aware of yet, but I sincerely apologize to this forum community for the mistakes I made, and as soon as I understand the ones I am not aware of, I will apologize for them as well. I hope there is something I can do to move forward with this community and help to set aside any hard feelings that I undoubtedly created with my unchecked attitued.

Dr. Scotty Delicious, Scientist.

In my eyes, you’ve already done it. Dont’ worry about it. I’ve done the same thing, with a handful of other guys here in the forum. Some are now good friends, others are still jerks. :wink:

It’s not just about an apology or an admittance of guilt. It’s not about being kind to everyone, or being the bigger man, or righting all past wrongs. If you’d not have said anything in the way of an explanation or apology, I still would have given you my time and respect to a certain extent. It’s all about the long term, and is ultimately how you act in the end that makes the biggest statement. One thing people get to doing is taking everything they find here (or on the web in general) for granted. The truth is that everything you see here, especially some of the major examples or solutions posted by members, takes time… often lots of it… to come up with. Sometimes it takes DAYS to figure out simple things, and the knowledge that is derived from this exploration is what is such a valuable resource in places like this. When I spend a great deal of time on something and get to the point where I feel comfortable telling others about it, it’s a bit of a slap in the face to have someone so quickly dismiss my input.

While it may have come across like it, I hope you can see that I wasn’t trying to be offensive or insulting as an angry response to your words or actions. I was merely pointing out that while we are often quick to judge others, it’s usually ourselves not seeing things through others’ eyes that is the true conflict. And I’m not dishing it out any more or less than I’m accepting responsibility for doing the same. I have many friends here at macscripter with whom I’ve developed relationships through willingness to help and honesty. I also have some sour relationships, and some people I’ve blacklisted and refuse to help, based on how our correspondence has gone or how they’ve acted between them and myself and/or others. You, you’ve not yet made any of my lists, and as I said, I think you seem to have the interest and enthusiasm to have a solid career as a developer. Just be more willing to listen to what others have to say. It’s usually pretty obvious when people are trying to be mean, and when they just have a coarse attitude in general. I sometimes come across as both, but I… like most regulars here… are just here to help. My opinion or you, having never met you, doesn’t yet exist. Keep it professional and cordial, and I would expect that most people… including myself… will be more than willing to enjoy your company here.

Take care, and have fun… :cool: