🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #5320

Re: 2.0's 3D gadgets. How?

#5320
From: Peter Cherna
Date: Mon, 17 Sep 1990 15:44
59 lines
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!peter
References: <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