mirror of
https://github.com/dhewm/dhewm3.git
synced 2024-11-30 16:11:11 +00:00
131 lines
3.1 KiB
C++
131 lines
3.1 KiB
C++
|
// PropTreeItemFileEdit.cpp : implementation file
|
||
|
|
||
|
|
||
|
//#include "stdafx.h"
|
||
|
#include "../../../idlib/precompiled.h"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
#include "proptree.h"
|
||
|
#include "PropTreeItemFileEdit.h"
|
||
|
|
||
|
#include "../../../sys/win32/rc/proptree_Resource.h"
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
#define new DEBUG_NEW
|
||
|
#undef THIS_FILE
|
||
|
static char THIS_FILE[] = __FILE__;
|
||
|
#endif
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CPropTreeItemFileEdit
|
||
|
|
||
|
CPropTreeItemFileEdit::CPropTreeItemFileEdit() {
|
||
|
}
|
||
|
|
||
|
CPropTreeItemFileEdit::~CPropTreeItemFileEdit() {
|
||
|
}
|
||
|
|
||
|
|
||
|
BEGIN_MESSAGE_MAP(CPropTreeItemFileEdit, CPropTreeItemEdit)
|
||
|
//{{AFX_MSG_MAP(CPropTreeItemFileEdit)
|
||
|
//}}AFX_MSG_MAP
|
||
|
ON_WM_CONTEXTMENU()
|
||
|
ON_WM_CREATE()
|
||
|
|
||
|
ON_COMMAND(ID_EDITMENU_INSERTFILE, OnInsertFile)
|
||
|
ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
|
||
|
ON_COMMAND(ID_EDIT_CUT, OnEditCut)
|
||
|
ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
|
||
|
ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
|
||
|
ON_COMMAND(ID_EDIT_DELETE, OnEditDelete)
|
||
|
ON_COMMAND(ID_EDIT_SELECTALL, OnEditSelectAll)
|
||
|
|
||
|
END_MESSAGE_MAP()
|
||
|
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnContextMenu(CWnd* pWnd, CPoint point) {
|
||
|
|
||
|
CMenu FloatingMenu;
|
||
|
VERIFY(FloatingMenu.LoadMenu(IDR_ME_EDIT_MENU));
|
||
|
CMenu* pPopupMenu = FloatingMenu.GetSubMenu (0);
|
||
|
|
||
|
if(CanUndo()) {
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_UNDO, MF_BYCOMMAND | MF_ENABLED);
|
||
|
} else {
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_UNDO, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
|
||
|
}
|
||
|
|
||
|
DWORD dwSel = GetSel();
|
||
|
if(HIWORD(dwSel) != LOWORD(dwSel)) {
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_CUT, MF_BYCOMMAND | MF_ENABLED);
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_COPY, MF_BYCOMMAND | MF_ENABLED);
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_DELETE, MF_BYCOMMAND | MF_ENABLED);
|
||
|
} else {
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_CUT, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_COPY, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
|
||
|
pPopupMenu->EnableMenuItem(ID_EDIT_DELETE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
|
||
|
}
|
||
|
|
||
|
pPopupMenu->TrackPopupMenu (TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
|
||
|
}
|
||
|
|
||
|
int CPropTreeItemFileEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||
|
{
|
||
|
if (CPropTreeItemEdit::OnCreate(lpCreateStruct) == -1)
|
||
|
return -1;
|
||
|
|
||
|
// TODO: Add your specialized creation code here
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnInsertFile() {
|
||
|
CFileDialog dlg(TRUE);
|
||
|
dlg.m_ofn.Flags |= OFN_FILEMUSTEXIST;
|
||
|
|
||
|
int startSel, endSel;
|
||
|
GetSel(startSel, endSel);
|
||
|
|
||
|
if( dlg.DoModal()== IDOK) {
|
||
|
|
||
|
idStr currentText = (char*)GetItemValue();
|
||
|
idStr newText = currentText.Left(startSel) + currentText.Right(currentText.Length() - endSel);
|
||
|
|
||
|
idStr filename = fileSystem->OSPathToRelativePath(dlg.m_ofn.lpstrFile);
|
||
|
filename.BackSlashesToSlashes();
|
||
|
|
||
|
|
||
|
newText.Insert(filename, startSel);
|
||
|
|
||
|
SetItemValue((LPARAM)newText.c_str());
|
||
|
m_pProp->RefreshItems(this);
|
||
|
|
||
|
m_pProp->SendNotify(PTN_ITEMCHANGED, this);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnEditUndo() {
|
||
|
Undo();
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnEditCut() {
|
||
|
Cut();
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnEditCopy() {
|
||
|
Copy();
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnEditPaste() {
|
||
|
Paste();
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnEditDelete() {
|
||
|
Clear();
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemFileEdit::OnEditSelectAll() {
|
||
|
SetSel(0, -1);
|
||
|
}
|