Revised file format to conform to standard IFF layout
[ttodo.git] / iedit.cc
blob58c7e611cecc17eb6d0f1b284eacd0ebf43caee4
1 // Copyright (c) 2006 by Mike Sharov <msharov@users.sourceforge.net>
2 //
3 // iedit.cc
4 //
6 #include "iedit.h"
8 /// Default constructor.
9 CItemEditDialog::CItemEditDialog (void)
10 : CDialog (),
11 m_Item ()
13 AddChild (new CEditBox);
14 AddChild (new CLabel);
15 AddChild (new CLabel);
16 assert (Children().size() == ctrl_Last);
19 void CItemEditDialog::OnUpdate (void)
21 CDialog::OnUpdate();
22 SetItem (Document()->CurrentItem());
25 void CItemEditDialog::OnResize (rcrect_t wr)
27 CDialog::OnResize (wr);
28 ItemText().OnResize (Rect (1, 1, wr.Width() - 2, 1));
29 CreatedDate().OnResize (Rect (wr.Width() - 26, 3, 25, 1));
30 DoneDate().OnResize (Rect (wr.Width() - 26, 4, 25, 1));
33 void CItemEditDialog::OnKey (wchar_t key)
35 CDialog::OnKey (key);
36 if (ItemText().Flag (f_OffersFocus)) {
37 if (ItemText().Flag (f_Changed)) {
38 m_Item.SetText (ItemText().Text());
39 SetFlag (f_Changed);
41 SetFlag (f_OffersFocus);
42 if (Flag (f_Changed))
43 Document()->UpdateCurrentItem (Item());
44 else if (Document()->CurrentItem().Text().empty())
45 Document()->RemoveCurrentItem();
49 void CItemEditDialog::SetItem (rcentry_t e)
51 m_Item = e;
52 ItemText().SetText (e.Text());
53 CreatedDate().SetText (e.CreatedDateText());
54 DoneDate().SetText (e.Complete() ? e.DoneDateText() : "Active");
55 SetFocus (ctrl_Text);
56 ClearFlag (f_Changed);