Browse Source

Merge remote-tracking branch 'origin/master' into ox-move

[email protected] 8 years ago
parent
commit
7bb082969d
4 changed files with 21 additions and 4 deletions
  1. 4 4
      examples/HelloFlow/proj.win32/HelloFlow.vcxproj
  2. 6 0
      src/flow/Scene.cpp
  3. 2 0
      src/flow/Scene.h
  4. 9 0
      src/flow/flow.cpp

+ 4 - 4
examples/HelloFlow/proj.win32/HelloFlow.vcxproj

@@ -28,6 +28,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
@@ -41,6 +43,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
@@ -76,8 +80,6 @@
     <Link>
       <SubSystem>Windows</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>libcurl_imp.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0'">libcurl_imp.lib;libjpeg-2015.lib;libpng-2015.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>../../../../oxygine-framework//oxygine/third_party/win32/libraries;../../../../oxygine-framework//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
     </Link>
@@ -99,8 +101,6 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <AdditionalLibraryDirectories>../../../../oxygine-framework//oxygine/third_party/win32/libraries;../../../../oxygine-framework//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>libcurl_imp.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0'">libcurl_imp.lib;libjpeg-2015.lib;libpng-2015.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
     </Link>
   </ItemDefinitionGroup>

+ 6 - 0
src/flow/Scene.cpp

@@ -238,7 +238,13 @@ namespace oxygine
             if (_done)
             {
                 if (ev)
+                {
                     static_cast<Event&>(_finishEvent) = *ev;
+                    if (_finishEvent.target.get() == this)
+                        _finishEvent.target = getStage();
+                    if (_finishEvent.currentTarget.get() == this)
+                        _finishEvent.currentTarget = getStage();
+                }
                 else
                 {
                     _finishEvent = FlowEvent();

+ 2 - 0
src/flow/Scene.h

@@ -135,6 +135,8 @@ namespace oxygine
             bool _allowDialogsOnTop;
             bool _passBlockedTouch;
 
+            std::function< bool(spScene) > _checkIsDialogAllowed;
+
 
             spTransition runTransition(Flow*, spScene current, bool back);
             virtual spTransition _runTransitionIn(Flow*, spScene current);

+ 9 - 0
src/flow/flow.cpp

@@ -306,6 +306,15 @@ namespace oxygine
                     break;
                 }
             }
+            if (current->_checkIsDialogAllowed)
+            {
+                for (; it != scenes2show.end(); ++it)
+                {
+                    if ((*it)->_dialog && !current->_checkIsDialogAllowed(*it))
+                        continue;
+                    break;
+                }
+            }
 
             if (it == scenes2show.end())
                 return;