mirror of
https://github.com/softdorothy/Glider4.git
synced 2024-06-08 13:29:32 +00:00
1 line
4.8 KiB
OpenEdge ABL
1 line
4.8 KiB
OpenEdge ABL
|
unit About; { version 2.1 last update: 1/1/92 }
{}
{}
{ About<EFBFBD> is copyrighted, and I reserve all rights to it; both source and}
{ compiled versions. Please do not distribute this source without my}
{ permission, or remove this notice. Thanks.}
{}
{ Jon Wind (About<EFBFBD>)}
{ 2374 Hillwood Drive}
{ Maplewood, MN 55119}
{}
{ 2.1 Changes }
{ Updated demo to work properly with System 7.0 and added popup menu for window types }
{ Improved overall stability of About<EFBFBD> unit, especially in tight memory situations }
{ Added support for movableDBoxProc window type }
{ Added support for plainDBox window type to be drawn with only scrollable text }
{}
{ 2.0 Changes }
{ Created Modal and Modeless versions }
{ Added optional support for display of styled text }
{ Added support for copying styled text }
{ Added ability to specify how window will be centered instead of just center or not center }
{ Improved error checking in low memory conditions }
{ Shift-command-c will now also copy text }
{ Method of obtaining main window rect should now work for DAs, cdevs, etc }
{ Window dragging now gets bounds from GrayRgn }
{ Window centering routines now shift the window as neccessary to keep it entirely onscreen }
{ Option clicking in the window displays the version instead of option clicking anywhere }
{ OK button is now horizontally centered if MainIcon = NoIcon & Length(WinMsg) = 0; set WinMsg to an invisible character to not center it }
{ OK button is disabled and default roundrect is drawn in gray if the (modeless) About window is not in front }
{ Added support for close box instead of OK button for noGrowDocProc or rDocProc windows }
{ Scrolling text area is extended downward if MainIcon = NoIcon & Length(WinMsg) = 0 }
{ Control and window auxRecs are now used for frame and background colors }
{}
{$R-}
interface
const
AboutVersion = 'About<75> 2.1';
AboutNoIcon = -1;
AboutNoCenter = -1;
AboutTopCenter = 0;
AboutMainCenter = 1;
AboutMsg = 0;
AboutTEXT = 1;
movableDBoxProc = 5;
type
AboutFontRec = record
Font, Size: Integer;
Face: Style;
Color: Integer;
end;
AboutRec = record
FontInfo: array[AboutMsg..AboutTEXT] of AboutFontRec;
TEXTCopy, KeyEquivs, CloseBox, Styled: Boolean;
CenterMode, MainIcon, ClickIcon: Integer;
ClickMsg: Str255;
end;
{ Note: font color(s) must be blackColor, whiteColor, redColor, greenColor, blueColor, cyanColor, magentaColor, or yellowColor }
{ Note: if MainIcon = AboutNoIcon then no icon will be drawn }
{ Note: if ClickIcon = AboutNoIcon then no icon will be drawn when original icon is clicked on }
{ Note: if CenterMode = AboutNoCenter the window will use the supplied coordinates and will not be centered }
{ Note: if CenterMode = AboutTopCenter the window will be centered on the front window or the main monitor if there is no front window }
{ Note: if CenterMode = AboutMainCenter the window will be centered on the main monitor }
{ Note: if Length(ClickMsg) = 0 then no message will be drawn when original icon is clicked on }
{ Note: CloseBox will be ignored for dBoxProc, altDBoxProc, and movableDBoxProc windows }
{ Modal procedure: }
{ this routine does everything, returning to calling proc only after the window is dismissed... }
procedure BuildAbout (WinRect: Rect;
WinProc, TEXTid: Integer;
WinTitle, WinMsg: Str255;
WinMisc: AboutRec);
{ Modeless procedures: }
{ returns true if the specified window is an About window; otherwise returns false }
function IsAboutWindow (theWindow: WindowPtr): Boolean;
{ open About window and return pointer to it - returns NIL if window is not created }
{ Note: you should keep track of this pointer only if you wish to keep specific track of it }
function OpenAbout (WinRect: Rect;
WinProc, TEXTid: Integer;
WinTitle, WinMsg: Str255;
WinMisc: AboutRec): WindowPtr;
{ handle event relating to About window, ie updateEvt, activateEvt, mouseDown, keyDown, etc<EFBFBD> }
{ Note: this proc should be called after every event for each About window for everything to work co
|