~ubuntu-branches/ubuntu/feisty/fpc/feisty

« back to all changes in this revision

Viewing changes to ide/fpide.pas

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2007-01-27 20:08:50 UTC
  • mfrom: (1.2.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20070127200850-9mrptaqqjsx9nwa7
Tags: 2.0.4-5
* Fixed Build-Depends.
* Add myself to Uploaders in debian/control.
* Make sure that the sources are really patched before building them.
* Build unit 'libc' on powerpc too.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
{
2
 
    $Id: fpide.pas,v 1.38 2005/02/14 17:13:18 peter Exp $
3
2
    This file is part of the Free Pascal Integrated Development Environment
4
3
    Copyright (c) 1998 by Berczi Gabor
5
4
 
32
31
      IsRunning : boolean;
33
32
      constructor Init;
34
33
      procedure   InitDesktop; virtual;
 
34
      procedure   LoadMenuBar;
35
35
      procedure   InitMenuBar; virtual;
 
36
      procedure   reload_menubar;
36
37
      procedure   InitStatusLine; virtual;
37
38
      procedure   Open(FileName: string;FileDir:string);
38
39
      function    OpenSearch(FileName: string) : boolean;
59
60
      procedure NewFromTemplate;
60
61
      procedure OpenRecentFile(RecentIndex: integer);
61
62
      procedure ChangeDir;
 
63
      procedure Print;
 
64
      procedure PrinterSetup;
62
65
      procedure ShowClipboard;
63
66
      procedure FindProcedure;
64
67
      procedure Objects;
153
156
var
154
157
  IDEApp: TIDEApp;
155
158
 
 
159
{Configurable keys.}
 
160
const menu_key_edit_cut:string[63]=menu_key_edit_cut_borland;
 
161
      menu_key_edit_copy:string[63]=menu_key_edit_copy_borland;
 
162
      menu_key_edit_paste:string[63]=menu_key_edit_paste_borland;
 
163
      menu_key_hlplocal_copy:string[63]=menu_key_hlplocal_copy_borland;
 
164
      cut_key:word=kbShiftDel;
 
165
      copy_key:word=kbCtrlIns;
 
166
      paste_key:word=kbShiftIns;
 
167
 
156
168
implementation
157
169
 
158
170
uses
169
181
  Video,Mouse,Keyboard,
170
182
  Compiler,Version,
171
183
  FVConsts,
172
 
  Dos,Memory,Menus,Dialogs,StdDlg,timeddlg,
 
184
  Dos{,Memory},Menus,Dialogs,StdDlg,timeddlg,
173
185
  Systems,
174
186
  WUtils,WHlpView,WViews,WHTMLHlp,WHelp,WConsole,
175
187
  FPConst,FPVars,FPUtils,FPSwitch,FPIni,FPIntf,FPCompil,FPHelp,
276
288
  if (StartupOptions and soHeapMonitor)=0 then HeapView^.Hide;
277
289
  Insert(HeapView);
278
290
  Drivers.ShowMouse;
279
 
{$ifdef win32}
280
 
  // Win32ShowMouse;
281
 
{$endif win32}
 
291
{$ifdef Windows}
 
292
  // WindowsShowMouse;
 
293
{$endif Windows}
282
294
end;
283
295
 
284
296
procedure TIDEApp.InitDesktop;
291
303
  Desktop:=New(PFPDesktop, Init(R));
292
304
end;
293
305
 
294
 
procedure TIDEApp.InitMenuBar;
 
306
procedure TIDEApp.LoadMenuBar;
 
307
 
295
308
var R: TRect;
296
309
    WinPMI : PMenuItem;
 
310
 
297
311
begin
298
312
  GetExtent(R); R.B.Y:=R.A.Y+1;
299
313
  WinPMI:=nil;
314
328
      NewItem(menu_file_saveas,'',kbNoKey,cmSaveAs,hcSaveAs,
315
329
      NewItem(menu_file_saveall,'',kbNoKey,cmSaveAll,hcSaveAll,
316
330
      NewLine(
 
331
      NewItem(menu_file_print,'',kbNoKey,cmPrint,hcPrint,
 
332
      NewItem(menu_file_printsetup,'',kbNoKey,cmPrinterSetup,hcPrinterSetup,
 
333
      NewLine(
317
334
      NewItem(menu_file_changedir,'',kbNoKey,cmChangeDir,hcChangeDir,
318
335
      NewItem(menu_file_dosshell,'',kbNoKey,cmDOSShell,hcDOSShell,
319
336
      NewItem(menu_file_exit,menu_key_file_exit,kbNoKey,cmQuit,hcQuit,
320
 
      nil)))))))))))),
 
337
      nil))))))))))))))),
