diff --git a/ide/text/fp.pas b/ide/text/fp.pas index 54eaf11e49..9dc7c33282 100644 --- a/ide/text/fp.pas +++ b/ide/text/fp.pas @@ -169,7 +169,9 @@ BEGIN repeat MyApp.Run; - if (AutoSaveOptions and asEditorFiles)=0 then CanExit:=true else + if (AutoSaveOptions and asEditorFiles)=0 then + CanExit:=true + else CanExit:=MyApp.SaveAll; until CanExit; @@ -198,7 +200,10 @@ BEGIN END. { $Log$ - Revision 1.31 1999-09-13 11:43:59 peter + Revision 1.32 1999-12-10 13:02:05 pierre + + VideoMode save/restore + + Revision 1.31 1999/09/13 11:43:59 peter * fixes from gabor, idle event, html fix Revision 1.30 1999/08/22 22:24:15 pierre diff --git a/ide/text/fpdesk.pas b/ide/text/fpdesk.pas index 63b6848652..a36e6b1c14 100644 --- a/ide/text/fpdesk.pas +++ b/ide/text/fpdesk.pas @@ -22,6 +22,7 @@ const then you should also change this } ResDesktopFlags = 'FLAGS'; + ResVideo = 'VIDEOMODE'; ResHistory = 'HISTORY'; ResClipboard = 'CLIPBOARD'; ResWatches = 'WATCHES'; @@ -37,7 +38,8 @@ procedure DoneDesktopFile; implementation uses Dos, - Objects,Drivers,Views,App,HistList,BrowCol, + Objects,Drivers,Video, + Views,App,HistList,BrowCol, WResource,WViews,WEditor, {$ifndef NODEBUG} fpdebug, @@ -316,6 +318,25 @@ begin size); end; +function WriteVideoMode(F: PResourceFile): boolean; +begin + F^.CreateResource(resVideo,rcBinary,0); + WriteVideoMode:=F^.AddResourceEntry(resVideo,langDefault,0,ScreenMode, + SizeOf(TVideoMode)); +end; + +function ReadVideoMode(F: PResourceFile;var NewScreenMode : TVideoMode): boolean; +var + size : sw_word; + test : boolean; +begin + test:=F^.ReadResourceEntry(resVideo,langDefault,NewScreenMode, + size); + if not test then + NewScreenMode:=ScreenMode; + ReadVideoMode:= test and (size = SizeOf(TVideoMode)); +end; + function ReadSymbols(F: PResourceFile): boolean; var S: PMemoryStream; OK: boolean; @@ -353,8 +374,9 @@ begin end; function LoadDesktop: boolean; -var OK: boolean; +var OK,VOK: boolean; F: PResourceFile; + VM : TVideoMode; begin PushStatus('Reading desktop file...'); New(F, LoadFile(DesktopPath)); @@ -364,17 +386,24 @@ begin if OK then begin OK:=ReadFlags(F); - if OK and ((DesktopFileFlags and dfHistoryLists)<>0) then - OK:=ReadHistory(F); - if OK and ((DesktopFileFlags and dfWatches)<>0) then - OK:=ReadWatches(F); - if OK and ((DesktopFileFlags and dfBreakpoints)<>0) then - OK:=ReadBreakpoints(F); - if OK and ((DesktopFileFlags and dfOpenWindows)<>0) then - OK:=ReadOpenWindows(F); + if OK then + begin + VOK:=ReadVideoMode(F,VM); + if VOK and ((VM.Col<>ScreenMode.Col) or + (VM.Row<>ScreenMode.Row) or (VM.Color<>ScreenMode.Color)) then + Application^.SetScreenVideoMode(VM); + end; + if {OK and} ((DesktopFileFlags and dfHistoryLists)<>0) then + OK:=OK and ReadHistory(F); + if {OK and} ((DesktopFileFlags and dfWatches)<>0) then + OK:=OK and ReadWatches(F); + if {OK and} ((DesktopFileFlags and dfBreakpoints)<>0) then + OK:=OK and ReadBreakpoints(F); + if {OK and} ((DesktopFileFlags and dfOpenWindows)<>0) then + OK:=OK and ReadOpenWindows(F); { no errors if no browser info available PM } - if OK and ((DesktopFileFlags and dfSymbolInformation)<>0) then - OK:=ReadSymbols(F); + if {OK and} ((DesktopFileFlags and dfSymbolInformation)<>0) then + OK:=OK and ReadSymbols(F); Dispose(F, Done); end; @@ -396,19 +425,21 @@ begin Clipboard^.Flags:=Clipboard^.Flags and not efStoreContent; OK:=Assigned(F); - if OK then - OK:=WriteFlags(F); - if OK and ((DesktopFileFlags and dfHistoryLists)<>0) then - OK:=WriteHistory(F); - if OK and ((DesktopFileFlags and dfWatches)<>0) then - OK:=WriteWatches(F); - if OK and ((DesktopFileFlags and dfBreakpoints)<>0) then - OK:=WriteBreakpoints(F); - if OK and ((DesktopFileFlags and dfOpenWindows)<>0) then - OK:=WriteOpenWindows(F); + {if OK then} + OK:=OK and WriteFlags(F); + {if OK then} + OK:=OK and WriteVideoMode(F); + if {OK and} ((DesktopFileFlags and dfHistoryLists)<>0) then + OK:=OK and WriteHistory(F); + if {OK and} ((DesktopFileFlags and dfWatches)<>0) then + OK:=OK and WriteWatches(F); + if {OK and} ((DesktopFileFlags and dfBreakpoints)<>0) then + OK:=OK and WriteBreakpoints(F); + if {OK and} ((DesktopFileFlags and dfOpenWindows)<>0) then + OK:=OK and WriteOpenWindows(F); { no errors if no browser info available PM } - if OK and ((DesktopFileFlags and dfSymbolInformation)<>0) then - OK:=WriteSymbols(F) or not Assigned(Modules); + if {OK and} ((DesktopFileFlags and dfSymbolInformation)<>0) then + OK:=OK and (WriteSymbols(F) or not Assigned(Modules)); Dispose(F, Done); PopStatus; SaveDesktop:=OK; @@ -417,7 +448,10 @@ end; END. { $Log$ - Revision 1.15 1999-11-26 17:09:51 pierre + Revision 1.16 1999-12-10 13:02:05 pierre + + VideoMode save/restore + + Revision 1.15 1999/11/26 17:09:51 pierre * Force Desktop into Screen Revision 1.14 1999/11/25 00:25:43 pierre diff --git a/ide/text/fpide.pas b/ide/text/fpide.pas index 85c0510530..22b4a42fb3 100644 --- a/ide/text/fpide.pas +++ b/ide/text/fpide.pas @@ -196,6 +196,7 @@ begin GetExtent(R); Dec(R.B.X); R.A.X:=R.B.X-9; R.A.Y:=R.B.Y-1; New(HeapView, InitKb(R)); Insert(HeapView); + Drivers.ShowMouse; end; procedure TIDEApp.InitDesktop; @@ -595,7 +596,6 @@ begin InitMouse; InitEvents; InitSysError; - Redraw; CurDirChanged; Message(Application,evBroadcast,cmUpdate,nil); UpdateScreen(true); @@ -854,7 +854,10 @@ end; END. { $Log$ - Revision 1.44 1999-11-25 00:26:49 pierre + Revision 1.45 1999-12-10 13:02:05 pierre + + VideoMode save/restore + + Revision 1.44 1999/11/25 00:26:49 pierre * RecentFiles missed the last char Revision 1.43 1999/11/10 17:19:06 pierre