summaryrefslogtreecommitdiff
path: root/win/EdGrpDlg.cpp
diff options
context:
space:
mode:
authorleo2002-03-16 00:51:24 +0000
committerleo2002-03-16 00:51:24 +0000
commit9c26a3e985e6d449860debe3b466cb18ca25d4d1 (patch)
treec4cfc5eee66020f8cb33e036be6967635e821347 /win/EdGrpDlg.cpp
parent6dd63e41ece8c1eb73c1708963ab9ff4988e0dba (diff)
Added a new group button to the Edit Groups Dialog.
git-svn-id: http://svn.leocad.org/trunk@287 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'win/EdGrpDlg.cpp')
-rw-r--r--win/EdGrpDlg.cpp51
1 files changed, 49 insertions, 2 deletions
diff --git a/win/EdGrpDlg.cpp b/win/EdGrpDlg.cpp
index c1b9b19..48c894d 100644
--- a/win/EdGrpDlg.cpp
+++ b/win/EdGrpDlg.cpp
@@ -4,6 +4,8 @@
#include "stdafx.h"
#include "leocad.h"
#include "EdGrpDlg.h"
+#include "globals.h"
+#include "project.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -36,6 +38,7 @@ void CEditGroupsDlg::DoDataExchange(CDataExchange* pDX)
BEGIN_MESSAGE_MAP(CEditGroupsDlg, CDialog)
//{{AFX_MSG_MAP(CEditGroupsDlg)
+ ON_BN_CLICKED(IDC_EDITGRP_NEWGROUP, OnEditgrpNewgroup)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
@@ -52,6 +55,50 @@ BOOL CEditGroupsDlg::OnInitDialog()
m_Tree.DeleteAllItems();
m_Tree.AddChildren(NULL, NULL);
-
- return TRUE;
+
+ return TRUE;
+}
+
+void CEditGroupsDlg::OnEditgrpNewgroup()
+{
+ HTREEITEM hItem, hParent = NULL;
+ Group *pGroup, *pParent = NULL;
+ TVITEM item;
+
+ hItem = m_Tree.GetSelectedItem ();
+
+ if (hItem != NULL)
+ {
+ item.hItem = hItem;
+ item.mask = TVIF_HANDLE | TVIF_PARAM;
+
+ if (m_Tree.GetItem (&item))
+ {
+ if (item.lParam < 0xFFFF)
+ hParent = m_Tree.GetParentItem (hItem);
+ else
+ hParent = hItem;
+ }
+ }
+
+ if (hParent)
+ {
+ item.hItem = hParent;
+ item.mask = TVIF_HANDLE | TVIF_PARAM;
+
+ if (m_Tree.GetItem (&item))
+ pParent = m_Tree.opts->groups[item.lParam - 0xFFFF];
+ }
+
+ pGroup = project->AddGroup (NULL, pParent, 0, 0, 0);
+
+ m_Tree.opts->groupcount++;
+ m_Tree.opts->groups = (Group**)realloc(m_Tree.opts->groups, m_Tree.opts->groupcount*sizeof(Group*));
+ m_Tree.opts->groupsgroups = (Group**)realloc(m_Tree.opts->groupsgroups, m_Tree.opts->groupcount*sizeof(Group*));
+
+ m_Tree.opts->groups[m_Tree.opts->groupcount-1] = pGroup;
+ m_Tree.opts->groupsgroups[m_Tree.opts->groupcount-1] = pParent;
+
+ m_Tree.DeleteAllItems();
+ m_Tree.AddChildren(NULL, NULL);
}