a1200   NEWS   APPS   DOCS   ABOUT
a1200
----
a1200
----
Autodocs
 Libraries:
 intuition.library
  ActivateGadget
  ActivateWindow
  AddClass
  AddGList
  AddGadget
  AllocRemember
  AllocScreenBuffer
  AutoRequest
  BeginRefresh
  BuildEasyRequestArgs
  BuildSysRequest
  ChangeScreenBuffer
  ChangeWindowBox
  ClearDMRequest
  ClearMenuStrip
  ClearPointer
  CloseScreen
  CloseWindow
  CloseWorkBench
  CurrentTime
  DisplayAlert
  DisplayBeep
  DisposeObject
  DoGadgetMethodA
  DoubleClick
  DrawBorder
  DrawImage
  DrawImageState
  EasyRequestArgs
  EndRefresh
  EndRequest
  EraseImage
  FreeClass
  FreeRemember
  FreeScreenBuffer
  FreeScreenDrawInfo
  FreeSysRequest
  GadgetMouse
  GetAttr
  GetDefPrefs
  GetDefaultPubScreen
  GetPrefs
  GetScreenData
  GetScreenDrawInfo
  HelpControl
  InitRequester
  IntuiTextLength
  ItemAddress
  LendMenus
  LockIBase
  LockPubScreen
  LockPubScreenList
  MakeClass
  MakeScreen
  ModifyIDCMP
  ModifyProp
  MoveScreen
  MoveWindow
  MoveWindowInFrontOf
  NewModifyProp
  NewObject
  NextObject
  NextPubScreen
  ObtainGIRPort
  OffGadget
  OffMenu
  OnGadget
  OnMenu
  OpenScreen
  OpenScreenTagList
  OpenWindow
  OpenWindowTagList
  OpenWorkBench
  PointInImage
  PrintIText
  PubScreenStatus
  QueryOverscan
  RefreshGList
  RefreshGadgets
  RefreshWindowFrame
  ReleaseGIRPort
  RemakeDisplay
  RemoveClass
  RemoveGList
  RemoveGadget
  ReportMouse
  Request
  ResetMenuStrip
  RethinkDisplay
  ScreenDepth
  ScreenPosition
  ScreenToBack
  ScreenToFront
  ScrollWindowRaster
  SetAttrsA
  SetDMRequest
  SetDefaultPubScreen
  SetEditHook
  SetGadgetAttrsA
  SetMenuStrip
  SetMouseQueue
  SetPointer
  SetPrefs
  SetPubScreenModes
  SetWindowPointerA
  SetWindowTitles
  ShowTitle
  SizeWindow
  SysReqHandler
  TimedDisplayAlert
  UnlockIBase
  UnlockPubScreen
  UnlockPubScreenList
  ViewAddress
  ViewPortAddress
  WBenchToBack
  WBenchToFront
  WindowLimits
  WindowToBack
  WindowToFront
  ZipWindow
Include
GuruMeditation
Docs » Autodocs » intuition.library » ScrollWindowRaster

NAME

        ScrollWindowRaster -- Intuition-friendly ScrollRasterBF() (V39)

SYNOPSIS

        ScrollWindowRaster(win, dx, dy, xmin, ymin, xmax, ymax)
A1 D0 D1 D2 D3 D4 D5
void ScrollWindowRaster(struct Window *, WORD, WORD,
WORD, WORD, WORD, WORD);

FUNCTION

        Calls graphics.library/ScrollRasterBF(), which moves
the bits in the raster by (dx,dy) towards (0,0)
The space vacated is filled by calling EraseRect().
NOTE: that vacated space is _not_ considered damage!
The scroll operation is limited to the rectangle defined
by (xmin,ymin)-(xmax,ymax). Bits outside will not be
affected. If (xmax,ymax) is outside the rastport then use
the lower right corner of the rastport.
If a window is partly obscured, then it is possible for
ScrollWindowRaster() to scroll some of the obscured
area into view. If the window is simple-refresh, then
the formerly obscured area is damage, and the application
needs to repair it. If Intuition detects damage as a result
of ScrollWindowRaster(), it will send an IDCMP_REFRESHWINDOW
event to the application's window. This handling of damage
is the principal reason ScrollWindowRaster() is preferred
to ScrollRaster() and ScrollRasterBF().

INPUTS

        win - pointer to a Window structure
dx,dy are integers that may be postive, zero, or negative
xmin,ymin - upper left of bounding rectangle
xmax,ymax - lower right of bounding rectangle

NOTES

        This call uses ScrollRasterBF(), which calls EraseRect()
when clearing the newly exposed area. This allows use of
a custom layer backfill hook.
IMPORTANT: boopsi gadgets should use ScrollRaster() or
ScrollRasterBF() directly! Never call ScrollWindowRaster()
from inside a boopsi gadget's method handler. Note that
Intuition will detect and handle damage caused by such use
of ScrollRaster() or ScrollRasterBF(), for gadgets with
the GMORE_SCROLLRASTER property.
VERY IMPORTANT: if you have any gadgets in your simple-refresh
window with the GMORE_SCROLLRASTER property, you must use
ScrollWindowRaster() instead of ScrollRaster() or ScrollRasterBF().
Handling of gadget scroll damage is incompatible with continued
use of these graphics functions in an Intuition window.
NB: If you're using a gadget class whose source code you do
not control, that class might be using GMORE_SCROLLRASTER or
might start to in a future version. For that reason, you
should use ScrollWindowRaster() if you are using any such gadgets.

BUGS

        In intuition.library V39 and V40 ScrollWindowRaster() must
be considered unsafe in connection with gadget event handling
and windows which do not have the WA_NoCareRefresh attribute set.
A race condition may occur which will cause write accesses
to unallocated memory and keep the IDCMP_REFRESHWINDOW message
from getting delivered.
The recommended workaround for this problem is to use
ScrollWindowRaster() only in SMART_REFRESH windows which have
the WA_NoCareRefresh attribute set. Of course, which such
windows there will be no difference in functionality between
ScrollWindowRaster() and ScrollRasterBF().

SEE ALSO

graphics.library/ScrollRaster(), graphics.library/ScrollRasterBF(), graphics.library/EraseRect(), WA_BackFill

Comments

Name:
E-mail: Use this if you want a message if you get a response, will not be shown.
Comment:
Select correct short for:

Fairlight

DC
AFL
HZ
FLT

Comments:

$VER: d0.se 1.14 Copyright © 2011-2024 Tobias Geijersson support at d0 dot se