Constructor Question

Constructor Question

Post by david rall » Mon, 22 Sep 2003 13:00:59



I'd like to duplicate the nifty header style that appears in
Constructor's new Catalog window in my own application,
but I'm not sure what the best way to do that would be.

My first guess was that the buttons (Panes, Controls, Views...)
were LBevelButtons, but there are no edges, and the alignment
of the graphics and the text isn't the way it would be in a
BevelButton.

Similar headers are in ProjectBuilder and Interface Builder,
but I assume those applications were done under Cocoa with a
different set of interface elements, unavailable under Carbon

Any ideas? Could the Constructor Constructor please step forward?

david
 
 
 

Constructor Question

Post by Miro Juris » Mon, 22 Sep 2003 13:51:43

In article < XXXX@XXXXX.COM >,



No, you don't. They are not standard UI elements. The best way to do this would
be to use standard UI elements, such as tabs or icon lists.

meeroh

--
If this message helped you, consider buying an item
from my wish list: < http://www.yqcomputer.com/ ;

 
 
 

Constructor Question

Post by Gregory Do » Mon, 22 Sep 2003 15:36:30

> I'd like to duplicate the nifty header style that appears in

The buttons at the top of Constructor's Catalog windows are part of the
LPageController class that is part of PowerPlant.

The "Grayscale Sample" PP example project shows how to use the class.

-- Greg
 
 
 

Constructor Question

Post by Miro Juris » Mon, 22 Sep 2003 23:22:36

In article < XXXX@XXXXX.COM >,



Hey, Greg, when was the last time you ran Constructor? :-)

meeroh

--
If this message helped you, consider buying an item
from my wish list: < http://www.yqcomputer.com/ ;
 
 
 

Constructor Question

Post by Jon Summer » Mon, 22 Sep 2003 23:52:39

>

Hey meeroh, when was the last time you ran Constructor in Classic? :-)


A caveat about using LPlaceHolder as per the "Grayscale Sample" PP example
project. LPlaceHolder.cp documents the class:
"A PlaceHolder temporarily holds an Occupant Pane. The Occupant Pane is
placed inside the PlaceHolder with a specified alignment, and later
restored to its original location. Typically, you will use a PlaceHolder for
printing."
That fine for Printing were the Occupant view is attached to a print view,
and the Occupant is reattached to its original parent view.

But what about tab controllers with dynamic views in the Occupant?
If the subview tree in the Occupant is modified (for example, another tab
controller in the occupant), on changing the parent tab, the saved subview
locations will be invalid and an exception raised when recursively restoring
the subview locations in RemoveOccupant(). The example for tab controller
classes deletes the removed Occupant view when installing a new Occupant, so
the recursive location restore is not useful.

A CTabPlaceHolder subclass that doesn descend the subviews with overrides
void CTabPlaceHolder::SavePlace(LStream* s) { LPane::SavePlace(s); }
void CTabPlaceHolder::RestorePlace(LStream* s) { LPane::RestorePlace(s); }

--
jons(AT)vrtools(DOT)com
 
 
 

Constructor Question

Post by Gregory Do » Tue, 23 Sep 2003 00:15:51

In article < XXXX@XXXXX.COM >,




I still read news under Mac OS 9.

If you run Constructor (from CW 8.3 or CW 9) on Mac OS 9, it uses
LPageController to draw the header buttons/tabs.

Re-reading the user's question, I now see that he was referring to the
buttons with icons and text used on Mac OS X.

From observation, it looks like the header "buttons" are just a table
with one row and multiple columns. The table cells consist of an icon
and text which are drawn manually.

-- Greg
 
 
 

Constructor Question

Post by Miro Juris » Tue, 23 Sep 2003 02:57:41

In article <BB93F857.BE6E% XXXX@XXXXX.COM >,



Over 3 years ago. I had no idea that the Classic UI is different! Whoops.

meeroh

--
If this message helped you, consider buying an item
from my wish list: < http://www.yqcomputer.com/ ;