1 // PropTreeItemFileEdit.cpp : implementation file
5 #include "../../../idlib/precompiled.h"
9 #include "PropTreeItemFileEdit.h"
11 #include "../../../sys/win32/rc/proptree_Resource.h"
16 static char THIS_FILE[] = __FILE__;
19 /////////////////////////////////////////////////////////////////////////////
20 // CPropTreeItemFileEdit
22 CPropTreeItemFileEdit::CPropTreeItemFileEdit() {
25 CPropTreeItemFileEdit::~CPropTreeItemFileEdit() {
29 BEGIN_MESSAGE_MAP(CPropTreeItemFileEdit, CPropTreeItemEdit)
30 //{{AFX_MSG_MAP(CPropTreeItemFileEdit)
35 ON_COMMAND(ID_EDITMENU_INSERTFILE, OnInsertFile)
36 ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
37 ON_COMMAND(ID_EDIT_CUT, OnEditCut)
38 ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
39 ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
40 ON_COMMAND(ID_EDIT_DELETE, OnEditDelete)
41 ON_COMMAND(ID_EDIT_SELECTALL, OnEditSelectAll)
46 void CPropTreeItemFileEdit::OnContextMenu(CWnd* pWnd, CPoint point) {
49 VERIFY(FloatingMenu.LoadMenu(IDR_ME_EDIT_MENU));
50 CMenu* pPopupMenu = FloatingMenu.GetSubMenu (0);
53 pPopupMenu->EnableMenuItem(ID_EDIT_UNDO, MF_BYCOMMAND | MF_ENABLED);
55 pPopupMenu->EnableMenuItem(ID_EDIT_UNDO, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
58 DWORD dwSel = GetSel();
59 if(HIWORD(dwSel) != LOWORD(dwSel)) {
60 pPopupMenu->EnableMenuItem(ID_EDIT_CUT, MF_BYCOMMAND | MF_ENABLED);
61 pPopupMenu->EnableMenuItem(ID_EDIT_COPY, MF_BYCOMMAND | MF_ENABLED);
62 pPopupMenu->EnableMenuItem(ID_EDIT_DELETE, MF_BYCOMMAND | MF_ENABLED);
64 pPopupMenu->EnableMenuItem(ID_EDIT_CUT, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
65 pPopupMenu->EnableMenuItem(ID_EDIT_COPY, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
66 pPopupMenu->EnableMenuItem(ID_EDIT_DELETE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
69 pPopupMenu->TrackPopupMenu (TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
72 int CPropTreeItemFileEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
74 if (CPropTreeItemEdit::OnCreate(lpCreateStruct) == -1)
77 // TODO: Add your specialized creation code here
82 void CPropTreeItemFileEdit::OnInsertFile() {
83 CFileDialog dlg(TRUE);
84 dlg.m_ofn.Flags |= OFN_FILEMUSTEXIST;
87 GetSel(startSel, endSel);
89 if( dlg.DoModal()== IDOK) {
91 idStr currentText = (char*)GetItemValue();
92 idStr newText = currentText.Left(startSel) + currentText.Right(currentText.Length() - endSel);
94 idStr filename = fileSystem->OSPathToRelativePath(dlg.m_ofn.lpstrFile);
95 filename.BackSlashesToSlashes();
98 newText.Insert(filename, startSel);
100 SetItemValue((LPARAM)newText.c_str());
101 m_pProp->RefreshItems(this);
103 m_pProp->SendNotify(PTN_ITEMCHANGED, this);
108 void CPropTreeItemFileEdit::OnEditUndo() {
112 void CPropTreeItemFileEdit::OnEditCut() {
116 void CPropTreeItemFileEdit::OnEditCopy() {
120 void CPropTreeItemFileEdit::OnEditPaste() {
124 void CPropTreeItemFileEdit::OnEditDelete() {
128 void CPropTreeItemFileEdit::OnEditSelectAll() {