eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'VisualComponent':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: VisualComponent


Inheritance:

   Object
   |
   +--DisplayObject
      |
      +--VisualComponent
         |
         +--VisualPart

Package:
stx:libview2
Category:
Compatibility-ST80-Graphics-Display Objects
Version:
rev: 1.38 date: 2018/11/23 14:09:43
user: stefan
file: VisualComponent.st directory: libview2
module: stx stc-classLibrary: libview2
Author:
Claus Gittinger

Description:


abstract superclass for all kinds of visual components.
This class and its subclasses (currently) exist mostly for
ST-80 compatibility - to provide a home for ported PD classes,
which depend on the VisualComponent hierarchy.

Notice: 
    this class was implemented using protocol information
    from alpha testers, from reading PD programs and 
    from the Hopkins/Horan book.
    - it may not be complete or compatible to the corresponding ST-80 class. 
    If you encounter any incompatibilities, please forward a note 
    describing the incompatibility verbal (i.e. no code) to the ST/X team.
    This is still being constructed - not yet finished.


Related information:

    GeometricWrapper

Class protocol:

instance creation
o  new

queries
o  defaultFont

o  defaultViewBackgroundColor

o  isAbstract
Return if this class is an abstract class.
True is returned here for myself only; false for subclasses.
Abstract subclasses must redefine this again.


Instance protocol:

accessing
o  container: someContainer
ignored here

o  geometryLayout
ignored here

o  geometryLayout: aLayout
ignored here

o  hiddenOnRealize: aBoolean
ignored here

o  id
ignored here

o  setParentViewIn: aView
ignored here - for now

o  superView

accessing-STX-attributes
o  application

o  borderWidth

o  borderWidth: aNumber

o  canTab: aBoolean

o  layout

o  layout: newLayout

o  level

o  level: newLevel

o  name

o  realized
return true, if the receiver is realized.
Realized means that it has been mapped (i.e. made visible) on
the display (as opposed to being only created and possibly invisible)

o  viewBackground

accessing-color & font
o  backgroundColor

o  backgroundColor: aColor
ignored here

o  defaultFont

o  font: aFont
ignored here

o  foregroundColor

o  foregroundColor: aColor
ignored here

accessing-dimensions
o  bottom
return my bottom y coordinate

o  bounds
return my bounds

o  bounds: aRectangle
set my bounds

o  computePreferredExtent

o  defaultExtent

o  extent: anExtent
set my extent

o  left
return my left x coordinate

o  origin: newOrigin
move my origin

o  preferredBounds
return my preferredBounds

o  preferredExtent

o  right
return my right x coordinate

o  top
return my top y coordinate

o  viewRectangle

accessing-mvc
o  model
return nil - generic components have no model

change & update
o  changedPreferredBounds: oldPreferredBoundsOrNil
The receiver is notifying any dependents that its preferredBounds has changed.

displaying
o  displayOn: aGCOrStream
display the receiver on some graphicsContext.
The sender is repsonsible for restoring the GC's state
(i.e. it may be left in any undefined state)

** This method raises an error - it must be redefined in concrete classes **

o  displayOn: aGC at: aPoint
display the receiver translated by some amount on some graphicsContext

o  displayOn: aGC x: x y: y
display the receiver translated by some amount on some graphicsContext

event handling
o  buttonPress: button x: x y: y
button was pressed over me - ignored here

o  buttonRelease: button x: x y: y
button was released over me - ignored here

o  containerChangedSize
(comment from inherited method)
ignored here - added to allow images to be used like
VisualComponents (later, Image should inherit from it)

o  containerMapped

o  containerUnmapped

o  destroy
(comment from inherited method)
SimpleView>>destroySubviews wants to destroy us (if we are a view's component).
Do nothing here

o  hasKeyboardFocus: aBoolean
notification from the windowGroup that I got the keyboardFocus.

o  keyPress: key x: x y: y
key was pressed over me - ignored here

o  keyRelease: key x: x y: y
key was released over me - ignored here

o  mapped

o  showFocus: explicit

o  showNoFocus: explicit

initialization
o  initialize

o  resize

queries
o  delegate

o  heightOn: aGC
return my height, if displayed on aGC;
I assume that my height is independent of the device, and return
the bounds height

o  isBorderedWrapper

o  isCursorKeyConsumer
return true, if the receiver can be controlled by cursor keys;
i.e. it can handle some keyboard input,
isCursorKeyConsumer are potential candidates for getting the keyboard
focus initially within dialogBoxes, or when the focus-follows-pointer
mode is off.

o  isExternalTopView

o  isInputField

o  isKeyboardConsumer

o  isLayoutWrapper

o  isRootView

o  isTransparentBox

o  isWrapper

o  widthOn: aGC
return my width, if displayed on aGC;
I assume that my width is independent of the device, and return
the bounds width

testing
o  containsPoint: aPoint
return true, if the receiver contains aPoint

o  hasBorder
return true, if the receiver shows a border

o  intersects: aRectangle
return true, if the receiver's bounds intersects aRectangle



ST/X 7.2.0.0; WebServer 1.670 at bd0aa1f87cdd.unknown:8081; Mon, 26 Feb 2024 15:03:06 GMT