Skip to content

Commit

Permalink
[NEW_FEATURE] enhance Project manager (in progress).
Browse files Browse the repository at this point in the history
- Notepad-plus svn trunk @ 801
  • Loading branch information
donho committed Sep 1, 2011
1 parent 96d754c commit c897dbe
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 55 deletions.
30 changes: 11 additions & 19 deletions PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<Heading> 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;
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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;
Expand All @@ -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);
Expand All @@ -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);
}
}
Expand Down
26 changes: 5 additions & 21 deletions PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,23 +71,6 @@ BOOL TreeView::initImageList(int open_node_id, int closed_node_id, int leaf_id)
}


BOOL TreeView::initTreeViewItems(std::vector<Heading> & 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);
Expand All @@ -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;
Expand All @@ -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.
Expand All @@ -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;
Expand Down Expand Up @@ -185,5 +169,5 @@ HTREEITEM TreeView::addItem(const TCHAR *itemName, int nLevel)
}
return hPrev;
}

*/

15 changes: 2 additions & 13 deletions PowerEditor/src/WinControls/ProjectPanel/TreeView.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -36,9 +28,8 @@ class TreeView : public Window
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<Heading> & 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;
Expand All @@ -48,8 +39,6 @@ class TreeView : public Window
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);

};


Expand Down
12 changes: 10 additions & 2 deletions PowerEditor/src/WinControls/ProjectPanel/demo.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
<NotepadPlus>
<Project name="Notepad++">
<!-- projectFile/location -->
<!-- if file name is relative, then project file current path will be used -->
<Project name="Notepad++" >
<Folder name="Power Editor">
<Folder name="src">
<File name="C:\toto.txt"/>
<Folder name="src2">
<Folder name="src3">
<File name="C:\toto.txt"/>
</Folder>
<Folder name="src3-B">
</Folder>
</Folder>
</Folder>
<File name="C:\sources\Notepad++\trunk\PowerEditor\license.txt"/>
</Folder>
Expand Down

0 comments on commit c897dbe

Please sign in to comment.