|
From: <got...@us...> - 2009-04-26 19:31:02
|
Revision: 230
http://scstudio.svn.sourceforge.net/scstudio/?rev=230&view=rev
Author: gotthardp
Date: 2009-04-26 19:30:44 +0000 (Sun, 26 Apr 2009)
Log Message:
-----------
Implemented the "Options" dialog.
Modified Paths:
--------------
trunk/src/check/structure/name_checker.cpp
trunk/src/check/structure/name_checker.h
trunk/src/view/visio/addon/addon.cpp
trunk/src/view/visio/addon/addon.h
trunk/src/view/visio/addon/dllmodule.rc
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/document.h
trunk/src/view/visio/addon/resource.h
trunk/src/view/visio/addon/scstudio.vcproj
Added Paths:
-----------
trunk/src/view/visio/addon/optionsdlg.cpp
trunk/src/view/visio/addon/optionsdlg.h
Modified: trunk/src/check/structure/name_checker.cpp
===================================================================
--- trunk/src/check/structure/name_checker.cpp 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/check/structure/name_checker.cpp 2009-04-26 19:30:44 UTC (rev 230)
@@ -53,7 +53,7 @@
std::sort(current_labels.begin(), current_labels.end());
for(unsigned i = 1; i < current_labels.size(); i++)
if(current_labels[i] == current_labels[i - 1])
- throw DuplicateNamesException();
+ throw DuplicateNamesException(current_labels[i]);
if(m_first_node)
{
@@ -188,7 +188,7 @@
{
name_traverser.traverse(hmsc);
}
- catch(DuplicateNamesException)
+ catch(DuplicateNamesException& err)
{
p = create_duplicate_counter_example(name_traverser.get_reached_elements());
name_traverser.cleanup_traversing_attributes();
Modified: trunk/src/check/structure/name_checker.h
===================================================================
--- trunk/src/check/structure/name_checker.h 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/check/structure/name_checker.h 2009-04-26 19:30:44 UTC (rev 230)
@@ -45,11 +45,22 @@
class DuplicateNamesException: public std::exception
{
public:
+ DuplicateNamesException(const std::string& name)
+ : m_name(name)
+ { }
+ const std::string& get_name() const
+ {
+ return m_name;
+ }
+
const char* what()
{
return "Duplicate names.";
}
+
+private:
+ std::string m_name;
};
class FindFirstNodeListener:public WhiteNodeFoundListener
Modified: trunk/src/view/visio/addon/addon.cpp
===================================================================
--- trunk/src/view/visio/addon/addon.cpp 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/view/visio/addon/addon.cpp 2009-04-26 19:30:44 UTC (rev 230)
@@ -20,6 +20,7 @@
#include "dllmodule.h"
#include "addon.h"
#include "aboutdlg.h"
+#include "optionsdlg.h"
#include "document.h"
#include "extract.h"
#include "errors.h"
@@ -307,6 +308,9 @@
case 205:
TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Repaint'");
return pDocumentMonitor->OnMenuRepaint(vsoApp);
+ case 206:
+ TRACE("CStudioAddon::Run() menu item 'Check--Options'");
+ return DisplayOptions();
default:
TRACE("CStudioAddon::Run() unexpected event id=" << iEvent);
@@ -347,6 +351,15 @@
return VAddon::Unload(wParam, p);
}
+VAORC CStudioAddon::DisplayOptions()
+{
+ TRACE("CStudioAddon::DisplayOptions() called");
+ COptionsDlg dlg;
+
+ dlg.DoModal();
+ return VAORC_SUCCESS;
+}
+
HRESULT CStudioAddon::HandleVisioEvent(
IUnknown *ipSink, short nEventCode, IDispatch *pSourceObj, long nEventID,
long nEventSeqNum, IDispatch *pSubjectObj, VARIANT vMoreInfo, VARIANT *pvResult)
Modified: trunk/src/view/visio/addon/addon.h
===================================================================
--- trunk/src/view/visio/addon/addon.h 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/view/visio/addon/addon.h 2009-04-26 19:30:44 UTC (rev 230)
@@ -34,6 +34,8 @@
virtual VAORC Run(LPVAOV2LSTRUCT pV2L);
virtual VAORC Unload(WORD wParam, LPVOID p);
+ VAORC DisplayOptions();
+
virtual HRESULT HandleVisioEvent(
IUnknown *ipSink, // [in] ipSink [assert]
short nEventCode, // [in] code of event that's firing
Modified: trunk/src/view/visio/addon/dllmodule.rc
===================================================================
--- trunk/src/view/visio/addon/dllmodule.rc 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/view/visio/addon/dllmodule.rc 2009-04-26 19:30:44 UTC (rev 230)
@@ -39,7 +39,24 @@
DEFPUSHBUTTON "&OK",IDOK,184,60,50,14
END
+IDD_OPTIONS DIALOGEX 0, 0, 186, 124
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
+ WS_SYSMENU
+CAPTION "Options"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,131,14,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,131,33,50,14
+ LTEXT "Properties to check",IDC_STATIC,5,5,100,8
+ CONTROL "",IDC_CHECKLIST,"SysListView32",LVS_LIST |
+ LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,5,
+ 14,100,80
+ LTEXT "Display",IDC_STATIC,5,98,100,8
+ COMBOBOX IDC_OUTPUTLEVEL,5,107,100,61,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+END
+
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
@@ -115,6 +132,38 @@
/////////////////////////////////////////////////////////////////////////////
//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_OPTIONS, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 181
+ TOPMARGIN, 5
+ BOTTOMMARGIN, 119
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog Info
+//
+
+IDD_OPTIONS DLGINIT
+BEGIN
+ IDC_OUTPUTLEVEL, 0x403, 3, 0
+0x6464, "\000"
+ 0
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
// String Table
//
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/view/visio/addon/document.cpp 2009-04-26 19:30:44 UTC (rev 230)
@@ -23,6 +23,7 @@
#include "errors.h"
#include "extract.h"
#include "visualize.h"
+#include "optionsdlg.h"
#include <fstream>
#include "data/msc.h"
@@ -73,7 +74,7 @@
{
// step 1: read the module directory path
HKEY hPathKey;
- if(RegOpenKeyEx(hKey, _T("Software\\Sequence Chart Studio"),
+ if(RegOpenKeyEx(hKey, _T(SCSTUDIO_REGISTRY_ROOT),
0, KEY_READ, &hPathKey) != ERROR_SUCCESS)
{
return 1;
@@ -99,7 +100,7 @@
// step 2: load the modules
HKEY hSubKey;
- if(RegOpenKeyEx(hKey, _T("Software\\Sequence Chart Studio\\Modules"),
+ if(RegOpenKeyEx(hKey, _T(SCSTUDIO_REGISTRY_ROOT) _T("\\Modules"),
0, KEY_READ, &hSubKey) != ERROR_SUCCESS)
{
return 1;
@@ -354,6 +355,11 @@
menuItem33->AddOnArgs = "/event=205";
menuItem33->BeginGroup = true;
+ Visio::IVMenuItemPtr menuItem4 = menu->MenuItems->Add();
+ menuItem4->Caption = "&Options...";
+ menuItem4->AddOnName = ADDON_NAME;
+ menuItem4->AddOnArgs = "/event=206";
+
vsoDocument->SetCustomMenus(vsoMenus);
}
@@ -380,33 +386,6 @@
return m_checkers.end();
}
-DWORD CDocumentMonitor::GetCheckerConfig(const char* subkey, const char* parameter, DWORD default_value) const
-{
- TCHAR _subkey[MAX_PATH];
- mbstowcs(_subkey, subkey, MAX_PATH);
-
- HKEY hPathKey;
- if(RegOpenKeyEx(HKEY_CURRENT_USER, _subkey, 0, KEY_READ, &hPathKey) != ERROR_SUCCESS)
- return default_value;
-
- TCHAR _parameter[MAX_PATH];
- mbstowcs(_parameter, parameter, MAX_PATH);
-
- DWORD valueType;
- DWORD value;
- DWORD valueLength = sizeof(DWORD);
-
- if(RegQueryValueEx(hPathKey, _parameter,
- NULL, &valueType, (LPBYTE)&value, &valueLength) != ERROR_SUCCESS)
- {
- // registry entry doesn't exist, use the default value
- value = default_value;
- }
-
- RegCloseKey(hPathKey);
- return value;
-}
-
struct check_priority_t
{
typedef boost::edge_property_tag kind;
@@ -503,10 +482,10 @@
boost::put(max_priority_map, icheck, Checker::PP_DISREGARDED);
char subkey[MAX_PATH];
- strcpy(subkey, "Software\\Sequence Chart Studio\\Checks\\");
+ strcpy(subkey, SCSTUDIO_REGISTRY_ROOT "\\Checks\\");
strcat(subkey, (*cpos)->get_property_name().c_str());
- int user_priority = GetCheckerConfig(subkey, "Priority", 0);
+ int user_priority = GetRegistryDWORD(subkey, "Priority", DEFAULT_CHECKER_PRIORITY);
if(user_priority < Checker::PP_DISREGARDED)
{
// add dependency for each user required check
@@ -557,7 +536,8 @@
OL_WARNING,
OL_NOTIFY
};
- OutputLevel output_level = (OutputLevel)GetCheckerConfig("Software\\Sequence Chart Studio", "OutputLevel", 1);
+ OutputLevel output_level =
+ (OutputLevel)GetRegistryDWORD(SCSTUDIO_REGISTRY_ROOT, "OutputLevel", DEFAULT_OUTPUT_LEVEL);
int satisfied_count = 0;
int violated_count = 0;
Modified: trunk/src/view/visio/addon/document.h
===================================================================
--- trunk/src/view/visio/addon/document.h 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/view/visio/addon/document.h 2009-04-26 19:30:44 UTC (rev 230)
@@ -73,7 +73,6 @@
CheckerPtrList m_checkers;
CheckerPtrList::const_iterator find_checker(const std::string& property_name) const;
- DWORD GetCheckerConfig(const char* subkey, const char* parameter, DWORD default_value) const;
CStudioAddon *m_addon;
Visio::IVApplicationPtr m_vsoApp;
Added: trunk/src/view/visio/addon/optionsdlg.cpp
===================================================================
--- trunk/src/view/visio/addon/optionsdlg.cpp (rev 0)
+++ trunk/src/view/visio/addon/optionsdlg.cpp 2009-04-26 19:30:44 UTC (rev 230)
@@ -0,0 +1,209 @@
+/*
+ * scstudio - Sequence Chart Studio
+ * http://scstudio.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ *
+ * $Id$
+ */
+
+#include "stdafx.h"
+#include "optionsdlg.h"
+
+#include "data/checker.h"
+
+class RegistryValueNotFound
+{ };
+
+DWORD GetRegistryDWORD(HKEY key, const TCHAR* subkey, const TCHAR* parameter)
+{
+ HKEY hPathKey;
+ if(RegOpenKeyEx(key, subkey, 0, KEY_READ, &hPathKey) != ERROR_SUCCESS)
+ {
+ throw RegistryValueNotFound();
+ }
+
+ DWORD valueType;
+ DWORD value;
+ DWORD valueLength = sizeof(DWORD);
+
+ if(RegQueryValueEx(hPathKey, parameter,
+ NULL, &valueType, (LPBYTE)&value, &valueLength) != ERROR_SUCCESS)
+ {
+ throw RegistryValueNotFound();
+ }
+
+ RegCloseKey(hPathKey);
+ return value;
+}
+
+int SetRegistryDWORD(HKEY key, const TCHAR* subkey, const TCHAR* parameter, DWORD value)
+{
+ HKEY hPathKey;
+ if(RegCreateKeyEx(
+ key,
+ subkey,
+ 0,
+ NULL,
+ REG_OPTION_NON_VOLATILE,
+ KEY_ALL_ACCESS,
+ NULL,
+ &hPathKey,
+ NULL) != ERROR_SUCCESS)
+ {
+ return 0;
+ }
+
+ if(RegSetValueEx(hPathKey,
+ parameter,
+ 0, // must be zero
+ REG_DWORD, // value type
+ (LPBYTE)&value, sizeof(DWORD)) != ERROR_SUCCESS)
+ {
+ return 0;
+ }
+
+ RegCloseKey(hPathKey);
+ return 1;
+}
+
+DWORD GetRegistryDWORD(const TCHAR* subkey, const TCHAR* parameter, DWORD default_value)
+{
+ try
+ {
+ return GetRegistryDWORD(HKEY_CURRENT_USER, subkey, parameter);
+ }
+ catch(RegistryValueNotFound)
+ { }
+
+ try
+ {
+ return GetRegistryDWORD(HKEY_LOCAL_MACHINE, subkey, parameter);
+ }
+ catch(RegistryValueNotFound)
+ { }
+
+ return default_value;
+}
+
+DWORD GetRegistryDWORD(const char* subkey, const char* parameter, DWORD default_value)
+{
+ TCHAR _subkey[MAX_PATH];
+ mbstowcs(_subkey, subkey, MAX_PATH);
+
+ TCHAR _parameter[MAX_PATH];
+ mbstowcs(_parameter, parameter, MAX_PATH);
+
+ return GetRegistryDWORD(_subkey, _parameter, default_value);
+}
+
+int COptionsDlg::LoadRegistryData()
+{
+ // (1) load the output level
+ m_ouputtype.InsertString(0, _T("Errors only"));
+ m_ouputtype.InsertString(1, _T("Errors and warnings"));
+ m_ouputtype.InsertString(2, _T("All results"));
+ DWORD output_level = GetRegistryDWORD(SCSTUDIO_REGISTRY_ROOT, "OutputLevel", DEFAULT_OUTPUT_LEVEL);
+ m_ouputtype.SetCurSel(output_level);
+
+ // (2) load checker priorities
+ m_checklist.SetExtendedListViewStyle(LVS_EX_CHECKBOXES);
+
+ HKEY hSubKey;
+ if(RegOpenKeyEx(HKEY_CURRENT_USER, _T(SCSTUDIO_REGISTRY_ROOT) _T("\\Checks"),
+ 0, KEY_READ, &hSubKey) != ERROR_SUCCESS)
+ {
+ return 1;
+ }
+
+ TCHAR achClass[MAX_PATH]; // buffer for class name
+ DWORD cchClassName = MAX_PATH; // size of class string
+ DWORD cSubKeys; // number of subkeys
+ DWORD cbMaxSubKey; // longest subkey size
+ DWORD cchMaxClass; // longest class string
+ DWORD cValues; // number of values for key
+ DWORD cchMaxValue; // longest value name
+ DWORD cbMaxValueData; // longest value data
+ DWORD cbSecurityDescriptor; // size of security descriptor
+ FILETIME ftLastWriteTime; // last write time
+
+ // Get the class name and the value count.
+ RegQueryInfoKey(hSubKey, // key handle
+ achClass, // buffer for class name
+ &cchClassName, // size of class string
+ NULL, // reserved
+ &cSubKeys, // number of subkeys
+ &cbMaxSubKey, // longest subkey size
+ &cchMaxClass, // longest class string
+ &cValues, // number of values for this key
+ &cchMaxValue, // longest value name
+ &cbMaxValueData, // longest value data
+ &cbSecurityDescriptor, // security descriptor
+ &ftLastWriteTime); // last write time
+
+ // enumerate the child keys, until RegEnumKeyEx fails
+ for(int i = cSubKeys; i >= 0; i--)
+ {
+ TCHAR achKey[MAX_PATH];
+ DWORD keyLength = MAX_PATH;
+
+ LONG retCode = RegEnumKeyEx(hSubKey,
+ i,
+ achKey,
+ &keyLength,
+ NULL,
+ NULL,
+ NULL,
+ &ftLastWriteTime);
+ if(retCode == ERROR_SUCCESS)
+ {
+ int item = m_checklist.InsertItem(0, achKey, 0);
+
+ TCHAR subkey[MAX_PATH];
+ _tcscpy(subkey, _T(SCSTUDIO_REGISTRY_ROOT) _T("\\Checks\\"));
+ _tcscat(subkey, achKey);
+
+ DWORD user_priority = GetRegistryDWORD(subkey, _T("Priority"), DEFAULT_CHECKER_PRIORITY);
+ if(user_priority <= Checker::PP_REQUIRED)
+ m_checklist.SetCheckState(item, TRUE);
+ }
+ }
+
+ return 0;
+}
+
+int COptionsDlg::SaveRegistryData()
+{
+ // (1) store the output level
+ DWORD output_level = m_ouputtype.GetCurSel();
+ SetRegistryDWORD(HKEY_CURRENT_USER, _T(SCSTUDIO_REGISTRY_ROOT), _T("OutputLevel"), output_level);
+
+ // (2) store checker priorities
+ for(int item = 0; item < m_checklist.GetItemCount(); item++)
+ {
+ TCHAR item_text[MAX_PATH];
+ m_checklist.GetItemText(item, 0, item_text, MAX_PATH);
+
+ Checker::PreconditionPriority user_priority =
+ m_checklist.GetCheckState(item) ? Checker::PP_REQUIRED : Checker::PP_DISREGARDED;
+
+ TCHAR subkey[MAX_PATH];
+ _tcscpy(subkey, _T(SCSTUDIO_REGISTRY_ROOT) _T("\\Checks\\"));
+ _tcscat(subkey, item_text);
+
+ SetRegistryDWORD(HKEY_CURRENT_USER, subkey, _T("Priority"), user_priority);
+ }
+
+ return 0;
+}
+
+// $Id$
Property changes on: trunk/src/view/visio/addon/optionsdlg.cpp
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: trunk/src/view/visio/addon/optionsdlg.h
===================================================================
--- trunk/src/view/visio/addon/optionsdlg.h (rev 0)
+++ trunk/src/view/visio/addon/optionsdlg.h 2009-04-26 19:30:44 UTC (rev 230)
@@ -0,0 +1,81 @@
+/*
+ * scstudio - Sequence Chart Studio
+ * http://scstudio.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ *
+ * $Id$
+ */
+
+#pragma once
+
+// Include libraries from the Windows Template Library (WTL).
+// http://wtl.sourceforge.net
+#include <atldlgs.h>
+#include <atlctrls.h>
+#include <atlddx.h>
+
+class COptionsDlg
+ : public ATL::CDialogImpl<COptionsDlg>, public CWinDataExchange<COptionsDlg>
+{
+public:
+ enum { IDD = IDD_OPTIONS };
+ CListViewCtrl m_checklist;
+ CComboBox m_ouputtype;
+
+protected:
+BEGIN_DDX_MAP(COptionsDlg)
+ DDX_CONTROL_HANDLE(IDC_CHECKLIST, m_checklist)
+ DDX_CONTROL_HANDLE(IDC_OUTPUTLEVEL, m_ouputtype)
+END_DDX_MAP()
+
+BEGIN_MSG_MAP(COptionsDlg)
+ MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
+ COMMAND_ID_HANDLER(IDOK, OnCloseCmd)
+ COMMAND_ID_HANDLER(IDCANCEL, OnCloseCmd)
+END_MSG_MAP()
+
+// Handler prototypes:
+// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
+// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
+
+ LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+ {
+ CenterWindow(GetParent());
+
+ DoDataExchange();
+ LoadRegistryData();
+
+ return bHandled = FALSE;
+ }
+
+ LRESULT OnCloseCmd(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
+ {
+ if(wID == IDOK)
+ SaveRegistryData();
+
+ EndDialog(wID);
+ return 0;
+ }
+
+ int LoadRegistryData();
+ int SaveRegistryData();
+};
+
+#define SCSTUDIO_REGISTRY_ROOT "Software\\Sequence Chart Studio"
+static const DWORD DEFAULT_CHECKER_PRIORITY = 0;
+static const DWORD DEFAULT_OUTPUT_LEVEL = 2;
+
+DWORD GetRegistryDWORD(const char* subkey, const char* parameter, DWORD default_value);
+
+// $Id$
Property changes on: trunk/src/view/visio/addon/optionsdlg.h
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/src/view/visio/addon/resource.h
===================================================================
--- trunk/src/view/visio/addon/resource.h 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/view/visio/addon/resource.h 2009-04-26 19:30:44 UTC (rev 230)
@@ -8,13 +8,16 @@
#define IDS_VSL_NAME 102
#define IDS_REPORT_VIEW 103
#define IDD_ABOUTBOX 203
-#define IDC_ABOUT_VERSION 206
+#define IDD_OPTIONS 204
+#define IDC_ABOUT_VERSION 205
+#define IDC_CHECKLIST 206
+#define IDC_OUTPUTLEVEL 207
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 204
+#define _APS_NEXT_RESOURCE_VALUE 206
#define _APS_NEXT_COMMAND_VALUE 32768
#define _APS_NEXT_CONTROL_VALUE 208
#define _APS_NEXT_SYMED_VALUE 105
Modified: trunk/src/view/visio/addon/scstudio.vcproj
===================================================================
--- trunk/src/view/visio/addon/scstudio.vcproj 2009-04-25 20:04:08 UTC (rev 229)
+++ trunk/src/view/visio/addon/scstudio.vcproj 2009-04-26 19:30:44 UTC (rev 230)
@@ -227,6 +227,12 @@
RelativePath=".\fcmp.h">
</File>
<File
+ RelativePath=".\optionsdlg.cpp">
+ </File>
+ <File
+ RelativePath=".\optionsdlg.h">
+ </File>
+ <File
RelativePath=".\reportview.cpp">
</File>
<File
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|