Squeak Class Documentation category index | class index  
 
FlapTab
  category: Morphic-Flaps
  superclass: ReferenceMorph
  subclasses: ViewerFlapTab

The tab associated with a flap.

nb: slidesOtherObjects and inboard are instance variables relating to disused features. The feature implementations still exist in the system, but the UI to them has been sealed off.

instance methods
  access
  acquirePlausibleFlapID
flapID
flapID:
flapIDOrNil
flapShowing
isCandidateForAutomaticViewing
morphicLayerNumber
orientation
permitsThumbnailing
referentThickness
tabThickness

  disused options
  inboard
inboard:
inboardString
slideString
slidesOtherObjects
toggleInboardness
toggleSlideBehavior

  edge
  applyEdgeFractionWithin:
computeEdgeFraction
edgeFraction
edgeFraction:
edgeString
edgeToAdhereTo
edgeToAdhereTo:
ifVertical:ifHorizontal:
setEdge:
setEdgeToAdhereTo

  fileIn/out
  objectForDataStream:

  globalness
  isGlobalFlap
isGlobalFlapString
toggleIsGlobalFlap

  graphical tabs
  graphicalTab
graphicalTabString
isCurrentlyGraphical

  initialization
  adaptToWorld
initialize
preserveDetails
provideDefaultFlapIDBasedOn:
setName:edge:color:

  menu
  addCustomMenuItems:hand:
addGenieMenuItems:hand:
addTitleForHaloMenu:
applyThickness:
changeColor
changeFlapColor
destroyFlap
dismissViaHalo
flapMenuTitle
sharedFlapsAllowed
thicknessString
wantsRoundedCorners
wording

  miscellaneous
  balloonTextForFlapsMenu
isFlapTab
mightEntertainDirectionHandles
printOn:

  mouseover & dragover
  arrangeToPopOutOnDragOver:
arrangeToPopOutOnMouseOver:
dragoverString
makeNewDrawing:
mouseoverString
setToPopOutOnDragOver:
setToPopOutOnMouseOver:
startOrFinishDrawing:
toggleDragOverBehavior
toggleMouseOverBehavior

  parts bin
  partsBinString
togglePartsBinMode

  positioning
  adjustPositionVisAVisFlap
fitContents
fitOnScreen
layoutChanged
mouseMove:
mouseUp:
ownerChanged
positionObject:
positionObject:atEdgeOf:
positionReferent
spanWorld
stickOntoReferent
transposeParts

  rounding
  roundedCorners

  show & hide
  adjustPositionAfterHidingFlap
hideFlap
hideFlapUnlessBearingHalo
hideFlapUnlessOverReferent
lastReferentThickness:
maybeHideFlapOnMouseLeave
maybeHideFlapOnMouseLeaveDragging
openFully
showFlap
showFlapIfHandLaden:
succeededInRevealing:
tabSelected

  solid tabs
  applyTabThickness:
changeTabSolidity
changeTabThickness
isCurrentlySolid
notSolid
solidTab
solidTabString
useSolidTab

  textual tabs
  assumeString:font:orientation:color:
changeTabText
existingWording
isCurrentlyTextual
reformatTextualTab
textualTab
textualTabString
useStringTab:
useTextualTab

class methods
  as yet unclassified
  defaultNameStemForInstances
givenID:matches:
includeInNewMorphMenu

instance methods
  access top  
 

acquirePlausibleFlapID

Give the receiver a flapID that is globally unique; try to hit the mark vis a vis the standard system flap id's, for the case when this method is invoked as part of the one-time transition


 

flapID

Answer the receiver's flapID, creating it if necessary


 

flapID:

Set the receiver's flapID


 

flapIDOrNil

If the receiver has a flapID, answer it, else answer nil


 

flapShowing


 

isCandidateForAutomaticViewing


 

morphicLayerNumber

helpful for insuring some morphs always appear in front of or behind others.
smaller numbers are in front


 

orientation


 

permitsThumbnailing


 

referentThickness


 

tabThickness


  disused options top  
 

inboard


 

inboard:


 

inboardString


 

slideString


 

slidesOtherObjects


 

toggleInboardness


 

toggleSlideBehavior


  edge top  
 

applyEdgeFractionWithin:

Make the receiver reflect remembered edgeFraction


 

computeEdgeFraction

Compute and remember the edge fraction


 

edgeFraction


 

edgeFraction:

Set my edgeFraction to the given number, without side effects


 

edgeString


 

edgeToAdhereTo


 

edgeToAdhereTo:


 

ifVertical:ifHorizontal:

Evaluate and return the value of either the first or the second block, depending whether I am vertically or horizontally oriented


 

setEdge:

Set the edge as indicated, if possible


 

setEdgeToAdhereTo


  fileIn/out top  
 

objectForDataStream:

I am about to be written on an object file. If I am a global flap, write a proxy instead.


  globalness top  
 

isGlobalFlap

Answer whether the receiver is currently a shared flap


 

isGlobalFlapString

Answer a string to construct a menu item representing control over whether the receiver is or is not a shared flap


 

toggleIsGlobalFlap

Toggle whether the receiver is currently a global flap or not


  graphical tabs top  
 

graphicalTab


 

graphicalTabString


 

isCurrentlyGraphical

Answer whether the receiver is currently showing a graphical face


  initialization top  
 

adaptToWorld


 