321
338
    NewSubMenu(menu_edit,hcEditMenu, NewMenu(
322
339
      NewItem(menu_edit_undo,menu_key_edit_undo, kbAltBack, cmUndo, hcUndo,
323
340
      NewItem(menu_edit_redo,'', kbNoKey, cmRedo, hcRedo,
327
344
      NewItem('R~e~do All','', kbNoKey, cmRedoAll, hcRedo,
328
345
{$endif DebugUndo}
329
346
      NewLine(
330
 
      NewItem(menu_edit_cut,menu_key_edit_cut, kbShiftDel, cmCut, hcCut,
331
 
      NewItem(menu_edit_copy,menu_key_edit_copy, kbCtrlIns, cmCopy, hcCut,
332
 
      NewItem(menu_edit_paste,menu_key_edit_paste, kbShiftIns, cmPaste, hcPaste,
 
347
      NewItem(menu_edit_cut,menu_key_edit_cut, cut_key, cmCut, hcCut,
 
348
      NewItem(menu_edit_copy,menu_key_edit_copy, copy_key, cmCopy, hcCut,
 
349
      NewItem(menu_edit_paste,menu_key_edit_paste, paste_key, cmPaste, hcPaste,
333
350
      NewItem(menu_edit_clear,menu_key_edit_clear, kbCtrlDel, cmClear, hcClear,
 
351
      NewItem(menu_edit_selectall,'', kbNoKey, cmSelectAll, hcSelectAll,
 
352
      NewItem(menu_edit_unselect,'', kbNoKey, cmUnselect, hcUnselect,
334
353
      NewLine(
335
354
      NewItem(menu_edit_showclipboard,'', kbNoKey, cmShowClipboard, hcShowClipboard,
336
 
      WinPMI))))))
 
355
      WinPMI))))))))
337
356
{$ifdef DebugUndo}))){$endif DebugUndo}
338
357
      )))),
339
358
    NewSubMenu(menu_search,hcSearchMenu, NewMenu(
423
442
        NewItem(menu_options_env_codecomplete,'', kbNoKey, cmCodeCompleteOptions, hcCodeCompleteOptions,
424
443
        NewItem(menu_options_env_codetemplates,'', kbNoKey, cmCodeTemplateOptions, hcCodeTemplateOptions,
425
444
        NewItem(menu_options_env_desktop,'', kbNoKey, cmDesktopOptions, hcDesktopOptions,
426
 
        NewItem(menu_options_env_mouse,'', kbNoKey, cmMouse, hcMouse,
427
 
        NewItem(menu_options_env_startup,'', kbNoKey, cmStartup, hcStartup,
428
 
        NewItem(menu_options_env_colors,'', kbNoKey, cmColors, hcColors,
 
445
        NewItem(menu_options_env_keybmouse,'', kbNoKey, cmMouse, hcMouse,
 
446
{        NewItem(menu_options_env_startup,'', kbNoKey, cmStartup, hcStartup,
 
447
        NewItem(menu_options_env_colors,'', kbNoKey, cmColors, hcColors,}
429
448
{$ifdef Unix}
430
449
        NewItem(menu_options_learn_keys,'', kbNoKey, cmKeys, hcKeys,
431
450
{$endif Unix}
433
452
{$ifdef Unix}
434
453
        )
435
454
{$endif Unix}
436
 
        ))))))))),
 
455
        {))}))))))),
437
456
      NewLine(
438
457
      NewItem(menu_options_open,'', kbNoKey, cmOpenINI, hcOpenINI,
439
458
      NewItem(menu_options_save,'', kbNoKey, cmSaveINI, hcSaveINI,
469
488
      NewItem(menu_help_about,'',kbNoKey, cmAbout, hcAbout,
470
489
      nil))))))))),
471
490
    nil)))))))))))));
 
491
end;
 
492
 
 
493
procedure TIDEApp.InitMenuBar;
 
494
 
 
495
begin
 
496
  LoadMenuBar;
472
497
  DisableCommands(EditorCmds+SourceCmds+CompileCmds);
473
498
  // Update; Desktop is still nil at that point ...
474
499
end;
475
500
 
 
501
procedure Tideapp.reload_menubar;
 
502
 
 
503
begin
 
504
   delete(menubar);
 
505
   dispose(menubar,done);
 
506
   case EditKeys of
 
507
     ekm_microsoft:
 
508
       begin
 
509
         menu_key_edit_cut:=menu_key_edit_cut_microsoft;
 
510
         menu_key_edit_copy:=menu_key_edit_copy_microsoft;
 
511
         menu_key_edit_paste:=menu_key_edit_paste_microsoft;
 
512
         menu_key_hlplocal_copy:=menu_key_hlplocal_copy_microsoft;
 
513
         cut_key:=kbCtrlX;
 
514
         copy_key:=kbCtrlC;
 
515
         paste_key:=kbCtrlV;
 
516
       end;
 
517
     ekm_borland:
 
518
       begin
 
519
         menu_key_edit_cut:=menu_key_edit_cut_borland;
 
520
         menu_key_edit_copy:=menu_key_edit_copy_borland;
 
521
         menu_key_edit_paste:=menu_key_edit_paste_borland;
 
522
         menu_key_hlplocal_copy:=menu_key_hlplocal_copy_borland;
 
523
         cut_key:=kbShiftDel;
 
524
         copy_key:=kbCtrlIns;
 
525
         paste_key:=kbShiftIns;
 
526
       end;
 
527
   end;
 
528
   loadmenubar;
 
529
   insert(menubar);
 
530
end;
 
531
 
