Skip to content

Commit 033f7a6

Browse files
author
bob.burrough
committed
Add Open vs SaveAs modes.
1 parent 4acb82c commit 033f7a6

File tree

4 files changed

+44
-11
lines changed

4 files changed

+44
-11
lines changed

Natives.sln

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 14
4-
VisualStudioVersion = 14.0.23107.0
4+
VisualStudioVersion = 14.0.25420.1
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Natives", "Natives\Natives.vcxproj", "{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}"
77
EndProject
@@ -13,12 +13,12 @@ Global
1313
Release|x86 = Release|x86
1414
EndGlobalSection
1515
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16-
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Debug|x64.ActiveCfg = Debug|Win32
17-
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Debug|x64.Build.0 = Debug|Win32
16+
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Debug|x64.ActiveCfg = Debug|x64
17+
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Debug|x64.Build.0 = Debug|x64
1818
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Debug|x86.ActiveCfg = Debug|Win32
1919
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Debug|x86.Build.0 = Debug|Win32
20-
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Release|x64.ActiveCfg = Release|Win32
21-
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Release|x64.Build.0 = Release|Win32
20+
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Release|x64.ActiveCfg = Release|x64
21+
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Release|x64.Build.0 = Release|x64
2222
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Release|x86.ActiveCfg = Release|Win32
2323
{44B46E4E-C88D-493F-8FCC-6DF46C1CB4FC}.Release|x86.Build.0 = Release|Win32
2424
EndGlobalSection

Natives/Natives.vcxproj

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,17 @@
3838
<CharacterSet>MultiByte</CharacterSet>
3939
</PropertyGroup>
4040
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
41-
<ConfigurationType>Application</ConfigurationType>
41+
<ConfigurationType>DynamicLibrary</ConfigurationType>
4242
<UseDebugLibraries>true</UseDebugLibraries>
4343
<PlatformToolset>v140</PlatformToolset>
4444
<CharacterSet>MultiByte</CharacterSet>
4545
</PropertyGroup>
4646
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
47-
<ConfigurationType>Application</ConfigurationType>
47+
<ConfigurationType>DynamicLibrary</ConfigurationType>
4848
<UseDebugLibraries>false</UseDebugLibraries>
4949
<PlatformToolset>v140</PlatformToolset>
50+
<CharacterSet>Unicode</CharacterSet>
5051
<WholeProgramOptimization>true</WholeProgramOptimization>
51-
<CharacterSet>MultiByte</CharacterSet>
5252
</PropertyGroup>
5353
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
5454
<ImportGroup Label="ExtensionSettings">
@@ -71,6 +71,9 @@
7171
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
7272
<TargetExt>.dll</TargetExt>
7373
</PropertyGroup>
74+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
75+
<TargetExt>.dll</TargetExt>
76+
</PropertyGroup>
7477
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
7578
<ClCompile>
7679
<WarningLevel>Level3</WarningLevel>
@@ -95,9 +98,12 @@
9598
<Optimization>Disabled</Optimization>
9699
<SDLCheck>true</SDLCheck>
97100
<AdditionalIncludeDirectories>$(ProjectDir)..\ExternalProjects\pthreads-w32\Pre-built.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
101+
<PreprocessorDefinitions>FORCE_WIN32;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
98102
</ClCompile>
99103
<Link>
100104
<GenerateDebugInformation>true</GenerateDebugInformation>
105+
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);pthreadVC2.lib</AdditionalDependencies>
106+
<AdditionalLibraryDirectories>$(SolutionDir)ExternalProjects\pthreads-w32\Pre-built.2\lib\x64</AdditionalLibraryDirectories>
101107
</Link>
102108
</ItemDefinitionGroup>
103109
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -118,14 +124,18 @@
118124
<ClCompile>
119125
<WarningLevel>Level3</WarningLevel>
120126
<Optimization>MaxSpeed</Optimization>
121-
<FunctionLevelLinking>true</FunctionLevelLinking>
122127
<IntrinsicFunctions>true</IntrinsicFunctions>
123128
<SDLCheck>true</SDLCheck>
129+
<AdditionalIncludeDirectories>$(SolutionDir)ExternalProjects\pthreads-w32\Pre-built.2\include</AdditionalIncludeDirectories>
130+
<PreprocessorDefinitions>WIN32;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
131+
<MultiProcessorCompilation>true</MultiProcessorCompilation>
124132
</ClCompile>
125133
<Link>
126134
<GenerateDebugInformation>true</GenerateDebugInformation>
127135
<EnableCOMDATFolding>true</EnableCOMDATFolding>
128136
<OptimizeReferences>true</OptimizeReferences>
137+
<AdditionalLibraryDirectories>$(SolutionDir)ExternalProjects\pthreads-w32\Pre-built.2\lib\x64</AdditionalLibraryDirectories>
138+
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);pthreadVC2.lib</AdditionalDependencies>
129139
</Link>
130140
</ItemDefinitionGroup>
131141
<ItemGroup>

