updated the build system to get it to work out of the box on more systems
This commit is contained in:
parent
99c62292a4
commit
2769640adf
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
IF NOT "%PrebuildCalled%"=="1" GOTO error
|
IF NOT "%PrebuildCalled%"=="1" GOTO error
|
||||||
|
|
||||||
C:\apps\ctime\ctime.exe -end %StatsPath%\%StatsFile% %LastError%
|
IF EXIST %CTIMEPATH% ( call C:\apps\ctime\ctime.exe -end %StatsPath%\%StatsFile% %LastError% )
|
||||||
C:\apps\ctime\ctime.exe -stats %StatsPath%\%StatsFile%
|
IF EXIST %CTIMEPATH% ( call C:\apps\ctime\ctime.exe -stats %StatsPath%\%StatsFile% )
|
||||||
set PrebuildCalled=0
|
set PrebuildCalled=0
|
||||||
GOTO:eof
|
GOTO:eof
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
REM This file takes two arguments
|
REM This file takes three arguments
|
||||||
REM 1 = "app" or "meta"
|
REM 1 = "app" or "meta"
|
||||||
REM 2 = "debug" or "release"
|
REM 2 = "debug" or "release"
|
||||||
REM 3 = "msvc" or "clang"
|
REM 3 = "msvc" or "clang"
|
||||||
|
@ -22,7 +22,9 @@ set StatsFile=%1_win32_%3_%2_build_time.ctm
|
||||||
IF NOT EXIST %BuildPath% mkdir %BuildPath%
|
IF NOT EXIST %BuildPath% mkdir %BuildPath%
|
||||||
IF NOT EXIST %StatsPath% mkdir %StatsPath%
|
IF NOT EXIST %StatsPath% mkdir %StatsPath%
|
||||||
|
|
||||||
C:\apps\ctime\ctime.exe -begin %StatsPath%\%StatsFile%
|
set CTimePath=C:\apps\ctime
|
||||||
|
IF EXIST %CTIMEPATH% ( call C:\apps\ctime\ctime.exe -begin %StatsPath%\%StatsFile% )
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo BUILDING TO %BuildPath%
|
echo BUILDING TO %BuildPath%
|
||||||
echo STATS IN %StatsPath%\%StatsFile%
|
echo STATS IN %StatsPath%\%StatsFile%
|
||||||
|
|
|
@ -1,32 +1,26 @@
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
set ProjectDevFolder=%~dp0
|
SET MyPath=%~dp0
|
||||||
set ProjectDevPath=%ProjectDevFolder:~0,-1%
|
SET MyPath=%MyPath:~0,-1%
|
||||||
|
call %MyPath%\_prebuild_win32.bat app debug clang
|
||||||
pushd %ProjectDevPath%
|
|
||||||
|
|
||||||
IF NOT EXIST .\build_clang\ mkdir .\build_clang
|
|
||||||
|
|
||||||
C:\programs\ctime\ctime.exe -begin %ProjectDevPath%\build\win32_foldhaus_clang_build_time.ctm
|
|
||||||
|
|
||||||
set CommonCompilerFlags=-std=c++11 -Wno-writable-strings -Wno-unused-value -Wno-varargs -Wno-switch -Wno-microsoft-enum-forward-reference -DDEBUG=1
|
set CommonCompilerFlags=-std=c++11 -Wno-writable-strings -Wno-unused-value -Wno-varargs -Wno-switch -Wno-microsoft-enum-forward-reference -DDEBUG=1
|
||||||
|
|
||||||
pushd .\build_clang\
|
pushd %BuildPath%
|
||||||
|
|
||||||
REM Run the Preprocessor
|
del *.pdb > NUL 2> NUL
|
||||||
foldhaus_meta.exe ..\src\foldhaus_app.cpp
|
|
||||||
|
|
||||||
echo WAITING FOR PDB TO WRITE > lock.tmp
|
echo WAITING FOR PDB TO WRITE > lock.tmp
|
||||||
|
|
||||||
clang %CommonCompilerFlags% ..\src\foldhaus_app.cpp -shared
|
clang++ %CommonCompilerFlags% %SourceCodePath%\foldhaus_app.cpp -shared -o
|
||||||
|
|
||||||
set LastError=%ERRORLEVEL%
|
set LastError=%ERRORLEVEL%
|
||||||
|
|
||||||
del lock.tmp
|
del lock.tmp
|
||||||
|
|
||||||
clang %CommonCompilerFlags% ..\src\win32_foldhaus.cpp -o win32_foldhaus.exe user32.lib winmm.lib gdi32.lib opengl32.lib dsound.lib Ws2_32.lib Comdlg32.lib
|
clang++ -c %CommonCompilerFlags% %SourceCodePath%\platform_win32\win32_foldhaus.cpp
|
||||||
|
link win32_foldhaus.o user32.lib winmm.lib gdi32.lib opengl32.lib dsound.lib Ws2_32.lib Comdlg32.lib
|
||||||
|
|
||||||
C:\programs\ctime\ctime.exe -end %ProjectDevPath%\build\win32_foldhaus_clang_build_time.ctm %LastError%
|
|
||||||
REM C:\programs\ctime\ctime.exe -stats %ProjectDevPath%\build\win32_foldhaus_clang_build_time.ctm
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
call %MyPath%\_postbuild_win32.bat
|
||||||
|
|
|
@ -3,30 +3,32 @@
|
||||||
SET MyPath=%~dp0
|
SET MyPath=%~dp0
|
||||||
SET MyPath=%MyPath:~0,-1%
|
SET MyPath=%MyPath:~0,-1%
|
||||||
call %MyPath%\_prebuild_win32.bat app debug msvc
|
call %MyPath%\_prebuild_win32.bat app debug msvc
|
||||||
|
call %MyPath%\setup_cl.bat
|
||||||
|
|
||||||
set CommonCompilerFlags=-nologo -DDEBUG=1 -DPLATFORM_WINDOWS -FC -WX -W4 -Z7 -Oi -GR- -EHsc -EHa- -MTd -fp:fast -fp:except- -IC:\programs-dev\gs_libs\src
|
SET CommonCompilerFlags=-nologo -DDEBUG=1 -DPLATFORM_WINDOWS -FC -WX -W4 -Z7 -Oi -GR- -EHsc -EHa- -MTd -fp:fast -fp:except- -IC:\programs-dev\gs_libs\src
|
||||||
set CommonCompilerFlags=-wd4127 -wd4702 -wd4101 -wd4505 -wd4100 -wd4189 -wd4244 -wd4201 -wd4996 -I%CommonLibs% -O2 %CommonCompilerFlags%
|
|
||||||
|
|
||||||
set CommonLinkerFlags= -opt:ref -incremental:no
|
SET CommonCompilerFlags=-wd4127 -wd4702 -wd4101 -wd4505 -wd4100 -wd4189 -wd4244 -wd4201 -wd4996 -I%CommonLibs% -O2 %CommonCompilerFlags%
|
||||||
|
|
||||||
set DLLExports=/EXPORT:InitializeApplication /EXPORT:UpdateAndRender /EXPORT:CleanupApplication /EXPORT:ReloadStaticData
|
SET CommonLinkerFlags= -opt:ref -incremental:no
|
||||||
|
|
||||||
|
SET DLLExports=/EXPORT:InitializeApplication /EXPORT:UpdateAndRender /EXPORT:CleanupApplication /EXPORT:ReloadStaticData
|
||||||
|
|
||||||
pushd %BuildPath%
|
pushd %BuildPath%
|
||||||
|
|
||||||
del *.pdb > NUL 2> NUL
|
del *.pdb > NUL 2> NUL
|
||||||
|
|
||||||
REM Run the Preprocessor
|
|
||||||
REM %MetaProgramPath%\foldhaus_meta.exe %SourceCodePath%\foldhaus_app.cpp
|
|
||||||
|
|
||||||
echo WAITING FOR PDB TO WRITE > lock.tmp
|
echo WAITING FOR PDB TO WRITE > lock.tmp
|
||||||
|
|
||||||
cl %CommonCompilerFlags% %SourceCodePath%\foldhaus_app.cpp /Fefoldhaus.dll /LD /link %CommonLinkerFlags% %DLLExports%
|
cl %CommonCompilerFlags% %SourceCodePath%\foldhaus_app.cpp /Fefoldhaus.dll /LD /link %CommonLinkerFlags% %DLLExports%
|
||||||
set LastError=%ERRORLEVEL%
|
SET LastError=%ERRORLEVEL%
|
||||||
|
|
||||||
del lock.tmp
|
del lock.tmp
|
||||||
|
|
||||||
cl %CommonCompilerFlags% %SourceCodePath%\platform_win32\win32_foldhaus.cpp /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib opengl32.lib dsound.lib Ws2_32.lib Comdlg32.lib
|
cl %CommonCompilerFlags% %SourceCodePath%\platform_win32\win32_foldhaus.cpp /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib opengl32.lib dsound.lib Ws2_32.lib Comdlg32.lib
|
||||||
|
|
||||||
|
|
||||||
|
REM COMPILE UTILITY EXES
|
||||||
|
|
||||||
cl %CommonCompilerFlags% %ProjectDevPath%\src\serial_monitor\first.cpp /Feserial_monitor.exe /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib
|
cl %CommonCompilerFlags% %ProjectDevPath%\src\serial_monitor\first.cpp /Feserial_monitor.exe /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib
|
||||||
|
|
||||||
cl %CommonCompilerFlags% %ProjectDevPath%\src\sculpture_gen\gen_blumen_lumen.cpp /Fegen_blumen_lumen.exe /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib
|
cl %CommonCompilerFlags% %ProjectDevPath%\src\sculpture_gen\gen_blumen_lumen.cpp /Fegen_blumen_lumen.exe /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
SET "LIB="
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 12.0
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 11.0
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 13.0
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 14.0
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||||
|
|
||||||
|
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
|
||||||
|
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||||
|
|
|
@ -900,14 +900,8 @@ AnimationTimeline_Render(panel* Panel, rect2 PanelBounds, render_command_buffer*
|
||||||
ui_FillRect(&State->Interface, PanelBounds, v4{.1f,.1f,.1f,1.f});
|
ui_FillRect(&State->Interface, PanelBounds, v4{.1f,.1f,.1f,1.f});
|
||||||
|
|
||||||
rect2 TimelineBounds, InfoBounds;
|
rect2 TimelineBounds, InfoBounds;
|
||||||
RectVSplit(PanelBounds, 300, &InfoBounds, &TimelineBounds);
|
RectVSplitAtDistanceFromLeft(PanelBounds, 300, &InfoBounds, &TimelineBounds);
|
||||||
|
|
||||||
#if 0
|
|
||||||
rect2 AnimInfoBounds, SelectionInfoBounds;
|
|
||||||
RectHSplitAtPercent(InfoBounds, .65f, &AnimInfoBounds, &SelectionInfoBounds);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
{ // Timeline
|
|
||||||
rect2 LayersPanelBounds, TimeRangePanelBounds;
|
rect2 LayersPanelBounds, TimeRangePanelBounds;
|
||||||
RectVSplitAtDistanceFromLeft(TimelineBounds, 200, &LayersPanelBounds, &TimeRangePanelBounds);
|
RectVSplitAtDistanceFromLeft(TimelineBounds, 200, &LayersPanelBounds, &TimeRangePanelBounds);
|
||||||
|
|
||||||
|
@ -922,8 +916,6 @@ AnimationTimeline_Render(panel* Panel, rect2 PanelBounds, render_command_buffer*
|
||||||
FrameCount_Render(TimelineState, FrameCountBounds, RenderBuffer, State, Context);
|
FrameCount_Render(TimelineState, FrameCountBounds, RenderBuffer, State, Context);
|
||||||
LayerList_Render(TimelineState, LayersBounds, Panel, RenderBuffer, State, Context);
|
LayerList_Render(TimelineState, LayersBounds, Panel, RenderBuffer, State, Context);
|
||||||
TimeRange_Render(TimelineState, TimeRangeBounds, RenderBuffer, State, Context);
|
TimeRange_Render(TimelineState, TimeRangeBounds, RenderBuffer, State, Context);
|
||||||
}
|
|
||||||
|
|
||||||
AnimInfoView_Render(TimelineState, InfoBounds, Panel, RenderBuffer, State, Context);
|
AnimInfoView_Render(TimelineState, InfoBounds, Panel, RenderBuffer, State, Context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,16 @@
|
||||||
//
|
//
|
||||||
#ifndef FOLDHAUS_PANEL_FILE_VIEW_H
|
#ifndef FOLDHAUS_PANEL_FILE_VIEW_H
|
||||||
|
|
||||||
|
enum file_view_mode
|
||||||
|
{
|
||||||
|
FileViewMode_Load,
|
||||||
|
FileViewMode_Save,
|
||||||
|
};
|
||||||
|
|
||||||
struct file_view_state
|
struct file_view_state
|
||||||
{
|
{
|
||||||
|
file_view_mode Mode;
|
||||||
|
|
||||||
gs_string WorkingDirectory;
|
gs_string WorkingDirectory;
|
||||||
gs_memory_arena FileNamesArena;
|
gs_memory_arena FileNamesArena;
|
||||||
gs_file_info_array FileNames;
|
gs_file_info_array FileNames;
|
||||||
|
@ -14,9 +22,18 @@ struct file_view_state
|
||||||
gs_file_info SelectedFile;
|
gs_file_info SelectedFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
internal void
|
||||||
|
FileView_SetMode(panel* Panel, file_view_mode Mode)
|
||||||
|
{
|
||||||
|
file_view_state* FileViewState = Panel_GetStateStruct(Panel, file_view_state);
|
||||||
|
FileViewState->Mode = Mode;
|
||||||
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
FileView_Exit_(panel* FileViewPanel, app_state* State, context Context)
|
FileView_Exit_(panel* FileViewPanel, app_state* State, context Context)
|
||||||
{
|
{
|
||||||
|
// TODO(pjs): Free State->FileNamesArena
|
||||||
|
|
||||||
Assert(FileViewPanel->IsModalOverrideFor != 0);
|
Assert(FileViewPanel->IsModalOverrideFor != 0);
|
||||||
panel* ReturnTo = FileViewPanel->IsModalOverrideFor;
|
panel* ReturnTo = FileViewPanel->IsModalOverrideFor;
|
||||||
if (ReturnTo->ModalOverrideCB)
|
if (ReturnTo->ModalOverrideCB)
|
||||||
|
@ -30,7 +47,7 @@ global input_command* FileView_Commands = 0;
|
||||||
s32 FileView_CommandsCount = 0;
|
s32 FileView_CommandsCount = 0;
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
FileViewUpdateWorkingDirectory(gs_const_string WorkingDirectory, file_view_state* State, context Context)
|
FileView_UpdateWorkingDirectory(gs_const_string WorkingDirectory, file_view_state* State, context Context)
|
||||||
{
|
{
|
||||||
ClearArena(&State->FileNamesArena);
|
ClearArena(&State->FileNamesArena);
|
||||||
|
|
||||||
|
@ -43,24 +60,21 @@ FileViewUpdateWorkingDirectory(gs_const_string WorkingDirectory, file_view_state
|
||||||
u32 SecondLastSlashIndex = FindLast(SanitizedDirectory, LastSlashIndex - 1, '\\');
|
u32 SecondLastSlashIndex = FindLast(SanitizedDirectory, LastSlashIndex - 1, '\\');
|
||||||
SanitizedDirectory = Substring(SanitizedDirectory, 0, SecondLastSlashIndex);
|
SanitizedDirectory = Substring(SanitizedDirectory, 0, SecondLastSlashIndex);
|
||||||
}
|
}
|
||||||
else if (StringsEqual(LastDir, ConstString(".")))
|
else if (StringsEqual(LastDir, ConstString(".")) && LastDir.Length > 1)
|
||||||
{
|
{
|
||||||
SanitizedDirectory = Substring(SanitizedDirectory, 0, LastSlashIndex);
|
SanitizedDirectory = Substring(SanitizedDirectory, 0, LastSlashIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
State->WorkingDirectory = PushString(&State->FileNamesArena, WorkingDirectory.Length + 2);
|
gs_file_info NewWorkingDirectory = GetFileInfo(Context.ThreadContext.FileHandler, SanitizedDirectory);
|
||||||
PrintF(&State->WorkingDirectory, "%S", SanitizedDirectory);
|
if (NewWorkingDirectory.IsDirectory)
|
||||||
if (State->WorkingDirectory.Str[State->WorkingDirectory.Length - 1] != '\\')
|
|
||||||
{
|
{
|
||||||
AppendPrintF(&State->WorkingDirectory, "\\");
|
// NOTE(pjs): we might be printing from State->WorkingDirectory to State->WorkingDirectory
|
||||||
}
|
// in some cases. Shouldn't be a problem but it is unnecessary
|
||||||
if (State->WorkingDirectory.Str[State->WorkingDirectory.Length - 1] != '*')
|
PrintF(&State->WorkingDirectory, "%S", WorkingDirectory);
|
||||||
{
|
|
||||||
AppendPrintF(&State->WorkingDirectory, "*");
|
|
||||||
}
|
|
||||||
|
|
||||||
State->FileNames = EnumerateDirectory(Context.ThreadContext.FileHandler, &State->FileNamesArena, State->WorkingDirectory.ConstString, EnumerateDirectory_IncludeDirectories);
|
State->FileNames = EnumerateDirectory(Context.ThreadContext.FileHandler, &State->FileNamesArena, State->WorkingDirectory.ConstString, EnumerateDirectory_IncludeDirectories);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GSMetaTag(panel_init);
|
GSMetaTag(panel_init);
|
||||||
GSMetaTag(panel_type_file_view);
|
GSMetaTag(panel_type_file_view);
|
||||||
|
@ -71,7 +85,10 @@ FileView_Init(panel* Panel, app_state* State, context Context)
|
||||||
file_view_state* FileViewState = PushStruct(&State->Permanent, file_view_state);
|
file_view_state* FileViewState = PushStruct(&State->Permanent, file_view_state);
|
||||||
Panel->StateMemory = StructToData(FileViewState, file_view_state);
|
Panel->StateMemory = StructToData(FileViewState, file_view_state);
|
||||||
FileViewState->FileNamesArena = CreateMemoryArena(Context.ThreadContext.Allocator);
|
FileViewState->FileNamesArena = CreateMemoryArena(Context.ThreadContext.Allocator);
|
||||||
FileViewUpdateWorkingDirectory(ConstString("."), FileViewState, Context);
|
|
||||||
|
// TODO(pjs): this shouldn't be stored in permanent
|
||||||
|
FileViewState->WorkingDirectory = PushString(&State->Permanent, 256);
|
||||||
|
FileView_UpdateWorkingDirectory(ConstString("."), FileViewState, Context);
|
||||||
}
|
}
|
||||||
|
|
||||||
GSMetaTag(panel_cleanup);
|
GSMetaTag(panel_cleanup);
|
||||||
|
@ -88,6 +105,8 @@ internal void
|
||||||
FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBuffer, app_state* State, context Context)
|
FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBuffer, app_state* State, context Context)
|
||||||
{
|
{
|
||||||
file_view_state* FileViewState = Panel_GetStateStruct(Panel, file_view_state);
|
file_view_state* FileViewState = Panel_GetStateStruct(Panel, file_view_state);
|
||||||
|
Assert(FileViewState->Mode == FileViewMode_Save);
|
||||||
|
|
||||||
ui_PushLayout(&State->Interface, PanelBounds, LayoutDirection_TopDown, MakeString("FileView Layout"));
|
ui_PushLayout(&State->Interface, PanelBounds, LayoutDirection_TopDown, MakeString("FileView Layout"));
|
||||||
{
|
{
|
||||||
if (ui_Button(&State->Interface, MakeString("Exit")))
|
if (ui_Button(&State->Interface, MakeString("Exit")))
|
||||||
|
@ -96,7 +115,21 @@ FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBu
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
ui_Label(&State->Interface, FileViewState->WorkingDirectory);
|
if (ui_TextEntry(&State->Interface, MakeString("pwd"), &FileViewState->WorkingDirectory))
|
||||||
|
{
|
||||||
|
// if last character is a slash, update pwd, and clear the filter string
|
||||||
|
// otherwise update the filter string
|
||||||
|
gs_string Pwd = FileViewState->WorkingDirectory;
|
||||||
|
char LastChar = Pwd.Str[Pwd.Length - 1];
|
||||||
|
if (LastChar == '\\' || LastChar == '/')
|
||||||
|
{
|
||||||
|
FileView_UpdateWorkingDirectory(Pwd.ConstString, FileViewState, Context);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// File Display
|
// File Display
|
||||||
ui_BeginList(&State->Interface, MakeString("Files"), 10, FileViewState->FileNames.Count);
|
ui_BeginList(&State->Interface, MakeString("Files"), 10, FileViewState->FileNames.Count);
|
||||||
|
@ -113,7 +146,7 @@ FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBu
|
||||||
{
|
{
|
||||||
if (File.IsDirectory)
|
if (File.IsDirectory)
|
||||||
{
|
{
|
||||||
FileViewUpdateWorkingDirectory(File.Path, FileViewState, Context);
|
FileView_UpdateWorkingDirectory(File.Path, FileViewState, Context);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -128,6 +161,5 @@ FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBu
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define FOLDHAUS_PANEL_FILE_VIEW_H
|
#define FOLDHAUS_PANEL_FILE_VIEW_H
|
||||||
#endif // FOLDHAUS_PANEL_FILE_VIEW_H
|
#endif // FOLDHAUS_PANEL_FILE_VIEW_H
|
|
@ -60,6 +60,7 @@ HierarchyView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* Ren
|
||||||
if (ui_Button(&State->Interface, MakeString("+ Add Assembly")))
|
if (ui_Button(&State->Interface, MakeString("+ Add Assembly")))
|
||||||
{
|
{
|
||||||
panel* FileBrowser = PanelSystem_PushPanel(&State->PanelSystem, PanelType_FileView, State, Context);
|
panel* FileBrowser = PanelSystem_PushPanel(&State->PanelSystem, PanelType_FileView, State, Context);
|
||||||
|
FileView_SetMode(FileBrowser, FileViewMode_Save);
|
||||||
Panel_PushModalOverride(Panel, FileBrowser, LoadAssemblyCallback);
|
Panel_PushModalOverride(Panel, FileBrowser, LoadAssemblyCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -225,7 +225,7 @@ AssemblyParser_ReadSequence(parser* Parser, assembly* Assembly)
|
||||||
internal strip_gen_data
|
internal strip_gen_data
|
||||||
AssemblyParser_ReadStripGenData(parser* Parser, assembly* Assembly)
|
AssemblyParser_ReadStripGenData(parser* Parser, assembly* Assembly)
|
||||||
{
|
{
|
||||||
strip_gen_data Result = {0};
|
strip_gen_data Result = {};
|
||||||
|
|
||||||
if (Parser_ReadOpenStruct(Parser, AssemblyField_Segment))
|
if (Parser_ReadOpenStruct(Parser, AssemblyField_Segment))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1141,7 +1141,7 @@ ui_TextEntrySetFlags(ui_widget* Widget, gs_string EditString)
|
||||||
ui_WidgetSetFlag(Widget, UIWidgetFlag_Typable);
|
ui_WidgetSetFlag(Widget, UIWidgetFlag_Typable);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal bool
|
||||||
ui_TextEntry(ui_interface* Interface, gs_string Identifier, gs_string* Value)
|
ui_TextEntry(ui_interface* Interface, gs_string Identifier, gs_string* Value)
|
||||||
{
|
{
|
||||||
ui_widget* Widget = ui_CreateWidget(Interface, Identifier);
|
ui_widget* Widget = ui_CreateWidget(Interface, Identifier);
|
||||||
|
@ -1155,7 +1155,10 @@ ui_TextEntry(ui_interface* Interface, gs_string Identifier, gs_string* Value)
|
||||||
ui_TextEntrySetFlags(Widget, State->EditString);
|
ui_TextEntrySetFlags(Widget, State->EditString);
|
||||||
|
|
||||||
ui_eval_result Result = ui_EvaluateWidget(Interface, Widget);
|
ui_eval_result Result = ui_EvaluateWidget(Interface, Widget);
|
||||||
|
bool StringEdited = !StringsEqual(*Value, State->EditString);
|
||||||
PrintF(Value, "%S", State->EditString);
|
PrintF(Value, "%S", State->EditString);
|
||||||
|
|
||||||
|
return StringEdited;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal u64
|
internal u64
|
||||||
|
|
|
@ -46,6 +46,20 @@ GET_FILE_INFO(Win32GetFileInfo)
|
||||||
}
|
}
|
||||||
CloseHandle(FileHandle);
|
CloseHandle(FileHandle);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DWORD FileAttr = GetFileAttributes(Path.Str);
|
||||||
|
if (FileAttr != INVALID_FILE_ATTRIBUTES &&
|
||||||
|
(FileAttr & FILE_ATTRIBUTE_DIRECTORY))
|
||||||
|
{
|
||||||
|
Result.Path = Path;
|
||||||
|
Result.IsDirectory = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Path is not a file or directory
|
||||||
|
}
|
||||||
|
}
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
# pragma GCC diagnostic ignored "-Wunused-value"
|
# pragma GCC diagnostic ignored "-Wunused-value"
|
||||||
# pragma GCC diagnostic ignored "-Wvarargs"
|
# pragma GCC diagnostic ignored "-Wvarargs"
|
||||||
# pragma GCC diagnostic ignored "-Wwritable-strings"
|
# pragma GCC diagnostic ignored "-Wwritable-strings"
|
||||||
|
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
|
|
Loading…
Reference in New Issue