476
532
procedure TIDEApp.InitStatusLine;
477
533
var
478
534
  R: TRect;
485
541
      StdStatusKeys(
486
542
      NewStatusKey('~Cursor~ Move', kbNoKey, 65535,
487
543
      NewStatusKey('~Shift+Cursor~ Size', kbNoKey, 65535,
488
 
      NewStatusKey('~<��~ Done', kbNoKey, 65535,
 
544
      NewStatusKey('~'#17'��~ Done', kbNoKey, 65535, {#17 = left arrow}
489
545
      NewStatusKey('~Esc~ Cancel', kbNoKey, 65535,
490
546
      nil)))))),
491
547
    NewStatusDef(hcStackWindow, hcStackWindow,
557
613
begin
558
614
  inherited Idle;
559
615
  Message(Application,evIdle,0,nil);
560
 
  GiveUpTimeSlice;
561
616
end;
562
617
 
563
618
procedure TIDEApp.GetEvent(var Event: TEvent);
662
717
                                   end;
663
718
                                 OpenFileName:='';
664
719
                               end;
 
720
             cmPrint         : Print;
 
721
             cmPrinterSetup  : PrinterSetup;
665
722
             cmSaveAll       : SaveAll;
666
723
             cmChangeDir     : ChangeDir;
667
724
             cmDOSShell      : DOSShell;
829
886
  { DoneKeyboard should be called last to
830
887
    restore the keyboard correctly PM }
831
888
{$ifndef go32v2}
832
 
  DoneScreen;
 
889
  donevideo;
833
890
{$endif ndef go32v2}
834
891
  DoneKeyboard;
835
892
  If UseMouse then
836
893
    DoneMouse
837
894
  else
838
895
    ButtonCount:=0;
839
 
  DoneDosMem;
 
896
{  DoneDosMem;}
840
897
 
841
898
  if Assigned(UserScreen) then
842
899
    UserScreen^.SwitchToConsoleScreen;
847
904
begin
848
905
  if Assigned(UserScreen) then
849
906
    UserScreen^.SaveConsoleScreen;
850
 
  InitDosMem;
 
907
{  InitDosMem;}
851
908
  InitKeyboard;
852
909
  If UseMouse then
853
910
    InitMouse
854
911
  else
855
912
    ButtonCount:=0;
856
913
{$ifndef go32v2}
857
 
  InitScreen;
 
914
  initvideo;
858
915
{$endif ndef go32v2}
859
 
{$ifdef win32}
 
916
{$ifdef Windows}
860
917
  { write the empty screen to dummy console handle }
861
918
  UpdateScreen(true);
862
 
{$endif ndef win32}
 
919
{$endif ndef Windows}
863
920
  InitEvents;
864
921
  InitSysError;
865
922
  CurDirChanged;
866
 
{$ifndef win32}
 
923
{$ifndef Windows}
867
924
  Message(Application,evBroadcast,cmUpdate,nil);
868
 
{$endif win32}
869
 
{$ifdef win32}
870
 
  // Win32ShowMouse;
871
 
{$endif win32}
 
925
{$endif Windows}
 
926
{$ifdef Windows}
 
927
  // WindowsShowMouse;
 
928
{$endif Windows}
872
929
 
873
930
  if Assigned(UserScreen) then
874
931
    UserScreen^.SwitchBackToIDEScreen;
875
 
{$ifdef win32}
 
932
{$ifdef Windows}
876
933
  { This message was sent when the VideoBuffer was smaller
877
934
    than was the IdeApp thought => writes to random memory and random crashes... PM }
878
935
  Message(Application,evBroadcast,cmUpdate,nil);
879
 
{$endif win32}
 
936
{$endif Windows}
880
937
{$ifdef Unix}
881
938
  SetKnownKeys;
882
939
{$endif Unix}
883
 
{$ifndef win32}
 
940
{$ifndef Windows}
884
941
{$ifndef go32v2}
885
942
  UpdateScreen(true);
886
943
{$endif go32v2}
887
 
{$endif win32}
 
944
{$endif Windows}
888
945
end;
889
946
 
890
947
function TIDEApp.AutoSave: boolean;
1007
1064
  UpdatePrimaryFile;
1008
1065
  UpdateINIFile;
1009
1066
  Message(Application,evBroadcast,cmCommandSetChanged,nil);
 
1067
  application^.redraw;
1010
1068
end;
1011
1069
 
1012
1070
procedure TIDEApp.SourceWindowClosed;
1247
1305
  DoneHelpSystem;
1248
1306
end;
1249
1307
 
1250
 
END.
1251
 
{
1252
 
  $Log: fpide.pas,v $
1253
 
  Revision 1.38  2005/02/14 17:13:18  peter
1254
 
    * truncate log
1255
 
 
1256
 
  Revision 1.37  2005/01/08 11:43:18  florian
1257
 
    + vector unit window
1258
 
 
1259
 
  Revision 1.36  2005/01/07 21:52:23  florian
1260
 
    * proper stepping in disassembler window now possible
1261
 
    + disassembler window to menu added
1262
 
 
1263
 
}
 
1308
 
 
1309
 
 
1310
end.