Natives/natives.cpp

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,24 @@ struct ChooseFileContext
2525
list<wstring> filetype_names;
2626
list<wstring> filetype_extensions;
2727
wchar_t* chosenFilename;
28+
bool saveAs;
2829
};
2930

3031

32+
void __stdcall SetChooseFileModeSaveAs(void* context)
33+
{
34+
ChooseFileContext* cfc = (ChooseFileContext*)context;
35+
cfc->saveAs = true;
36+
}
37+
38+
39+
void __stdcall SetChooseFileModeOpen(void* context)
40+
{
41+
ChooseFileContext* cfc = (ChooseFileContext*)context;
42+
cfc->saveAs = false;
43+
}
44+
45+
3146
void* FilePickerThread(void* arg)
3247
{
3348
ChooseFileContext* cfc = (ChooseFileContext*)arg;
@@ -37,7 +52,7 @@ void* FilePickerThread(void* arg)
3752
memset(cfc->chosenFilename, 0, buf_len);
3853

3954
OPENFILENAME ofn; // common dialog box structure
40-
55+
4156
//string test("G-code\0*.gcode\0All\0*.*\0");
4257
wstring filetype_filters;
4358
list<wstring>::const_iterator ext_itr = cfc->filetype_extensions.begin();
@@ -76,8 +91,13 @@ void* FilePickerThread(void* arg)
7691
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR | OFN_READONLY;
7792

7893
//SetCurrentDirectory(cwd);
94+
BOOL status;
95+
if (cfc->saveAs)
96+
status = GetSaveFileName(&ofn);
97+
else
98+
status = GetOpenFileName(&ofn);
7999

80-
if (GetOpenFileName(&ofn))
100+
if (status)
81101
{
82102
pthread_testcancel();
83103
if (cfc->_chooseFileSuccessCallback)
@@ -102,6 +122,7 @@ void* __stdcall CreateChooseFileContext()
102122
cfc->_chooseFileCancelledCallback = NULL;
103123
cfc->_chooseFileSuccessCallback = NULL;
104124
cfc->chosenFilename = NULL;
125+
cfc->saveAs = false;
105126
return cfc;
106127
}
107128

Natives/natives.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ typedef void(__stdcall *ChooseFileCancelledCallback)();
1818

1919
DLLEXPORT void* __stdcall CreateChooseFileContext();
2020
DLLEXPORT void __stdcall AddChooseFileType(void* context, const wchar_t* name, const wchar_t* extension);
21+
DLLEXPORT void __stdcall SetChooseFileModeSaveAs(void* context);
22+
DLLEXPORT void __stdcall SetChooseFileModeOpen(void* context);
2123
DLLEXPORT void __stdcall ChooseFile(void* context, ChooseFileSuccessCallback successCallback, ChooseFileCancelledCallback cancelledCallback);
2224
DLLEXPORT void __stdcall DestroyChooseFileContext(void* context);
2325

0 commit comments

Comments
 (0)