BEGIN_EVENT_TABLE(wxResourceEditorProjectTree, wxTreeCtrl)
EVT_LEFT_DCLICK(wxResourceEditorProjectTree::LeftDClick)
+//EVT_LEFT_DOWN(wxResourceEditorProjectTree::LeftClick)
EVT_TREE_SEL_CHANGED(IDC_TREECTRL, wxResourceEditorProjectTree::OnSelChanged)
END_EVENT_TABLE()
{
}
+/*
+void wxResourceEditorProjectTree::LeftClick(wxMouseEvent &event)
+{
+ long sel = GetSelection();
+ if (sel == -1)
+ return;
+
+ if (GetItemData(sel) == 0)
+ {
+ event.Skip();
+ return;
+ }
+
+ wxItemResource* res = ((wxResourceTreeData *)GetItemData(sel))->GetResource();
+
+ wxString resType(res->GetType());
+
+ wxResourceEditorFrame *frame = (wxResourceEditorFrame *)wxWindow::GetParent();
+ wxResourceManager *manager = frame->manager;
+
+ long selParent = wxTreeCtrl::GetParent(sel);
+
+ if (resType != "wxDialog" && resType != "wxDialogBox" && resType != "wxPanel")
+ {
+ wxWindow *win = manager->FindWindowForResource(res);
+
+ // Check to see if the item selected in on the current dialog being
+ // displayed. If not, then we will have to find the items parent dialog
+ if (!win)
+ {
+ // The item is on a dialog other than the one currently being
+ // shown/worked on, so find the parent dialog, switch to use
+ // its resource manager, and then find the window in the dialog
+ wxItemResource* resParent = ((wxResourceTreeData *)GetItemData(selParent))->GetResource();
+ wxResourceManager::GetCurrentResourceManager()->Edit(resParent);
+ win = manager->FindWindowForResource(res);
+ }
+/ *
+ if (win)
+ manager->GetCurrentResourceManager()->EditWindow(win);
+* /
+ }
+// else
+// manager->EditSelectedResource();
+
+ event.Skip();
+
+} // wxResourceEditorProjectTree::LeftClick()
+*/
+
void wxResourceEditorProjectTree::LeftDClick(wxMouseEvent& WXUNUSED(event))
{
long sel = GetSelection();
wxResourceEditorFrame *frame = (wxResourceEditorFrame *)wxWindow::GetParent();
wxResourceManager *manager = frame->manager;
+ long selParent = wxTreeCtrl::GetParent(sel);
+
+ wxWindow *win = NULL;
if (resType != "wxDialog" && resType != "wxDialogBox" && resType != "wxPanel")
- manager->GetCurrentResourceManager()->EditWindow(manager->FindWindowForResource(res));
+ {
+ win = manager->FindWindowForResource(res);
+
+ // Check to see if the item selected in on the current dialog being
+ // displayed. If not, then we will have to find the items parent dialog
+ if (!win)
+ {
+ // The item is on a dialog other than the one currently being
+ // shown/worked on, so find the parent dialog, switch to use
+ // its resource manager, and then find the window in the dialog
+ wxItemResource* resParent = ((wxResourceTreeData *)GetItemData(selParent))->GetResource();
+ wxResourceManager::GetCurrentResourceManager()->Edit(resParent);
+ win = manager->FindWindowForResource(res);
+ }
+
+ if (win)
+ manager->GetCurrentResourceManager()->EditWindow(win);
+ }
else
- manager->EditSelectedResource();
-}
+ {
+// manager->EditSelectedResource();
+ win = manager->FindWindowForResource(res);
+ wxResourceManager::GetCurrentResourceManager()->EditWindow(win);
+ }
+
+
+} // wxResourceEditorProjectTree::LeftDClick()
+
void wxResourceEditorProjectTree::OnSelChanged(wxTreeEvent& WXUNUSED(event))
{
wxItemResource* res = ((wxResourceTreeData *)GetItemData(sel))->GetResource();
wxString resType(res->GetType());
+
+ wxResourceEditorFrame *frame = (wxResourceEditorFrame *)wxWindow::GetParent();
+ wxResourceManager *manager = frame->manager;
+
+ long selParent = wxTreeCtrl::GetParent(sel);
+
if (resType != "wxDialog" && resType != "wxDialogBox" && resType != "wxPanel")
- return;
-
- wxResourceManager::GetCurrentResourceManager()->Edit(res);
-}
+ {
+ wxWindow *win = manager->FindWindowForResource(res);
+
+ // Check to see if the item selected in on the current dialog being
+ // displayed. If not, then we will have to find the items parent dialog
+ if (!win)
+ {
+ // The item is on a dialog other than the one currently being
+ // shown/worked on, so find the parent dialog, switch to use
+ // its resource manager, and then find the window in the dialog
+ wxItemResource* resParent = ((wxResourceTreeData *)GetItemData(selParent))->GetResource();
+ wxResourceManager::GetCurrentResourceManager()->Edit(resParent);
+ win = manager->FindWindowForResource(res);
+ }
+
+// if (win)
+// manager->GetCurrentResourceManager()->EditWindow(win);
+ }
+ else
+ wxResourceManager::GetCurrentResourceManager()->Edit(res);
+
+} // wxResourceEditorProjectTree::OnSelChanged()