Article View: comp.sys.amiga.tech
Article #5320Re: 2.0's 3D gadgets. How?
From: Peter Cherna
Date: Mon, 17 Sep 1990 15:44
Date: Mon, 17 Sep 1990 15:44
59 lines
3188 bytes
3188 bytes
In article <33989@cup.portal.com> davids@cup.portal.com (David Kenneth Schreiber) writes:
>Is there something special I have to do so that the various system gadgets
>(depth, close, etc.) look 3Dish on a custom screen? I've been experimenting
>with a 640x400x2 screen with the same palette, DetailPen, and BlockPen as
>the Workbench screen, but none of the default gadgets (or the gadgets
>in the default file requestor) have the normal 2.0 look. What have I
>missed (the NewScreen and NewWindow structures are set up exactly as they
>would be under 1.3)? I'm running KS version 36.141 and SAS/C 5.10 on a
>3000. Thanks.
There is a way, and it's not hard.
Unfortunately, Intuition has no way of determining the right colors to
use for all the fancy 3D-appearance unless you tell it.
Intuition has several pens it needs definitions for. In order, here they
are. (The values used for the Workbench screen are shown in brackets).
detailPen - Same as screen's DetailPen. Used for things like text in
the screen title. (Gray on WB)
blockPen - Same as screen's BlockPen. Used for the screen drag bar itself.
(Black on WB)
textPen - Normal color for text. This is usually pen 1. (Black on WB)
shinePen - Color to use for the bright edges of 3D objects. (White on WB)
shadowPen - Color to use for dark edges of 3D objects. (Black on WB)
hifillPen - Color to fill active areas, like the border of the active
window. Clever gadgets highlight to this color. (Blue on WB)
hifilltextPen - Text to use over hifillPen. The title of the active
window uses this pen. (Black on WB)
backgroundPen - Background color. Normally pen zero. (Gray on WB)
hilighttextPen - A bright text color used on the normal background.
The preferences editors use this color. (Blue on WB)
To specify these pens, you need to pass the SA_Pens tag item to
OpenScreenTags(). Create an array of UWORD, terminated by ~0.
For the WB, you would have
wbPens = {0, 1, 1, 2, 1, 3, 1, 0, 3, ~0};
Then you would say
myscreen = OpenScreenTags(&mynewscreen,
SA_Pens, wbPens,
TAG_DONE);
If you want to be 1.3-compatible as well, then you should set
the NS_EXTENDED bit in NewScreen->Flags, and use the ExtNewScreen
structure, which can contain a pointer to the tag-list with SA_Pens
in it. You can pass the ExtNewScreen to OpenScreen() and 1.3
will ignore it.
>-Dave Schreiber at davids@cup.portal.com Trial quote #3:
Peter
--
Peter Cherna, Software Engineer, Commodore-Amiga, Inc.
{uunet|rutgers}!cbmvax!peter peter@cbmvax.cbm.commodore.com
My opinions do not necessarily represent the opinions of my employer.
"Very strange... the window is broken on both sides."
Technical Details
Message-ID:
<14481@cbmvax.commodore.com>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rutgers!uwm.edu!cs.utexas.edu!uunet!cbmvax!peterReferences:
<33989@cup.portal.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rutgers!uwm.edu!cs.utexas.edu!uunet!cbmvax!peter From: peter@cbmvax.commodore.com (Peter Cherna) Newsgroups: comp.sys.amiga.tech Subject: Re: 2.0's 3D gadgets. How? Message-ID: <14481@cbmvax.commodore.com> Date: 17 Sep 90 15:44:29 GMT References: <33989@cup.portal.com> Reply-To: peter@cbmvax.commodore.com (Peter Cherna) Distribution: usa Organization: Commodore, West Chester, PA Lines: 59