|
3-5-03
Cropping Graphics with REALbasic (Part 3) by
Erick Tejkowsi
Due to illness, I was unable to post the third part of the Cropping Graphics tutorial last Thursday. To help you catch up,
we'll cover two tutorials this week. Instead of the usual REALbasic News, today we'll look at Part 3 of the tutorial. Then, next time we'll complete the project.
These tutorials cover the basics of how to implement click-and-drag graphics selection and cropping, like you'll find
in many popular applications (e.g.Photoshop, iPhoto, and the Finder). This week we'll add some more color and give the user
another selection choice.
The tutorial emulates a Cocoa project available from Apple.
As we progress through the project each week,
we'll add various features to mimic the original Apple example. So, go check out the original code and come back here
ready for some REALbasic coding. NOTE: This demo is made with OS X in mind.
Augment the Interface
Launch REALbasic and open a copy of the last project.
Add another PopupMenu control (named PopupMenu2) to Window1. Click the Edit button in the InitialValue property of PopupMenu2
in the Properties window. In the dialog that appears, add the following words (each on its own line): Plain, Finder, iPhoto. Then, edit the existing PopupMenu1 control.
Click the Edit button in the InitialValue property of PopupMenu1
in the Properties window. In the dialog that appears, add the color "Gray" ("Grey" for you Canadians. :-)
You can position the controls anywhere in the window that you want. Here's what a sample interface might look like.
That's it for the interface additions this time. Let's move on to the code.
Add the Code
Double-click the Window Editor of Window1 to open the Code Editor. Click on the
existing DrawMask method and change its code to:
pictureMask = newpicture(canvas1.width,canvas1.height,32)
select case popupMenu1.listindex
case 0
//red
pictureMask.graphics.foreColor = rgb(255,0,0)
case 1
//red
pictureMask.graphics.foreColor = rgb(0,255,0)
case 2
//blue
pictureMask.graphics.foreColor = rgb(0,0,255)
case 3
//grey
pictureMask.graphics.foreColor = rgb(200,200,200)
end select
pictureMask.graphics.fillrect 0,0,canvas1.width,canvas1.height
pictureMask.mask.graphics.foreColor = rgb(192,192,192)
pictureMask.mask.graphics.fillrect 0,0,canvas1.width,canvas1.height
Then, navigate to the MouseDrag event of Canvas1 Remove the code that you have there in favor
of the new code. This bit of code incorporates features in the first and second parts of this tutorial. It also adds
the new iPhoto selection style. Further, it takes the new PopupMenu2 control into account. Because this code snippet is a tad lengthy
and exta-wide (for web browsers), I stuck it in a textbox for easier "copy and pasting".
Select Debug-Run to test your work. Click and drag in the image on the left side of the window to view a cropped version
on the right side. Play around with the colors and the selection styles to see how it works.
Conclusion
You can
download the completed project for this week here.
We'll continue adding features to the project next time. See you then!
2-26-03
REALbasic News
by Erick Tejkowsi
REALbasic 5.0 Release
The big news for REALbasic users this week is the release of REALbasic 5.0.
In this version you'll find lots of great new features.
To give you an idea of how major this upgrade is, check out this list:
Mac OS X Features
As Apple improves Carbon support in Mac OS X, REALbasic gets a bunch of
features that were once limited to Cocoa developers.
Metal windows, Drawers, Toolbars, Quartz, and Dock icons. They're all available in REALbasic 5. You'll find
other goodies like Keychain access and Unicode support here too.
Internet
Since REALbasic first hit the Mac scene, one of its attractive features has been its Internet connectivity.
While earlier versions of REALbasic provided you with a simple Socket control, using them was a "roll-your-own" affair.
REALbasic 5 revamps the Socket control with pumped up features to boot. Instead of worrying about the
various Internet protocols, REALbasic 5 implements HTTP, SSL, UDP, SMTP and POP3... and they're easy to use too!
Until now, you had to rely on 3rd party solutions to perform tasks with these protocols. Now, they're just a couple clicks
and a few lines of code away.
Compiler and Debugger
The biggest change in REALbasic 5 is its compiler. REALbasic sports a new two-pass compiler. (If you don't know what that means,
rest assured, it's better :-) This compiler redesign also paves the way for the forthcoming release of REALbasic for Windows (later this Spring).
In addition to the new compiler, you'll notice that REALbasic 5 performs debugging in a different fashion.
Gone is the "run it in the IDE" of yesteryear. Now, REALbasic simply builds a copy of your application and lets you debug it that way.
This makes REALbasic more stable, since it won't be affected by something bad that your application does. Further,
it allows permits you to more closely judge your application's operations, since it mimics the final build.
Look and Feel
My initial tests of REALbasic 5 on Mac OS X are superb. This version improves performance dramatically over REALbasic 4.5.2.
The Code Editor feels much more responsive now, the annoying double-click misfires have disappeared, and the screen
refreshes much better. There are also lots of little interface tweaks to the REALbasic IDE. You'll find some new
controls in the Toolbar (now called the "Controls" window), multiple menubar support, and updated Help, to name a few.
Conclusion
Thumbs up for REALbasic 5! This version has taken significant steps in improving the REALbasic experience.
Besides all the great new OS X-related features and improved network functionality, REALbasic 5 jumps way ahead
in the compiler and debugger department. I'm skipping over some new features and various bug fixes, but these highlights
alone should give you plenty of reasons to try it out. We'll be covering many of these new features here in the REALbasic section
of ResExcellence in the coming weeks and months. Stay tuned!
|