--- oup/current/Main.pas 2006/12/23 00:03:50 45 +++ oup/current/Main.pas 2006/12/25 03:04:47 54 @@ -7,9 +7,9 @@ uses Dialogs, StdCtrls, StrUtils, Clipbrd, ExtCtrls, ComCtrls, Menus, Grids, MPHexEditor, ToolWin, ImgList, Tabs, MDITab, TB2Item, TB2Dock, TB2Toolbar, TB2MDI, - Code_Functions, Data, Code_DataStructures, Code_OniDataClass, - Helper_LevelDB, Code_Exporters, Settings, Tool_Template, - Tool_BinEdit, Tool_Extractor, Tool_Preview, Tool_RawEdit, Tool_TxmpReplace; + Data, Functions, DataStructures, OniDataClass, Exporters, + Helper_LevelDB, Settings, Template, + BinEdit, Extractor, Preview, RawEdit, TxmpReplace; type TForm_Main = class(TForm) @@ -65,6 +65,15 @@ type tb_txmpreplacer: TTBItem; tb_rawedit: TTBItem; tb_datedit: TTBItem; + menu_windows_tilevert: TTBItem; + tb_meta: TTBItem; + menu_meta: TTBItem; + TBSeparatorItem1: TTBSeparatorItem; + tb_db2dat: TTBItem; + tb_dat2db: TTBItem; + menu_loaddb: TTBItem; + tb_opendb: TTBItem; + procedure LoadFile(typedb: Boolean); function TryCloseAll: Boolean; procedure menu_AboutClick(Sender: TObject); procedure menu_settingsClick(Sender: TObject); @@ -76,7 +85,7 @@ type procedure menu_windows_previousClick(Sender: TObject); procedure menu_windows_nextClick(Sender: TObject); procedure menu_windows_tileClick(Sender: TObject); - function open_child(window_context: String; fileid: Integer): Boolean; + function open_child(window_context: String; fileid: Integer): TForm_ToolTemplate; procedure menu_windows_closeallClick(Sender: TObject); procedure menu_windows_cascadeClick(Sender: TObject); procedure menu_bineditClick(Sender: TObject); @@ -96,6 +105,10 @@ type procedure ActivateTools(active: Boolean); procedure MDITabMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure menu_windows_tilevertClick(Sender: TObject); + procedure menu_metaClick(Sender: TObject); + procedure ToolbarDockChanged(Sender: TObject); + procedure menu_loaddbClick(Sender: TObject); private public end; @@ -277,6 +290,28 @@ end; +procedure TForm_Main.ToolbarDockChanged(Sender: TObject); +var + toolbar: TTBToolbar; + position: TTBDockPosition; + mode: TTBItemDisplayMode; + i: Integer; + isEnabled: Boolean; +begin + toolbar := TTBToolbar(Sender); + if toolbar.Floating then + mode := nbdmImageAndText + else begin + position := toolbar.CurrentDock.Position; + if position in [dpLeft, dpRight] then + mode := nbdmDefault + else + mode := nbdmImageAndText; + end; + for i := 0 to toolbar.Items.Count - 1 do + toolbar.Items.Items[i].DisplayMode := mode; +end; + function TForm_Main.TryCloseAll: Boolean; begin menu_windows_closeallClick(Self); @@ -288,10 +323,8 @@ begin end; - {#################################} - {##### Main-Menu-Handlers #####} - {#################################} -procedure TForm_Main.menu_loadfileClick(Sender: TObject); + +procedure TForm_Main.LoadFile(typedb: Boolean); var ext: String; begin @@ -300,6 +333,10 @@ begin CloseDataConnection; opend.InitialDir := AppSettings.DatPath; opend.Filter := 'Compatible level files|*.dat;*.oldb|Oni level (*.dat)|*.dat|OUP level database (*.oldb)|*.oldb|Any (*.*)|*'; + if typedb then + opend.FilterIndex := 3 + else + opend.FilterIndex := 2; if opend.Execute then begin ext := ExtractFileExt(opend.FileName); @@ -322,6 +359,20 @@ begin end; + {#################################} + {##### Main-Menu-Handlers #####} + {#################################} +procedure TForm_Main.menu_loaddbClick(Sender: TObject); +begin + LoadFile(True); +end; + +procedure TForm_Main.menu_loadfileClick(Sender: TObject); +begin + LoadFile(False); +end; + + procedure TForm_Main.menu_settingsClick(Sender: TObject); @@ -423,6 +474,12 @@ begin end; +procedure TForm_Main.menu_metaClick(Sender: TObject); +begin + ShowMessage('TBD'); +end; + + procedure TForm_Main.menu_filecompareClick(Sender: TObject); begin open_child('compare', -1); @@ -474,6 +531,11 @@ begin Self.Tile; end; +procedure TForm_Main.menu_windows_tilevertClick(Sender: TObject); +begin + Self.TileMode := tbVertical; + Self.Tile; +end; procedure TForm_Main.menu_windows_closeallClick(Sender: TObject); @@ -516,14 +578,14 @@ end; -function TForm_Main.open_child(window_context: String; fileid: Integer): Boolean; +function TForm_Main.open_child(window_context: String; fileid: Integer): TForm_ToolTemplate; var toolform: TForm_ToolTemplate; i: Integer; tag: Integer; iconindex: Integer; begin - Result := True; + Result := nil; tag := 1; if MDIChildCount > 0 then @@ -537,27 +599,31 @@ begin begin toolform := TForm_BinEdit.Create(Self); toolform.Caption := 'Binary .dat-Editor ' + IntToStr(tag); - iconindex := 0; + iconindex := 5; end; if window_context = 'extractor' then begin toolform := TForm_Extractor.Create(Self); toolform.Caption := 'Extractor ' + IntToStr(tag); + iconindex := 8; end; if window_context = 'preview' then begin toolform := TForm_Preview.Create(Self); toolform.Caption := 'Preview-Window ' + IntToStr(tag); + iconindex := 4; end; if window_context = 'rawedit' then begin toolform := TForm_RawEdit.Create(Self); toolform.Caption := 'Binary .raw-Editor ' + IntToStr(tag); + iconindex := 6; end; if window_context = 'txmpreplace' then begin toolform := TForm_TxmpReplace.Create(Application); toolform.Caption := 'TXMP Replacer ' + IntToStr(tag); + iconindex := 7; end; if Assigned(toolform) then @@ -567,6 +633,7 @@ begin MDITab.AddTab(TForm(toolform), iconindex); if fileid > -1 then toolform.SelectFileID(fileid); + Result := toolform; end; end;