mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 12:09:16 +02:00
+ VideoMode save/restore
This commit is contained in:
parent
34ce171c97
commit
5def4fada6
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user