home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2006 May / PCpro_2006_05.ISO / files / mobile / fma-2.0-stable-setup.exe / {app} / source / uOrganizeFavs.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2005-01-29  |  5.5 KB  |  211 lines

  1. unit uOrganizeFavs;
  2.  
  3. {
  4. *******************************************************************************
  5. * Descriptions: Organize Favorites
  6. * $Source: /cvsroot/fma/fma/uOrganizeFavs.pas,v $
  7. * $Locker:  $
  8. *
  9. * Todo:
  10. *
  11. * Change Log:
  12. * $Log: uOrganizeFavs.pas,v $
  13. * Revision 1.3.8.2  2005/01/27 09:57:10  z_stoichev
  14. * Fixed: Organize Favorites GUI on remove item.
  15. *
  16. * Revision 1.3.8.1  2005/01/25 16:03:20  z_stoichev
  17. * Merged with 2.1 Beta 1 bugfixes
  18. *
  19. * Revision 1.3  2004/06/29 11:51:15  z_stoichev
  20. * Added Select One Contact support
  21. *
  22. * Revision 1.2  2004/06/24 08:38:19  z_stoichev
  23. * Add Remove confirmation
  24. *
  25. * Revision 1.1  2004/05/20 06:38:25  z_stoichev
  26. * Initial checkin.
  27. *
  28. *
  29. }
  30.  
  31. interface
  32.  
  33. uses
  34.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  35.   Dialogs, ExtCtrls, StdCtrls, ComCtrls, Menus, TntStdCtrls, TntComCtrls;
  36.  
  37. type
  38.   TfrmOrganizeFavs = class(TForm)
  39.     TreeView1: TTntTreeView;
  40.     lblDetails: TTntLabel;
  41.     Label1: TLabel;
  42.     btnAdd: TButton;
  43.     btnRemove: TButton;
  44.     btnUp: TButton;
  45.     btnDown: TButton;
  46.     Panel1: TPanel;
  47.     btnOk: TButton;
  48.     btnCancel: TButton;
  49.     PopupMenu1: TPopupMenu;
  50.     Edit1: TMenuItem;
  51.     N1: TMenuItem;
  52.     Delete1: TMenuItem;
  53.     procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
  54.     procedure btnRemoveClick(Sender: TObject);
  55.     procedure btnUpDownClick(Sender: TObject);
  56.     procedure btnAddClick(Sender: TObject);
  57.     procedure PopupMenu1Popup(Sender: TObject);
  58.     procedure FormCreate(Sender: TObject);
  59.   private
  60.     FFavsType: string;
  61.     FMultiSel: boolean;
  62.     function Get_Favs: TStringList;
  63.     procedure Set_Favs(const Value: TStringList);
  64.     procedure Set_FavType(const Value: string);
  65.     { Private declarations }
  66.   public
  67.     { Public declarations }
  68.     property FavsType: string read FFavsType write Set_FavType;
  69.     property FavsList: TStringList read Get_Favs write Set_Favs;
  70.     property MultiSel: boolean read FMultiSel write FMultiSel;
  71.   end;
  72.  
  73. var
  74.   frmOrganizeFavs: TfrmOrganizeFavs;
  75.  
  76. implementation
  77.  
  78. uses Unit1, uSelectContact, uGetContact;
  79.  
  80. {$R *.dfm}
  81.  
  82. { TfrmOrganizeFavs }
  83.  
  84. function TfrmOrganizeFavs.Get_Favs: TStringList;
  85. var
  86.   sl: TStringList;
  87.   i: integer;
  88. begin
  89.   sl := TStringList.Create;
  90.   try
  91.     for i := 0 to TreeView1.Items.Count-1 do
  92.       sl.Add(TreeView1.Items[i].Text);
  93.   except
  94.     FreeAndNil(sl);
  95.   end;
  96.   Result := sl;
  97. end;
  98.  
  99. procedure TfrmOrganizeFavs.Set_Favs(const Value: TStringList);
  100. var
  101.   i: integer;
  102. begin
  103.   TreeView1.Items.BeginUpdate;
  104.   try
  105.     TreeView1.Items.Clear;
  106.     for i := 0 to Value.Count-1 do
  107.       with TreeView1.Items.Add(nil,Value[i]) do begin
  108.         ImageIndex := 26;
  109.         SelectedIndex := 25;
  110.       end;
  111.   finally
  112.     TreeView1.Items.EndUpdate;
  113.   end;
  114. end;
  115.  
  116. procedure TfrmOrganizeFavs.TreeView1Change(Sender: TObject;
  117.   Node: TTreeNode);
  118. begin
  119.   if Assigned(Node) then
  120.     lblDetails.Caption := StringReplace(Node.Text,'; ',#13#10,[rfReplaceAll])
  121.   else
  122.     lblDetails.Caption := '';
  123.   lblDetails.Hint := lblDetails.Caption;
  124.   btnRemove.Enabled := TreeView1.Selected <> nil;
  125.   btnUp.Enabled := btnRemove.Enabled and (TreeView1.Selected.Index > 0);
  126.   btnDown.Enabled := btnRemove.Enabled and (TreeView1.Selected.Index < TreeView1.Items.Count-1);
  127. end;
  128.  
  129. procedure TfrmOrganizeFavs.btnRemoveClick(Sender: TObject);
  130. begin
  131.   if MessageDlg('Current favorite item will be removed from list. Do you wish to continue?',
  132.     mtConfirmation,[mbYes,mbNo],0) = ID_YES then begin
  133.     TreeView1.Selected.Delete;
  134.     TreeView1Change(TreeView1,TreeView1.Selected);
  135.   end;
  136. end;
  137.  
  138. procedure TfrmOrganizeFavs.btnUpDownClick(Sender: TObject);
  139. var
  140.   Node: TTntTreeNode;
  141.   s: string;
  142. begin
  143.   Node := TreeView1.Items[TreeView1.Selected.Index + (Sender as TButton).Tag];
  144.   s := Node.Text;
  145.   Node.Text := TreeView1.Selected.Text;
  146.   TreeView1.Selected.Text := s;
  147.   TreeView1.Selected := Node;
  148. end;
  149.  
  150. procedure TfrmOrganizeFavs.btnAddClick(Sender: TObject);
  151. var
  152.   Dlg: TfrmSelContact;
  153. begin
  154.   if FMultiSel then
  155.     Dlg := TfrmSelContact.Create(nil)
  156.   else
  157.     Dlg := TfrmGetContact.Create(nil);
  158.   with Dlg do
  159.     try
  160.       if (Sender <> btnAdd) and (TreeView1.Selected <> nil) then
  161.         SelContacts := TreeView1.Selected.Text
  162.       else
  163.         SelContacts := '';
  164.       if ShowModal = mrOk then
  165.         if SelContacts <> '' then
  166.           if (Sender = btnAdd) or (TreeView1.Selected = nil) then
  167.             with TreeView1.Items.Add(nil,SelContacts) do begin
  168.               ImageIndex := 26;
  169.               SelectedIndex := 25;
  170.               Selected := True;
  171.               Focused := True;
  172.             end
  173.           else begin
  174.             TreeView1.Selected.Text := SelContacts;
  175.             TreeView1Change(TreeView1,TreeView1.Selected);
  176.           end
  177.         else
  178.           if (Sender <> btnAdd) and (TreeView1.Selected <> nil) then
  179.             TreeView1.Selected.Delete;
  180.     finally
  181.       Free;
  182.     end;
  183. end;
  184.  
  185. procedure TfrmOrganizeFavs.PopupMenu1Popup(Sender: TObject);
  186. begin
  187.   Edit1.Enabled := TreeView1.Selected <> nil;
  188.   Delete1.Enabled := Edit1.Enabled;
  189. end;
  190.  
  191. procedure TfrmOrganizeFavs.Set_FavType(const Value: string);
  192. begin
  193.   FFavsType := Value;
  194.   Edit1.Caption := 'Edit...';
  195.   Caption := 'Organize Favorites';
  196.   if Value <> '' then begin
  197.     Caption := Format('%s - [%s]',[Caption,Value]);
  198.     Edit1.Caption := Format('Edit %s',[Value]);
  199.   end;
  200. end;
  201.  
  202. procedure TfrmOrganizeFavs.FormCreate(Sender: TObject);
  203. begin
  204. {$IFNDEF VER150}
  205.   Form1.ThemeManager1.CollectForms(Self);
  206. {$ENDIF}
  207.   FMultiSel := True;
  208. end;
  209.  
  210. end.
  211.