ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/oup/current/Tools/BinEdit.pas
(Generate patch)

Comparing oup/current/Tools/BinEdit.pas (file contents):
Revision 198 by alloc, Sat May 26 19:28:08 2007 UTC vs.
Revision 221 by alloc, Mon Jun 18 14:20:33 2007 UTC

# Line 1 | Line 1
1   unit BinEdit;
2 +
3   interface
4 +
5   uses
6    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 <  Dialogs, Template, StdCtrls, ExtCtrls, VirtualTrees, Grids, Wrapgrid,
8 <  MPHexEditor, VTHeaderPopup, Menus, StrUtils, Clipbrd,
9 <  Data, TypeDefs, ConnectionManager, Buttons;
7 >  Dialogs, VirtualTrees, Grids, Wrapgrid, MPHexEditor,
8 >  StdCtrls, Menus, ExtCtrls, Buttons,
9 >  Data, TypeDefs, ConnectionManager, Template,
10 >  _TemplateFileList, VTHeaderPopup, ComCtrls;
11  
12   type
13 <  TForm_BinEdit = class(TForm_ToolTemplate)
13 >  TForm_BinEdit = class(TForm_TemplateFileList)
14 >    panel_imexport: TPanel;
15 >    btn_export: TButton;
16 >    btn_import: TButton;
17      hex: TMPHexEditor;
18      Splitter2: TSplitter;
19      value_viewer: TWrapGrid;
14    VST: TVirtualStringTree;
20      Splitter3: TSplitter;
21 +    VST: TVirtualStringTree;
22 +    VTHPopup: TVTHeaderPopupMenu;
23      value_viewer_context: TPopupMenu;
24      value_viewer_context_copy: TMenuItem;
25      value_viewer_context_copyasdec: TMenuItem;
# Line 20 | Line 27 | type
27      value_viewer_context_copyasbitset: TMenuItem;
28      value_viewer_context_copyasstring: TMenuItem;
29      value_viewer_context_copyashex: TMenuItem;
23    VTHPopup: TVTHeaderPopupMenu;
24    panel_imexport: TPanel;
25    btn_export: TButton;
26    btn_import: TButton;
27    procedure FormCreate(Sender: TObject);
30      procedure NewFile(fileinfo: TFileInfo);
31  
30    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
31    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
32
33    procedure hexKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
34    procedure hexSelectionChanged(Sender: TObject);
35    procedure hexChange(Sender: TObject);
36
32      procedure LoadDat(_fileid: Integer);
33      function Save: Boolean;
34      function GetValue(datatype: Word; offset: Integer): String;
# Line 41 | Line 36 | type
36  
37      procedure WriteStructureInfos;
38      procedure ClearStructViewer;
44    procedure VSTDblClick(Sender: TObject);
45    procedure VSTFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode;
46      Column: TColumnIndex);
47    procedure VTHPopupColumnChange(const Sender: TBaseVirtualTree;
48      const Column: TColumnIndex; Visible: Boolean);
49    procedure VSTHeaderDragged(Sender: TVTHeader; Column: TColumnIndex;
50      OldPosition: Integer);
51    procedure VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
52      Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
39  
40      procedure ClearValues;
41      procedure WriteValues;
42 +
43 +    procedure FormCreate(Sender: TObject);
44 +    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
45 +    procedure hexChange(Sender: TObject);
46 +    procedure hexKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
47 +    procedure hexSelectionChanged(Sender: TObject);
48      procedure value_viewerDblClick(Sender: TObject);
49 <    procedure value_viewer_context_copyClick(Sender: TObject);
49 >    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
50 >    procedure value_viewer_contextPopup(Sender: TObject);
51      procedure value_viewerMouseDown(Sender: TObject; Button: TMouseButton;
52        Shift: TShiftState; X, Y: Integer);
53 <    procedure value_viewer_contextPopup(Sender: TObject);
53 >    procedure value_viewer_context_copyClick(Sender: TObject);
54 >    procedure VSTDblClick(Sender: TObject);
55 >    procedure VSTFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode;
56 >      Column: TColumnIndex);
57 >    procedure VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
58 >      Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
59 >    procedure VSTHeaderDragged(Sender: TVTHeader; Column: TColumnIndex;
60 >      OldPosition: Integer);
61 >    procedure VTHPopupColumnChange(const Sender: TBaseVirtualTree;
62 >      const Column: TColumnIndex; Visible: Boolean);
63    private
64      fileid: Integer;
65      ConID: Integer;
# Line 65 | Line 67 | type
67    public
68    end;
69  
68 var
69  Form_BinEdit: TForm_BinEdit;
70
70   implementation
72
73 uses ValueEdit, Main, Functions, DatStructureLoader, RawEdit;
71   {$R *.dfm}
72 + uses ValueEdit, Main, Functions, DatStructureLoader, RawEdit, RawList,
73 +  StrUtils, Clipbrd;
74 +
75  
76   type
77    PNodeData = ^TNodeData;
# Line 118 | Line 118 | begin
118    //
119   end;
120  
121 +
122   procedure TForm_BinEdit.NewFile(fileinfo: TFileInfo);
123   begin
124    LoadDat(fileinfo.ID);
# Line 187 | Line 188 | function TForm_BinEdit.GetValue(datatype
188   var
189    Data: TByteData;
190    i:    Integer;
190  tempi: Integer;
191    floatformat: TFormatSettings;
192   begin
193    floatformat.DecimalSeparator := '.';
# Line 760 | Line 760 | var
760    node: PVirtualNode;
761    nodedata: PNodeData;
762    rawinfo: TRawDataInfo;
763 <  form: TForm_ToolTemplate;
763 >  form: TForm_TemplateFileList;
764   begin
765    if VST.FocusedColumn = 3 then
766    begin
# Line 781 | Line 781 | begin
781          if rawinfo.RawSize > 0 then
782          begin
783            form := nil;
784 <          form := Form_Main.open_child('rawedit', ConID, fileid);
784 >          form := TForm_TemplateFileList(Form_Main.open_child('rawedit', ConID, fileid));
785            if Assigned(form) then
786              TForm_RawEdit(form).LoadRaw(rawinfo);
787          end;
# Line 800 | Line 800 | begin
800        end;
801        if (nodedata.DataType >= 100) and (nodedata.DataType <= 300) then
802        begin
803 <        form := Form_Main.open_child('binedit', ConID, -1);
803 >        form := TForm_TemplateFileList(Form_Main.open_child('binedit', ConID));
804          if Assigned(form) then
805            form.SetFileFilters(nodedata.Value, '', False);
806        end;
# Line 990 | Line 990 | end;
990  
991  
992  
993
993   procedure TForm_BinEdit.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
994   begin
995    if (Shift = [ssCtrl]) and (Key = 83) then

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)