initialize


 

preserveDetails

The receiver is being switched to use a different format. Preserve the existing details (e.g. wording if textual, grapheme if graphical) so that if the user reverts back to the current format, the details will be right


 

provideDefaultFlapIDBasedOn:

Provide the receiver with a default flap id


 

setName:edge:color:

Set me up with the usual...


  menu top  
 

addCustomMenuItems:hand:

Add further items to the menu as appropriate


 

addGenieMenuItems:hand:

If the receiver wishes the Genie menu items, add a line to the menu and then those Genie items, else do nothing


 

addTitleForHaloMenu:


 

applyThickness:


 

changeColor

Change the color of the receiver -- triggered, e.g. from a menu


 

changeFlapColor


 

destroyFlap

Destroy the receiver


 

dismissViaHalo

Dismiss the receiver (and its referent), unless it resists


 

flapMenuTitle


 

sharedFlapsAllowed

Answer (for the benefit of a menu item for which I am the target) whether the system presently allows shared flaps


 

thicknessString


 

wantsRoundedCorners

Default response is simple, fast, and false.
May be overridden to allow almost any morph to be rounded.


 

wording


  miscellaneous top  
 

balloonTextForFlapsMenu

Answer the balloon text to show on a menu item in the flaps menu that governs the visibility of the receiver in the current project


 

isFlapTab


 

mightEntertainDirectionHandles

Answer whether the receiver, by its very nature, might possibly be happy to have direction handles shown for it in its halo


 

printOn:

Append a textual representation of the receiver to aStream


  mouseover & dragover top  
 

arrangeToPopOutOnDragOver:


 

arrangeToPopOutOnMouseOver:


 

dragoverString

Answer the string to be shown in a menu to represent the dragover status


 

makeNewDrawing:


 

mouseoverString

Answer the string to be shown in a menu to represent the mouseover status


 

setToPopOutOnDragOver:


 

setToPopOutOnMouseOver:


 

startOrFinishDrawing:


 

toggleDragOverBehavior


 

toggleMouseOverBehavior


  parts bin top  
 

partsBinString

Answer the string to be shown in a menu to represent the parts-bin status


 

togglePartsBinMode


  positioning top  
 

adjustPositionVisAVisFlap


 

fitContents


 

fitOnScreen

19 sept 2000 - allow flaps in any paste up


 

layoutChanged


 

mouseMove:

The mouse moved while the butten was down in the receiver


 

mouseUp:

The mouse came back up, presumably after having dragged the tab. Caution: if not operating full-screen, this notification can easily be *missed*, which is why the edge-fraction-computation is also being done on mouseMove.


 

ownerChanged

The receiver's owner, some kind of a pasteup, has changed its layout.


 

positionObject:

anObject could be myself or my referent


 

positionObject:atEdgeOf:

anObject could be myself or my referent


 

positionReferent


 

spanWorld


 

stickOntoReferent

Place the receiver directly onto the referent -- for use when the referent is being shown as a flap


 

transposeParts

The receiver's orientation has just been changed from vertical to horizontal or vice-versa.


  rounding top  
 

roundedCorners

Return a list of those corners to round


  show & hide top  
 

adjustPositionAfterHidingFlap


 

hideFlap


 

hideFlapUnlessBearingHalo


 

hideFlapUnlessOverReferent

Hide the flap unless the mouse is over my referent.


 

lastReferentThickness:

Set the last remembered referent thickness to the given integer


 

maybeHideFlapOnMouseLeave


 

maybeHideFlapOnMouseLeaveDragging


 

openFully

Make an educated guess at how wide or tall we are to be, and open to that thickness


 

showFlap

Open the flap up


 

showFlapIfHandLaden:

The hand has drifted over the receiver with the button down. If the hand is carrying anything, show the flap. If the hand is empty, the likely cause is that it's manipulating a scrollbar or some such, so in that case don't pop the flap out.


 

succeededInRevealing:

Try to reveal aPlayer, and answer whether we succeeded


 

tabSelected

The user clicked on the tab. Show or hide the flap. Try to be a little smart about a click on a tab whose flap is open but only just barely.


  solid tabs top  
 

applyTabThickness:


 

changeTabSolidity

Presently no actual options associated with this menu item if the flap is currently alreadly solid, so entertain the user with an anuran sound. However, in latest scheme, the corresponding menu item is disabled in this circumstance, so this method is effectively unreachable.


 

changeTabThickness


 

isCurrentlySolid

Don't never use double negatives


 

notSolid

Answer whether the receiver is currenty not solid. Used for determining whether the #solidTab menu item should be enabled


 

solidTab


 

solidTabString


 

useSolidTab


  textual tabs top  
 

assumeString:font:orientation:color:


 

changeTabText

Allow the user to change the text on the tab


 

existingWording


 

isCurrentlyTextual


 

reformatTextualTab

The font choice possibly having changed, reformulate the receiver


 

textualTab


 

textualTabString


 

useStringTab:


 

useTextualTab

Use a textually-emblazoned tab


class methods
  as yet unclassified top  
 

defaultNameStemForInstances

Answer a basis for external names for default instances of the receiver. For classees, the class-name itself is a good one.


 

givenID:matches:

eg, FlapTab givenID: 'Stack Tools2' matches: 'Stack Tools'


 

includeInNewMorphMenu

Not to be instantiated from the menu