diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp index b02482816..55e701f69 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp +++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp @@ -29,19 +29,8 @@ BOOL CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPar case WM_INITDIALOG : { _treeView.init(_hInst, _hSelf, ID_PROJECTTREEVIEW); - std::vector headings; - /* - headings.push_back(Heading(TEXT("1-a"), 1)); - headings.push_back(Heading(TEXT("1-b"), 1)); - headings.push_back(Heading(TEXT("2-a"), 2)); - headings.push_back(Heading(TEXT("2-a"), 3)); - headings.push_back(Heading(TEXT("2-a"), 4)); - headings.push_back(Heading(TEXT("2-a"), 5)); - headings.push_back(Heading(TEXT("1-c"), 1)); - headings.push_back(Heading(TEXT("2-a"), 2)); - headings.push_back(Heading(TEXT("2-b"), 2)); - */ - _treeView.initTreeViewItems(headings, IDR_ZOOMIN, IDR_ZOOMOUT, IDR_FIND); + + _treeView.initImageList(IDR_ZOOMIN, IDR_ZOOMOUT, IDR_FIND); _treeView.display(); openProject(TEXT("C:\\sources\\Notepad++\\trunk\\PowerEditor\\src\\WinControls\\ProjectPanel\\demo.xml")); return TRUE; @@ -157,11 +146,13 @@ BOOL CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPar return TRUE; */ case WM_SIZE: - {/* + { int width = LOWORD(lParam); int height = HIWORD(lParam); - ::MoveWindow(_fileListView.getHSelf(), 0, 0, width, height, TRUE); - */break; + HWND hwnd = _treeView.getHSelf(); + if (hwnd) + ::MoveWindow(hwnd, 0, 0, width, height, TRUE); + break; } case WM_DESTROY: @@ -191,7 +182,8 @@ bool ProjectPanel::openProject(TCHAR *projectFileName) if (!root) return false; - loadOkay = buildTreeFrom(root, TVI_ROOT); + HTREEITEM rootItem = _treeView.addItem((root->ToElement())->Attribute(TEXT("name")), TVI_ROOT, true); + buildTreeFrom(root, rootItem); delete pXmlDocProject; return loadOkay; @@ -207,7 +199,7 @@ bool ProjectPanel::buildTreeFrom(TiXmlNode *projectRoot, HTREEITEM hParentItem) if (lstrcmp(TEXT("Folder"), v) == 0) { //::MessageBox(NULL, (childNode->ToElement())->Attribute(TEXT("name")), TEXT("Folder"), MB_OK); - HTREEITEM addedItem = _treeView.addItem((childNode->ToElement())->Attribute(TEXT("name")), hParentItem); + HTREEITEM addedItem = _treeView.addItem((childNode->ToElement())->Attribute(TEXT("name")), hParentItem, true); if (!childNode->NoChildren()) { bool isOK = buildTreeFrom(childNode, addedItem); @@ -217,7 +209,7 @@ bool ProjectPanel::buildTreeFrom(TiXmlNode *projectRoot, HTREEITEM hParentItem) } else if (lstrcmp(TEXT("File"), v) == 0) { - _treeView.addItem((childNode->ToElement())->Attribute(TEXT("name")), hParentItem); + _treeView.addItem((childNode->ToElement())->Attribute(TEXT("name")), hParentItem, false); //::MessageBox(NULL, (childNode->ToElement())->Attribute(TEXT("name")), TEXT("File"), MB_OK); } } diff --git a/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp b/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp index 2a3211a20..85555cde7 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp +++ b/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp @@ -71,23 +71,6 @@ BOOL TreeView::initImageList(int open_node_id, int closed_node_id, int leaf_id) } -BOOL TreeView::initTreeViewItems(std::vector & headings, int idOpen, int idClosed, int idDocument) -{ - HTREEITEM hti; - - initImageList(idOpen,idClosed,idDocument); - - for (size_t i = 0; i < headings.size(); i++) - { - // Add the item to the tree-view control. - hti = addItem(headings[i]._name, headings[i]._level); - if (hti == NULL) - return FALSE; - } - return TRUE; -} - - void TreeView::destroy() { ::DestroyWindow(_hSelf); @@ -99,7 +82,7 @@ LRESULT TreeView::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) return ::CallWindowProc(_defaultProc, hwnd, Message, wParam, lParam); } -HTREEITEM TreeView::addItem(const TCHAR *itemName, HTREEITEM hParentItem) +HTREEITEM TreeView::addItem(const TCHAR *itemName, HTREEITEM hParentItem, bool isNode) { TVITEM tvi; tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM; @@ -110,8 +93,8 @@ HTREEITEM TreeView::addItem(const TCHAR *itemName, HTREEITEM hParentItem) // Assume the item is not a parent item, so give it a // document image. - tvi.iImage = INDEX_LEAF; - tvi.iSelectedImage = INDEX_LEAF; + tvi.iImage = isNode?INDEX_CLOSED_NODE:INDEX_LEAF; + tvi.iSelectedImage = isNode?INDEX_OPEN_NODE:INDEX_LEAF; // Save the heading level in the item's application-defined // data area. @@ -125,6 +108,7 @@ HTREEITEM TreeView::addItem(const TCHAR *itemName, HTREEITEM hParentItem) return (HTREEITEM)::SendMessage(_hSelf, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvInsertStruct); } +/* HTREEITEM TreeView::addItem(const TCHAR *itemName, int nLevel) { TVITEM tvi; @@ -185,5 +169,5 @@ HTREEITEM TreeView::addItem(const TCHAR *itemName, int nLevel) } return hPrev; } - +*/ diff --git a/PowerEditor/src/WinControls/ProjectPanel/TreeView.h b/PowerEditor/src/WinControls/ProjectPanel/TreeView.h index 45a4fd355..133f737eb 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/TreeView.h +++ b/PowerEditor/src/WinControls/ProjectPanel/TreeView.h @@ -20,14 +20,6 @@ #include "window.h" -struct Heading { - TCHAR _name[64]; - int _level; - Heading(TCHAR *name, int level): _level(level){ - lstrcpy(_name, name); - }; -}; - class TreeView : public Window { public: @@ -36,9 +28,8 @@ public: virtual ~TreeView() {}; virtual void init(HINSTANCE hInst, HWND parent, int treeViewID); virtual void destroy(); - HTREEITEM addItem(const TCHAR *itemName, int nLevel); - HTREEITEM addItem(const TCHAR *itemName, HTREEITEM hParentItem); - BOOL initTreeViewItems(std::vector & headings, int idOpen, int idClosed, int idDocument); + HTREEITEM addItem(const TCHAR *itemName, HTREEITEM hParentItem, bool isNode); + BOOL initImageList(int open_node_id, int closed_node_id, int leaf_id); protected: HIMAGELIST _hImaLst; @@ -48,8 +39,6 @@ protected: static LRESULT CALLBACK staticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { return (((TreeView *)(::GetWindowLongPtr(hwnd, GWL_USERDATA)))->runProc(hwnd, Message, wParam, lParam)); }; - BOOL initImageList(int open_node_id, int closed_node_id, int leaf_id); - }; diff --git a/PowerEditor/src/WinControls/ProjectPanel/demo.xml b/PowerEditor/src/WinControls/ProjectPanel/demo.xml index 4e510f2ee..f41defd91 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/demo.xml +++ b/PowerEditor/src/WinControls/ProjectPanel/demo.xml @@ -1,8 +1,16 @@ - + + + - + + + + + + +