MEMBER MAP END INCLUDE('BCS_INIClass.inc') !--------- BCS INI Manager Class methods --------- BCSINIClass.Fetch PROCEDURE(STRING Sector, STRING Name, *? Value) CODE PARENT.Fetch(Sector, Name, Value) RETURN BCSINIClass.Fetch PROCEDURE(STRING ProcName, WINDOW W) LOC:X SIGNED,AUTO LOC:Y SIGNED,AUTO LOC:H SIGNED,AUTO LOC:W SIGNED,AUTO CODE IF W{PROP:Type} = CREATE:Application SELF.AppFrameRef &= W ELSIF NOT SELF.AppFrameRef &= NULL LOC:H = SELF.AppFrameRef{PROP:Height} - 50 LOC:W = SELF.AppFrameRef{PROP:Width} - 50 SELF.Fetch(ProcName, 'XPos', LOC:X) SELF.Fetch(ProcName, 'YPos', LOC:Y) IF LOC:X < 0 OR | LOC:Y < 0 OR | LOC:X > LOC:W OR | LOC:Y > LOC:H ! If opening outside the frame's client area, reset the window to default position and size PUTINI(ProcName,'XPos',, SELF.Filename) PUTINI(ProcName,'YPos',, SELF.Filename) PUTINI(ProcName,'Width',, SELF.Filename) PUTINI(ProcName,'Height',, SELF.Filename) PUTINI(ProcName,'Maximize',, SELF.Filename) PUTINI(ProcName,'Minimize',, SELF.Filename) END END PARENT.Fetch(ProcName, W) RETURN BCSINIClass.Update PROCEDURE (STRING ProcName, WINDOW W) Info LIKE(WindowInfo),AUTO CODE IF BAND(KEYSTATE(),0700h) !If Ctrl, Alt, or Shift key pressed PUTINI(ProcName,,, SELF.Filename) RETURN END IF (W{Prop:XPos}<0 OR W{Prop:YPos}<0) AND W{PROP:Maximize}=False RETURN END PARENT.Update(ProcName, W) RETURN