[Glxtreem-commits] GLXtreem/Source/Designtime GLXResourceSourceEditor.dfm,NONE,1.1 GLXResourceSource
Brought to you by:
andreaz
|
From: Markus L?d. <dan...@us...> - 2004-04-01 01:26:16
|
Update of /cvsroot/glxtreem/GLXtreem/Source/Designtime In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16071/Source/Designtime Added Files: GLXResourceSourceEditor.dfm GLXResourceSourceEditor.pas GLXStringListEditor.dfm GLXStringListEditor.pas Log Message: Initial Commit --- NEW FILE: GLXStringListEditor.dfm --- object GLXStringListEditorForm: TGLXStringListEditorForm Left = 361 Top = 157 Width = 381 Height = 249 Caption = 'GLXStringListEditorForm' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] Icon.Data = { 0000010001001010000001000800680500001600000028000000100000002000 0000010008000000000000000000000000000000000000000000000000000000 0000A77E7000A9807300A4786E0098686500BA958700EAD7A400EAD59E00E0C0 9700A5776C00A1746B00E1D4D300FFFEEE00F7CC8C00F0B47300F7C78800FCE3 A500C2A08800CEB29300FFFEDD00F4D1A500EEBA7B00F2C78F00F8E1AB00FCF0 BA00FCFACA00A3776F00AA7F7300FAE0A400F0B77800F6DDA600FEFBCC00FFFF D300FFFFD100FFFFD700D9C5A700A3756C00B18A7800FFDE9900E9A16700F4D1 9900FEFCCC00FFFFD500FFFFDA00FFFFDC00EFE6C500A97E7500B0897800FEDA 9700EDB47800FBEEBB00FFFFF400FFFFE200E9DDBC00A67B7300FAD19200FEF4 C200FFFFD000FFFFF600FFFFFC00B6938400C0917D00FCE9AC00FFFFCC00FFFF CF00FFFFDE00FFFFFA00E3D3D100996965003BABFF00A1CAE700AD867900A983 7300E0CFB100FFFFDD00FCF8CF00CCB29F0038A5FE00329DFF00156DCE00444F 5B009C6B6500AF887B00AF887E00AA80750037A4FE00359EFF000F6FDE003560 8B00A67B7F00379FFF000E6DDE00355F8900BB7F790032A0FE0037A1FF00106F E200325F8B00B67D79005084B2000F6FE100325F8C00B87E7A00314B6200AC7D 7E00000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000FFFFFF000067 6800000000000000000000000000636465660000000000000000000000005E5F 606162000000000000000000000000555A5B5C5D000000000000000000000000 55565758590000000000000000000000004D4E4F500051525354000000000000 000045464748492B4A4B4C0A00000000000000003D3E3F403941424344000000 000000002F3738392B3A3B3B3C0000000000002F303132202C33333435360000 00000025262728292A2B2C222D2E00000000001B1C1D151E1F20212223240000 0000000012131415161718191A000000000000000A0B0C0D0E0F101109000000 0000000000040506070809090000000000000000000000010203000000009FFF 00000FFF000007FF000083FF0000C1FF0000E10F0000F0030000FC010000FC01 0000F8000000F8000000F8000000FC010000FC010000FE030000FF8F0000} OldCreateOrder = False Position = poScreenCenter PixelsPerInch = 96 TextHeight = 13 object Memo1: TMemo Left = 0 Top = 0 Width = 373 Height = 186 Align = alClient ScrollBars = ssBoth TabOrder = 0 end object Panel1: TPanel Left = 0 Top = 186 Width = 373 Height = 29 Align = alBottom BevelOuter = bvNone TabOrder = 1 DesignSize = ( 373 29) object Button1: TButton Left = 294 Top = 4 Width = 75 Height = 25 Anchors = [akTop, akRight] Caption = '&OK' TabOrder = 0 OnClick = Button1Click end end end --- NEW FILE: GLXStringListEditor.pas --- unit GLXStringListEditor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, GLXResource; type TGLXStringListEditorForm = class(TForm) Memo1: TMemo; Panel1: TPanel; Button1: TButton; procedure Button1Click(Sender: TObject); private fStringList : TGLXStringList; procedure SetStringList(List:TGLXStringList); public property StringList : TGLXStringList read fStringList write SetStringList; end; implementation {$R *.dfm} procedure TGLXStringListEditorForm.SetStringList(List:TGLXStringList); begin fStringList:=List; if Assigned(fStringList) then begin Caption:=fStringList.Ident; Memo1.Lines.Clear; Memo1.Lines.AddStrings(fStringList.StringList); end; end; procedure TGLXStringListEditorForm.Button1Click(Sender: TObject); begin if Assigned(fStringList) then begin fStringList.StringList.Clear; fStringList.StringList.AddStrings(Memo1.Lines); fStringList.Dirty:=true; end; ModalResult:=mrOK; end; end. --- NEW FILE: GLXResourceSourceEditor.dfm --- object GLXResourceSourceEditorForm: TGLXResourceSourceEditorForm Left = 298 Top = 135 Width = 676 Height = 217 Caption = 'Resource Source' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] Icon.Data = { 0000010001001010000001000800680500001600000028000000100000002000 0000010008000000000000000000000000000000000000000000000000000000 0000A77E7000A9807300A4786E0098686500BA958700EAD7A400EAD59E00E0C0 9700A5776C00A1746B00E1D4D300FFFEEE00F7CC8C00F0B47300F7C78800FCE3 A500C2A08800CEB29300FFFEDD00F4D1A500EEBA7B00F2C78F00F8E1AB00FCF0 BA00FCFACA00A3776F00AA7F7300FAE0A400F0B77800F6DDA600FEFBCC00FFFF [...1378 lines suppressed...] Top = 60 end object pmAction: TPopupMenu Images = ActionImagesH Left = 112 Top = 60 object New1: TMenuItem Action = actNew end object Open1: TMenuItem Action = actOpen end object Properties1: TMenuItem Action = actProperties end object Delete1: TMenuItem Action = actDelete end end end --- NEW FILE: GLXResourceSourceEditor.pas --- unit GLXResourceSourceEditor; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ActnList, ToolWin, ComCtrls, Menus, ImgList, DesignEditors, StdCtrls, GLXResource; type TGLXResourceSourceEditorForm = class(TForm) ListView: TListView; ToolBar1: TToolBar; ActionList: TActionList; ActionImagesH: TImageList; actDelete: TAction; actNew: TAction; tbNew: TToolButton; tbDelete: TToolButton; ActionImagesD: TImageList; ActionImages: TImageList; pmResourceTypeList: TPopupMenu; actOpen: TAction; actProperties: TAction; tbOpen: TToolButton; tbOptions: TToolButton; pmAction: TPopupMenu; New1: TMenuItem; Open1: TMenuItem; Properties1: TMenuItem; Delete1: TMenuItem; procedure FormShow(Sender: TObject); procedure actDeleteExecute(Sender: TObject); procedure actDeleteUpdate(Sender: TObject); procedure actNewExecute(Sender: TObject); procedure actPropertiesExecute(Sender: TObject); procedure actOpenExecute(Sender: TObject); procedure ListViewDblClick(Sender: TObject); private fSource : TGLXResourceSource; procedure AddResource(Sender:TObject); public procedure UpdateList; property ResourceSource : TGLXResourceSource read fSource write fSource; end; TGLXResourceSourceEditor = class(TComponentEditor) private fForm : TGLXResourceSourceEditorForm; public procedure Edit; override; end; implementation {$R *.DFM} procedure TGLXResourceSourceEditorForm.UpdateList; var Inventory : TStringList; i : Integer; NewItem : TListItem; Inv : TGLXInventory; SelIdent : String; begin if Assigned(ListView.selected) then begin SelIdent:=ListView.Selected.Caption; end else begin SelIdent:=''; end; Inventory := TStringList.Create; try if Assigned(fSource) then begin fSource.GetList(Inventory); ListView.Items.Clear; for i:=0 to Inventory.Count-1 do begin Inv := fSource.GetInv(Inventory.Strings[i]); NewItem := ListView.Items.Add; NewItem.Caption := Inventory.Strings[i]; NewItem.SubItems.Add(Inv.ResourceClassName); NewItem.SubItems.Add(Format('%d Byte(s)',[Inv.Size])); NewItem.SubItems.Add(Format('%d Byte(s)',[Inv.OSize])); if Inv.Compressed then NewItem.SubItems.Add('True') else NewItem.SubItems.Add('False'); if (Inv.OSize>0) then NewItem.SubItems.Add(Format('%.1f%%',[Inv.Size*100/Inv.OSize])) else NewItem.SubItems.Add(Format('%.1f%%',[100.0])); NewItem.SubItems.Add(DateTimeToStr(Inv.Modified)); end; end; finally Inventory.Free; end; if SelIdent<>'' then begin for i:=0 to ListView.Items.Count-1 do begin if ListView.Items[i].Caption=SelIdent then begin ListView.Items[i].Selected:=true; break; end; end; end; end; procedure TGLXResourceSourceEditorForm.FormShow(Sender: TObject); begin UpdateList; end; procedure TGLXResourceSourceEditorForm.AddResource(Sender:TObject); var ClassName : String; Ident : String; ResClass : TGLXResourceClass; NewResource : TGLXResource; i : Integer; begin if (Sender is TMenuItem) and Assigned(fSource) then begin ClassName := (Sender as TMenuItem).Caption; while Pos('&',ClassName)>0 do Delete(ClassName,Pos('&',ClassName),1); ResClass := GetResourceClass(ClassName); if Assigned(ResClass) then begin NewResource := ResClass.Create; i := 0; repeat Ident:=Format('New%d',[i]); inc(i); until not fSource.Contains(Ident); NewResource.Ident:=Ident; fSource.Save(NewResource); UpdateList; end; end; end; //New Action ------------------------------------------------------------------- procedure TGLXResourceSourceEditorForm.actNewExecute(Sender: TObject); var p : TPoint; NewItem : TMenuItem; RCList : TStringList; i : Integer; begin pmResourceTypeList.Items.Clear; RCList := TStringList.Create; try GetResourceClassList(RCList); for i:=0 to RCList.Count-1 do begin NewItem := TMenuItem.Create(Self); NewItem.Caption := RCList.Strings[i]; NewItem.OnClick := AddResource; pmResourceTypeList.Items.Add(NewItem); end; finally RCList.Free; end; //Show Menu p.x:=tbNew.Left+12; p.y:=tbNew.Top+12; p:=tbNew.ClientToScreen(p); pmResourceTypeList.Popup(p.x,p.y); end; //Delete Action ---------------------------------------------------------------- procedure TGLXResourceSourceEditorForm.actDeleteUpdate(Sender:TObject); begin (Sender as TAction).enabled:=ListView.Selected<>nil; end; procedure TGLXResourceSourceEditorForm.actDeleteExecute(Sender:TObject); begin if Assigned(fSource) then begin fSource.Delete(ListView.Selected.Caption); UpdateList; end; end; //Open Action ------------------------------------------------------------------ procedure TGLXResourceSourceEditorForm.actOpenExecute(Sender:TObject); var Resource : TGLXResource; ResEdit : IEditor; begin Resource:=fSource.Load(ListView.Selected.Caption); try ResEdit:=Resource as IEditor; if ResEdit.Edit then begin fSource.Save(Resource); UpdateList; end; except if Assigned(Resource) then Resource.Free; end; end; //Properties Action ------------------------------------------------------------ procedure TGLXResourceSourceEditorForm.actPropertiesExecute(Sender:TObject); begin ; end; procedure TGLXResourceSourceEditorForm.ListViewDblClick(Sender:TObject); begin if ListView.Selected<>nil then actOpen.Execute; end; //------------------------------------------------------------------------------ // TGLXResourceSourceEditor //------------------------------------------------------------------------------ procedure TGLXResourceSourceEditor.Edit; var MyForm : TGLXResourceSourceEditorForm; begin MyForm := TGLXResourceSourceEditorForm.Create(nil); MyForm.ResourceSource := TGLXResourceSource(Component); MyForm.ShowModal; MyForm.Free; end; end. |