Completed rename from RainmeterEditor to RainmeterStudio
2
.gitignore
vendored
@@ -4,6 +4,7 @@ Certificate.bat
|
||||
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
!Build/
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
@@ -17,7 +18,6 @@ Certificate.bat
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
build/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
|
||||
@@ -1,176 +1,176 @@
|
||||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
set VCVARSALL=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat
|
||||
set MAKENSIS=%PROGRAMFILES%\NSIS\MakeNSIS.exe
|
||||
set GIT=%PROGRAMFILES%\Git\bin\git.exe
|
||||
|
||||
:: Set VERSION_REVISION to non-zero value to override
|
||||
set VERSION_MAJOR=3
|
||||
set VERSION_MINOR=2
|
||||
set VERSION_SUBMINOR=0
|
||||
set VERSION_REVISION=0
|
||||
set ISBETA=true
|
||||
|
||||
if "%1" == "RELEASE" set ISBETA=false
|
||||
if "%1" == "BUILDVERSION" goto BUILDVERSION
|
||||
echo Rainmeter Build
|
||||
echo ----------------------------------------------
|
||||
echo.
|
||||
|
||||
if not exist "%VCVARSALL%" echo ERROR: vcvarsall.bat not found & goto END
|
||||
call "%VCVARSALL%" x86 > nul
|
||||
|
||||
set MSBUILD="msbuild.exe" /nologo^
|
||||
/p:PlatformToolset=v120_xp;VisualStudioVersion=12.0^
|
||||
/p:ExcludeTests=true^
|
||||
/p:Configuration=Release
|
||||
|
||||
if exist "Certificate.bat" call "Certificate.bat" > nul
|
||||
set SIGNTOOL="signtool.exe" sign /t http://time.certum.pl /f "%CERTFILE%" /p "%CERTKEY%"
|
||||
|
||||
if "%1" == "BUILDLANGUAGES" goto BUILDLANGUAGES
|
||||
|
||||
if exist "%MAKENSIS%" goto NSISFOUND
|
||||
set MAKENSIS=%MAKENSIS:Program Files\=Program Files (x86)\%
|
||||
if not exist "%MAKENSIS%" echo ERROR: MakeNSIS.exe not found & goto END
|
||||
:NSISFOUND
|
||||
|
||||
:BUILDVERSION
|
||||
|
||||
if not exist "..\.git" goto UPDATEVERSION
|
||||
if not "%VERSION_REVISION%" == "0" goto UPDATEVERSION
|
||||
|
||||
:: git
|
||||
if exist "%GIT%" goto GITFOUND
|
||||
set GIT=%GIT:Program Files\=Program Files (x86)\%
|
||||
if not exist "%GIT%" echo ERROR: git.exe not found & goto END
|
||||
:GITFOUND
|
||||
set /a VERSION_REVISION=0
|
||||
for /f "usebackq delims= " %%G in (`"%GIT%" rev-list --all --count`) do set VERSION_REVISION=%%G
|
||||
|
||||
:UPDATEVERSION
|
||||
|
||||
set VERSION_FULL=%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_SUBMINOR%.%VERSION_REVISION%
|
||||
set VERSION_SHORT=%VERSION_MAJOR%.%VERSION_MINOR%
|
||||
if not "%VERSION_SUBMINOR%" == "0" set VERSION_SHORT=!VERSION_SHORT!.%VERSION_SUBMINOR%
|
||||
|
||||
:: Update Version.h
|
||||
> "..\Version.h" echo #pragma once
|
||||
>>"..\Version.h" echo #define FILEVER %VERSION_MAJOR%,%VERSION_MINOR%,%VERSION_SUBMINOR%,%VERSION_REVISION%
|
||||
>>"..\Version.h" echo #define PRODUCTVER FILEVER
|
||||
>>"..\Version.h" echo #define STRFILEVER "%VERSION_FULL%"
|
||||
>>"..\Version.h" echo #define STRPRODUCTVER STRFILEVER
|
||||
>>"..\Version.h" echo #define APPVERSION L"%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_SUBMINOR%"
|
||||
>>"..\Version.h" echo #define RAINMETER_VERSION ((%VERSION_MAJOR% * 1000000) + (%VERSION_MINOR% * 1000) + %VERSION_SUBMINOR%)
|
||||
>>"..\Version.h" echo const int revision_number = %VERSION_REVISION%;
|
||||
>>"..\Version.h" echo const bool revision_beta = %ISBETA%;
|
||||
|
||||
:: Update Version.cs
|
||||
> "..\Version.cs" echo namespace Rainmeter
|
||||
>>"..\Version.cs" echo {
|
||||
>>"..\Version.cs" echo public class Version
|
||||
>>"..\Version.cs" echo {
|
||||
>>"..\Version.cs" echo #if X64
|
||||
>>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (64-bit)";
|
||||
>>"..\Version.cs" echo #else
|
||||
>>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (32-bit)";
|
||||
>>"..\Version.cs" echo #endif
|
||||
>>"..\Version.cs" echo }
|
||||
>>"..\Version.cs" echo }
|
||||
|
||||
|
||||
if "%1" == "BUILDVERSION" goto :eof
|
||||
echo * Updated Version.h
|
||||
|
||||
:: Set vcbuild environment variables and begin build
|
||||
echo * Starting build for %VERSION_FULL%
|
||||
for /F "tokens=1-4 delims=:.," %%a in ("%TIME%") do (
|
||||
set /A "BUILD_BEGIN_TIMESTAMP=(((%%a * 60) + 1%%b %% 100)* 60 + 1%%c %% 100) * 100 + 1%%d %% 100"
|
||||
)
|
||||
|
||||
:: Build Library
|
||||
echo * Building 32-bit projects
|
||||
%MSBUILD% /t:rebuild /p:Platform=Win32 /v:q /m ..\Rainmeter.sln > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END
|
||||
|
||||
echo * Building 64-bit projects
|
||||
%MSBUILD% /t:rebuild /p:Platform=x64 /v:q /m ..\Rainmeter.sln > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END
|
||||
|
||||
:BUILDLANGUAGES
|
||||
echo * Building languages
|
||||
|
||||
:: Build all language libraries
|
||||
>".\Installer\Languages.nsh" echo.
|
||||
for /f "tokens=1,2,3 delims=," %%a in (..\Language\List) do (
|
||||
> "..\Language\Language.rc" echo #include "%%a.h"
|
||||
>>"..\Language\Language.rc" echo #include "Resource.rc"
|
||||
>>".\Installer\Languages.nsh" echo ${IncludeLanguage} "%%b" "%%a"
|
||||
set LANGDLL_PARAMS='%%a - ${LANGFILE_%%b_NAME}' '${LANG_%%b}' '${LANG_%%b_CP}' !LANGDLL_PARAMS!
|
||||
set LANGUAGE_IDS=${LANG_%%b},!LANGUAGE_IDS!
|
||||
|
||||
%MSBUILD% /t:Language /p:Platform=Win32;TargetName=%%c /v:q ..\Rainmeter.sln > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR: Building language %%a failed & goto END
|
||||
)
|
||||
>>".\Installer\Languages.nsh" echo ^^!define LANGDLL_PARAMS "%LANGDLL_PARAMS%"
|
||||
>>".\Installer\Languages.nsh" echo ^^!define LANGUAGE_IDS "%LANGUAGE_IDS%"
|
||||
|
||||
:: Restore English
|
||||
echo #include "English.h"> "..\Language\Language.rc"
|
||||
echo #include "Resource.rc">> "..\Language\Language.rc"
|
||||
if "%1" == "BUILDLANGUAGES" (
|
||||
xcopy /Q /S /Y ..\x32-Release\Languages\*.dll ..\x64-Release\Languages\ > nul
|
||||
xcopy /Q /S /Y ..\x32-Release\Release\Languages\*.dll ..\x32-Debug\Languages\ > nul
|
||||
xcopy /Q /S /Y ..\x32-Release\Release\Languages\*.dll ..\x64-Debug\Languages\ > nul
|
||||
if exist "BuildLog.txt" del "BuildLog.txt"
|
||||
goto END
|
||||
)
|
||||
|
||||
:: Sign binaries
|
||||
if not "%CERTFILE%" == "" (
|
||||
echo * Signing binaries
|
||||
for %%Z in (Rainmeter.dll Rainmeter.exe SkinInstaller.exe SkinInstaller.dll) do (
|
||||
%SIGNTOOL% ..\x32-Release\%%Z > BuildLog.txt
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x32\%%Z failed & goto END
|
||||
%SIGNTOOL% ..\x64-Release\%%Z > BuildLog.txt
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x64\%%Z failed & goto END
|
||||
)
|
||||
)
|
||||
|
||||
:: Build installer
|
||||
echo * Building installer
|
||||
|
||||
set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%.exe
|
||||
if not "%1" == "RELEASE" set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%-r%VERSION_REVISION%-beta.exe
|
||||
|
||||
set INSTALLER_DEFINES=^
|
||||
/DOUTFILE="%INSTALLER_NAME%"^
|
||||
/DVERSION_FULL="%VERSION_FULL%"^
|
||||
/DVERSION_SHORT="%VERSION_SHORT%"^
|
||||
/DVERSION_REVISION="%VERSION_REVISION%"
|
||||
if not "%1" == "RELEASE" set INSTALLER_DEFINES=!INSTALLER_DEFINES! /DBETA
|
||||
|
||||
"%MAKENSIS%" %INSTALLER_DEFINES% .\Installer\Installer.nsi > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Building installer failed & goto END
|
||||
|
||||
:: Sign installer
|
||||
if not "%CERTFILE%" == "" (
|
||||
echo * Signing installer
|
||||
%SIGNTOOL% %INSTALLER_NAME% > BuildLog.txt
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing installer failed & goto END
|
||||
)
|
||||
|
||||
:: If we got here, build was successful so delete BuildLog.txt
|
||||
if exist "BuildLog.txt" del "BuildLog.txt"
|
||||
|
||||
for /F "tokens=1-4 delims=:.," %%a in ("%TIME%") do (
|
||||
set /A "BUILD_END_TIMESTAMP=(((%%a * 60) + 1%%b %% 100)* 60 + %%c %% 100) * 100 + 1%%d %% 100"
|
||||
)
|
||||
set /A "BUILD_ELAPSED_TIME=(%BUILD_END_TIMESTAMP% - %BUILD_BEGIN_TIMESTAMP%) / 100"
|
||||
echo * Build complete. Elapsed time: %BUILD_ELAPSED_TIME% sec
|
||||
|
||||
:END
|
||||
if exist ".\Installer\Languages.nsh" del ".\Installer\Languages.nsh"
|
||||
echo.
|
||||
pause
|
||||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
set VCVARSALL=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat
|
||||
set MAKENSIS=%PROGRAMFILES%\NSIS\MakeNSIS.exe
|
||||
set GIT=%PROGRAMFILES%\Git\bin\git.exe
|
||||
|
||||
:: Set VERSION_REVISION to non-zero value to override
|
||||
set VERSION_MAJOR=3
|
||||
set VERSION_MINOR=2
|
||||
set VERSION_SUBMINOR=0
|
||||
set VERSION_REVISION=0
|
||||
set ISBETA=true
|
||||
|
||||
if "%1" == "RELEASE" set ISBETA=false
|
||||
if "%1" == "BUILDVERSION" goto BUILDVERSION
|
||||
echo Rainmeter Build
|
||||
echo ----------------------------------------------
|
||||
echo.
|
||||
|
||||
if not exist "%VCVARSALL%" echo ERROR: vcvarsall.bat not found & goto END
|
||||
call "%VCVARSALL%" x86 > nul
|
||||
|
||||
set MSBUILD="msbuild.exe" /nologo^
|
||||
/p:PlatformToolset=v120_xp;VisualStudioVersion=12.0^
|
||||
/p:ExcludeTests=true^
|
||||
/p:Configuration=Release
|
||||
|
||||
if exist "Certificate.bat" call "Certificate.bat" > nul
|
||||
set SIGNTOOL="signtool.exe" sign /t http://time.certum.pl /f "%CERTFILE%" /p "%CERTKEY%"
|
||||
|
||||
if "%1" == "BUILDLANGUAGES" goto BUILDLANGUAGES
|
||||
|
||||
if exist "%MAKENSIS%" goto NSISFOUND
|
||||
set MAKENSIS=%MAKENSIS:Program Files\=Program Files (x86)\%
|
||||
if not exist "%MAKENSIS%" echo ERROR: MakeNSIS.exe not found & goto END
|
||||
:NSISFOUND
|
||||
|
||||
:BUILDVERSION
|
||||
|
||||
if not exist "..\.git" goto UPDATEVERSION
|
||||
if not "%VERSION_REVISION%" == "0" goto UPDATEVERSION
|
||||
|
||||
:: git
|
||||
if exist "%GIT%" goto GITFOUND
|
||||
set GIT=%GIT:Program Files\=Program Files (x86)\%
|
||||
if not exist "%GIT%" echo ERROR: git.exe not found & goto END
|
||||
:GITFOUND
|
||||
set /a VERSION_REVISION=0
|
||||
for /f "usebackq delims= " %%G in (`"%GIT%" rev-list --all --count`) do set VERSION_REVISION=%%G
|
||||
|
||||
:UPDATEVERSION
|
||||
|
||||
set VERSION_FULL=%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_SUBMINOR%.%VERSION_REVISION%
|
||||
set VERSION_SHORT=%VERSION_MAJOR%.%VERSION_MINOR%
|
||||
if not "%VERSION_SUBMINOR%" == "0" set VERSION_SHORT=!VERSION_SHORT!.%VERSION_SUBMINOR%
|
||||
|
||||
:: Update Version.h
|
||||
> "..\Version.h" echo #pragma once
|
||||
>>"..\Version.h" echo #define FILEVER %VERSION_MAJOR%,%VERSION_MINOR%,%VERSION_SUBMINOR%,%VERSION_REVISION%
|
||||
>>"..\Version.h" echo #define PRODUCTVER FILEVER
|
||||
>>"..\Version.h" echo #define STRFILEVER "%VERSION_FULL%"
|
||||
>>"..\Version.h" echo #define STRPRODUCTVER STRFILEVER
|
||||
>>"..\Version.h" echo #define APPVERSION L"%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_SUBMINOR%"
|
||||
>>"..\Version.h" echo #define RAINMETER_VERSION ((%VERSION_MAJOR% * 1000000) + (%VERSION_MINOR% * 1000) + %VERSION_SUBMINOR%)
|
||||
>>"..\Version.h" echo const int revision_number = %VERSION_REVISION%;
|
||||
>>"..\Version.h" echo const bool revision_beta = %ISBETA%;
|
||||
|
||||
:: Update Version.cs
|
||||
> "..\Version.cs" echo namespace Rainmeter
|
||||
>>"..\Version.cs" echo {
|
||||
>>"..\Version.cs" echo public class Version
|
||||
>>"..\Version.cs" echo {
|
||||
>>"..\Version.cs" echo #if X64
|
||||
>>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (64-bit)";
|
||||
>>"..\Version.cs" echo #else
|
||||
>>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (32-bit)";
|
||||
>>"..\Version.cs" echo #endif
|
||||
>>"..\Version.cs" echo }
|
||||
>>"..\Version.cs" echo }
|
||||
|
||||
|
||||
if "%1" == "BUILDVERSION" goto :eof
|
||||
echo * Updated Version.h
|
||||
|
||||
:: Set vcbuild environment variables and begin build
|
||||
echo * Starting build for %VERSION_FULL%
|
||||
for /F "tokens=1-4 delims=:.," %%a in ("%TIME%") do (
|
||||
set /A "BUILD_BEGIN_TIMESTAMP=(((%%a * 60) + 1%%b %% 100)* 60 + 1%%c %% 100) * 100 + 1%%d %% 100"
|
||||
)
|
||||
|
||||
:: Build Library
|
||||
echo * Building 32-bit projects
|
||||
%MSBUILD% /t:rebuild /p:Platform=Win32 /v:q /m ..\Rainmeter.sln > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END
|
||||
|
||||
echo * Building 64-bit projects
|
||||
%MSBUILD% /t:rebuild /p:Platform=x64 /v:q /m ..\Rainmeter.sln > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END
|
||||
|
||||
:BUILDLANGUAGES
|
||||
echo * Building languages
|
||||
|
||||
:: Build all language libraries
|
||||
>".\Installer\Languages.nsh" echo.
|
||||
for /f "tokens=1,2,3 delims=," %%a in (..\Language\List) do (
|
||||
> "..\Language\Language.rc" echo #include "%%a.h"
|
||||
>>"..\Language\Language.rc" echo #include "Resource.rc"
|
||||
>>".\Installer\Languages.nsh" echo ${IncludeLanguage} "%%b" "%%a"
|
||||
set LANGDLL_PARAMS='%%a - ${LANGFILE_%%b_NAME}' '${LANG_%%b}' '${LANG_%%b_CP}' !LANGDLL_PARAMS!
|
||||
set LANGUAGE_IDS=${LANG_%%b},!LANGUAGE_IDS!
|
||||
|
||||
%MSBUILD% /t:Language /p:Platform=Win32;TargetName=%%c /v:q ..\Rainmeter.sln > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR: Building language %%a failed & goto END
|
||||
)
|
||||
>>".\Installer\Languages.nsh" echo ^^!define LANGDLL_PARAMS "%LANGDLL_PARAMS%"
|
||||
>>".\Installer\Languages.nsh" echo ^^!define LANGUAGE_IDS "%LANGUAGE_IDS%"
|
||||
|
||||
:: Restore English
|
||||
echo #include "English.h"> "..\Language\Language.rc"
|
||||
echo #include "Resource.rc">> "..\Language\Language.rc"
|
||||
if "%1" == "BUILDLANGUAGES" (
|
||||
xcopy /Q /S /Y ..\x32-Release\Languages\*.dll ..\x64-Release\Languages\ > nul
|
||||
xcopy /Q /S /Y ..\x32-Release\Release\Languages\*.dll ..\x32-Debug\Languages\ > nul
|
||||
xcopy /Q /S /Y ..\x32-Release\Release\Languages\*.dll ..\x64-Debug\Languages\ > nul
|
||||
if exist "BuildLog.txt" del "BuildLog.txt"
|
||||
goto END
|
||||
)
|
||||
|
||||
:: Sign binaries
|
||||
if not "%CERTFILE%" == "" (
|
||||
echo * Signing binaries
|
||||
for %%Z in (Rainmeter.dll Rainmeter.exe SkinInstaller.exe SkinInstaller.dll) do (
|
||||
%SIGNTOOL% ..\x32-Release\%%Z > BuildLog.txt
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x32\%%Z failed & goto END
|
||||
%SIGNTOOL% ..\x64-Release\%%Z > BuildLog.txt
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x64\%%Z failed & goto END
|
||||
)
|
||||
)
|
||||
|
||||
:: Build installer
|
||||
echo * Building installer
|
||||
|
||||
set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%.exe
|
||||
if not "%1" == "RELEASE" set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%-r%VERSION_REVISION%-beta.exe
|
||||
|
||||
set INSTALLER_DEFINES=^
|
||||
/DOUTFILE="%INSTALLER_NAME%"^
|
||||
/DVERSION_FULL="%VERSION_FULL%"^
|
||||
/DVERSION_SHORT="%VERSION_SHORT%"^
|
||||
/DVERSION_REVISION="%VERSION_REVISION%"
|
||||
if not "%1" == "RELEASE" set INSTALLER_DEFINES=!INSTALLER_DEFINES! /DBETA
|
||||
|
||||
"%MAKENSIS%" %INSTALLER_DEFINES% .\Installer\Installer.nsi > "BuildLog.txt"
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Building installer failed & goto END
|
||||
|
||||
:: Sign installer
|
||||
if not "%CERTFILE%" == "" (
|
||||
echo * Signing installer
|
||||
%SIGNTOOL% %INSTALLER_NAME% > BuildLog.txt
|
||||
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing installer failed & goto END
|
||||
)
|
||||
|
||||
:: If we got here, build was successful so delete BuildLog.txt
|
||||
if exist "BuildLog.txt" del "BuildLog.txt"
|
||||
|
||||
for /F "tokens=1-4 delims=:.," %%a in ("%TIME%") do (
|
||||
set /A "BUILD_END_TIMESTAMP=(((%%a * 60) + 1%%b %% 100)* 60 + %%c %% 100) * 100 + 1%%d %% 100"
|
||||
)
|
||||
set /A "BUILD_ELAPSED_TIME=(%BUILD_END_TIMESTAMP% - %BUILD_BEGIN_TIMESTAMP%) / 100"
|
||||
echo * Build complete. Elapsed time: %BUILD_ELAPSED_TIME% sec
|
||||
|
||||
:END
|
||||
if exist ".\Installer\Languages.nsh" del ".\Installer\Languages.nsh"
|
||||
echo.
|
||||
pause
|
||||
@@ -1,2 +1,2 @@
|
||||
@echo off
|
||||
@echo off
|
||||
"Build.bat" BUILDLANGUAGES
|
||||
@@ -1,2 +1,2 @@
|
||||
@echo off
|
||||
"Build.bat" BUILDVERSION
|
||||
@echo off
|
||||
"Build.bat" BUILDVERSION
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
@@ -1,200 +1,200 @@
|
||||
!ifndef UAC_HDR__INC
|
||||
!verbose push
|
||||
!verbose 3
|
||||
!ifndef UAC_VERBOSE
|
||||
!define UAC_VERBOSE 3
|
||||
!endif
|
||||
!verbose ${UAC_VERBOSE}
|
||||
|
||||
!define UAC_HDR__INC 0x00020204 ;MMmmbbrr
|
||||
|
||||
!include LogicLib.nsh
|
||||
|
||||
!macro _UAC_definemath def val1 op val2
|
||||
!define /math _UAC_definemath "${val1}" ${op} ${val2}
|
||||
!ifdef ${def}
|
||||
!undef ${def}
|
||||
!endif
|
||||
!define ${def} "${_UAC_definemath}"
|
||||
!undef _UAC_definemath
|
||||
!macroend
|
||||
|
||||
!macro _UAC_ParseDefineFlags_orin parse outflags
|
||||
!searchparse /noerrors ${${parse}} "" _UAC_ParseDefineFlags_orin_f1 "|" _UAC_ParseDefineFlags_orin_f2
|
||||
!define _UAC_ParseDefineFlags_orin_this ${_UAC_ParseDefineFlags_orin_f1}
|
||||
!undef ${parse}
|
||||
!define ${parse} ${_UAC_ParseDefineFlags_orin_f2}
|
||||
!define _UAC_ParseDefineFlags_orin_saveout ${${outflags}}
|
||||
!undef ${outflags}
|
||||
!define /math ${outflags} "${_UAC_ParseDefineFlags_orin_saveout}" | "${_UAC_ParseDefineFlags_orin_this}"
|
||||
!undef _UAC_ParseDefineFlags_orin_saveout
|
||||
!undef _UAC_ParseDefineFlags_orin_this
|
||||
!ifdef _UAC_ParseDefineFlags_orin_f1
|
||||
!undef _UAC_ParseDefineFlags_orin_f1
|
||||
!undef _UAC_ParseDefineFlags_orin_f2
|
||||
!endif
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlags_Begin _outdef _in
|
||||
!define _UAC_PDF${_outdef}_parse "${_in}"
|
||||
!define _UAC_PDF${_outdef}_flags ""
|
||||
!define _UAC_PDF${_outdef}_r 0
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x1
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x2
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x4
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x8
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x10
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlags_End _outdef
|
||||
!define ${_outdef} ${_UAC_PDF${_outdef}_r}
|
||||
!undef _UAC_PDF${_outdef}_r
|
||||
!undef _UAC_PDF${_outdef}_flags
|
||||
!undef _UAC_PDF${_outdef}_parse
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlags_IncludeFlag _outdef flag
|
||||
!if ${_UAC_PDF${_outdef}_flags} & ${flag}
|
||||
!insertmacro _UAC_definemath _UAC_PDF${_outdef}_r ${_UAC_PDF${_outdef}_r} | ${flag}
|
||||
!endif
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlagsToInt _outdef _in
|
||||
!insertmacro _UAC_ParseDefineFlags_Begin _UAC_ParseDefineFlagsToInt_tmp "${_in}"
|
||||
!define ${_outdef} ${_UAC_PDF_UAC_ParseDefineFlagsToInt_tmp_flags}
|
||||
!insertmacro _UAC_ParseDefineFlags_End _UAC_ParseDefineFlagsToInt_tmp
|
||||
!undef _UAC_ParseDefineFlagsToInt_tmp
|
||||
!macroend
|
||||
|
||||
!macro _UAC_IncL
|
||||
!insertmacro _UAC_definemath __UAC_L "${__UAC_L}" + 1
|
||||
!macroend
|
||||
|
||||
|
||||
!macro _UAC_MakeLL_Cmp cmpop cmp pluginparams
|
||||
!insertmacro _LOGICLIB_TEMP
|
||||
UAC::_ ${pluginparams}
|
||||
pop $_LOGICLIB_TEMP
|
||||
!insertmacro ${cmpop} $_LOGICLIB_TEMP ${cmp} `${_t}` `${_f}`
|
||||
!macroend
|
||||
|
||||
|
||||
!macro UAC_RunElevated
|
||||
UAC::_ 0
|
||||
!macroend
|
||||
!macro UAC_PageElevation_RunElevated
|
||||
UAC::_ 0
|
||||
!macroend
|
||||
/*!macro UAC_OnInitElevation_RunElevated
|
||||
UAC::_ 0
|
||||
!macroend
|
||||
!macro UAC_OnInitElevation_OnGuiInit
|
||||
!macroend*/
|
||||
|
||||
|
||||
!macro UAC_IsAdmin
|
||||
UAC::_ 2
|
||||
!macroend
|
||||
!define UAC_IsAdmin `"" UAC_IsAdmin ""`
|
||||
!macro _UAC_IsAdmin _a _b _t _f
|
||||
!insertmacro _UAC_MakeLL_Cmp _!= 0 2s
|
||||
!macroend
|
||||
|
||||
|
||||
|
||||
!macro UAC_IsInnerInstance
|
||||
UAC::_ 3
|
||||
!macroend
|
||||
!define UAC_IsInnerInstance `"" UAC_IsInnerInstance ""`
|
||||
!macro _UAC_IsInnerInstance _a _b _t _f
|
||||
!insertmacro _UAC_MakeLL_Cmp _!= 0 3s
|
||||
!macroend
|
||||
|
||||
!macro UAC_Notify_OnGuiInit
|
||||
UAC::_ 4
|
||||
!macroend
|
||||
!macro UAC_PageElevation_OnGuiInit
|
||||
!insertmacro UAC_Notify_OnGuiInit
|
||||
!macroend
|
||||
!macro UAC_PageElevation_OnInit
|
||||
UAC::_ 5
|
||||
${IfThen} ${Errors} ${|} Quit ${|}
|
||||
!macroend
|
||||
|
||||
|
||||
!define UAC_SYNCREGISTERS 0x1
|
||||
#!define UAC_SYNCSTACK 0x2
|
||||
!define UAC_SYNCOUTDIR 0x4
|
||||
!define UAC_SYNCINSTDIR 0x8
|
||||
#!define UAC_CLEARERRFLAG 0x10
|
||||
!macro UAC_AsUser_Call type name flags
|
||||
push $0
|
||||
Get${type}Address $0 ${name}
|
||||
!verbose push
|
||||
!verbose ${UAC_VERBOSE}
|
||||
!insertmacro _UAC_ParseDefineFlagsToInt _UAC_AsUser_Call__flags ${flags}
|
||||
!verbose pop
|
||||
StrCpy $0 "1$0:${_UAC_AsUser_Call__flags}"
|
||||
!undef _UAC_AsUser_Call__flags
|
||||
Exch $0
|
||||
UAC::_
|
||||
!macroend
|
||||
|
||||
!macro _UAC_AsUser_GenOp outvar op opparam1 opparam2
|
||||
!define _UAC_AUGOGR_ID _UAC_AUGOGR_OP${outvar}${op}${opparam1}${opparam2}
|
||||
!ifndef ${_UAC_AUGOGR_ID} ;Has this exact action been done before?
|
||||
!if ${outvar} == $0
|
||||
!define ${_UAC_AUGOGR_ID} $1
|
||||
!else
|
||||
!define ${_UAC_AUGOGR_ID} $0
|
||||
!endif
|
||||
!if "${opparam1}" == ""
|
||||
!define _UAC_AUGOGR_OPP1 ${${_UAC_AUGOGR_ID}}
|
||||
!define _UAC_AUGOGR_OPP2 ${opparam2}
|
||||
!else
|
||||
!define _UAC_AUGOGR_OPP1 ${opparam1}
|
||||
!define _UAC_AUGOGR_OPP2 ${${_UAC_AUGOGR_ID}}
|
||||
!endif
|
||||
goto ${_UAC_AUGOGR_ID}_C
|
||||
${_UAC_AUGOGR_ID}_F:
|
||||
${op} ${_UAC_AUGOGR_OPP1} ${_UAC_AUGOGR_OPP2}
|
||||
return
|
||||
${_UAC_AUGOGR_ID}_C:
|
||||
!undef _UAC_AUGOGR_OPP1
|
||||
!undef _UAC_AUGOGR_OPP2
|
||||
!endif
|
||||
push ${${_UAC_AUGOGR_ID}}
|
||||
!insertmacro UAC_AsUser_Call Label ${_UAC_AUGOGR_ID}_F ${UAC_SYNCREGISTERS}
|
||||
StrCpy ${outvar} ${${_UAC_AUGOGR_ID}}
|
||||
pop ${${_UAC_AUGOGR_ID}}
|
||||
!undef _UAC_AUGOGR_ID
|
||||
!macroend
|
||||
|
||||
!macro UAC_AsUser_GetSection datatype secidx outvar
|
||||
!insertmacro _UAC_AsUser_GenOp ${outvar} SectionGet${datatype} ${secidx} ""
|
||||
!macroend
|
||||
|
||||
!macro UAC_AsUser_GetGlobalVar var
|
||||
!insertmacro _UAC_AsUser_GenOp ${var} StrCpy "" ${var}
|
||||
!macroend
|
||||
!macro UAC_AsUser_GetGlobal outvar srcvar
|
||||
!insertmacro _UAC_AsUser_GenOp ${outvar} StrCpy "" ${srcvar}
|
||||
!macroend
|
||||
|
||||
|
||||
!macro UAC_AsUser_ExecShell verb command params workdir show
|
||||
!insertmacro _UAC_IncL
|
||||
goto _UAC_L_E_${__UAC_L}
|
||||
_UAC_L_F_${__UAC_L}:
|
||||
ExecShell "${verb}" "${command}" ${params} ${show}
|
||||
return
|
||||
_UAC_L_E_${__UAC_L}:
|
||||
!if "${workdir}" != ""
|
||||
push $outdir
|
||||
SetOutPath "${workdir}"
|
||||
!endif
|
||||
!insertmacro UAC_AsUser_Call Label _UAC_L_F_${__UAC_L} ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} #|${UAC_CLEARERRFLAG}
|
||||
!if "${workdir}" != ""
|
||||
pop $outdir
|
||||
SetOutPath $outdir
|
||||
!endif
|
||||
!macroend
|
||||
|
||||
!verbose pop
|
||||
!ifndef UAC_HDR__INC
|
||||
!verbose push
|
||||
!verbose 3
|
||||
!ifndef UAC_VERBOSE
|
||||
!define UAC_VERBOSE 3
|
||||
!endif
|
||||
!verbose ${UAC_VERBOSE}
|
||||
|
||||
!define UAC_HDR__INC 0x00020204 ;MMmmbbrr
|
||||
|
||||
!include LogicLib.nsh
|
||||
|
||||
!macro _UAC_definemath def val1 op val2
|
||||
!define /math _UAC_definemath "${val1}" ${op} ${val2}
|
||||
!ifdef ${def}
|
||||
!undef ${def}
|
||||
!endif
|
||||
!define ${def} "${_UAC_definemath}"
|
||||
!undef _UAC_definemath
|
||||
!macroend
|
||||
|
||||
!macro _UAC_ParseDefineFlags_orin parse outflags
|
||||
!searchparse /noerrors ${${parse}} "" _UAC_ParseDefineFlags_orin_f1 "|" _UAC_ParseDefineFlags_orin_f2
|
||||
!define _UAC_ParseDefineFlags_orin_this ${_UAC_ParseDefineFlags_orin_f1}
|
||||
!undef ${parse}
|
||||
!define ${parse} ${_UAC_ParseDefineFlags_orin_f2}
|
||||
!define _UAC_ParseDefineFlags_orin_saveout ${${outflags}}
|
||||
!undef ${outflags}
|
||||
!define /math ${outflags} "${_UAC_ParseDefineFlags_orin_saveout}" | "${_UAC_ParseDefineFlags_orin_this}"
|
||||
!undef _UAC_ParseDefineFlags_orin_saveout
|
||||
!undef _UAC_ParseDefineFlags_orin_this
|
||||
!ifdef _UAC_ParseDefineFlags_orin_f1
|
||||
!undef _UAC_ParseDefineFlags_orin_f1
|
||||
!undef _UAC_ParseDefineFlags_orin_f2
|
||||
!endif
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlags_Begin _outdef _in
|
||||
!define _UAC_PDF${_outdef}_parse "${_in}"
|
||||
!define _UAC_PDF${_outdef}_flags ""
|
||||
!define _UAC_PDF${_outdef}_r 0
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x1
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x2
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x4
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x8
|
||||
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x10
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlags_End _outdef
|
||||
!define ${_outdef} ${_UAC_PDF${_outdef}_r}
|
||||
!undef _UAC_PDF${_outdef}_r
|
||||
!undef _UAC_PDF${_outdef}_flags
|
||||
!undef _UAC_PDF${_outdef}_parse
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlags_IncludeFlag _outdef flag
|
||||
!if ${_UAC_PDF${_outdef}_flags} & ${flag}
|
||||
!insertmacro _UAC_definemath _UAC_PDF${_outdef}_r ${_UAC_PDF${_outdef}_r} | ${flag}
|
||||
!endif
|
||||
!macroend
|
||||
!macro _UAC_ParseDefineFlagsToInt _outdef _in
|
||||
!insertmacro _UAC_ParseDefineFlags_Begin _UAC_ParseDefineFlagsToInt_tmp "${_in}"
|
||||
!define ${_outdef} ${_UAC_PDF_UAC_ParseDefineFlagsToInt_tmp_flags}
|
||||
!insertmacro _UAC_ParseDefineFlags_End _UAC_ParseDefineFlagsToInt_tmp
|
||||
!undef _UAC_ParseDefineFlagsToInt_tmp
|
||||
!macroend
|
||||
|
||||
!macro _UAC_IncL
|
||||
!insertmacro _UAC_definemath __UAC_L "${__UAC_L}" + 1
|
||||
!macroend
|
||||
|
||||
|
||||
!macro _UAC_MakeLL_Cmp cmpop cmp pluginparams
|
||||
!insertmacro _LOGICLIB_TEMP
|
||||
UAC::_ ${pluginparams}
|
||||
pop $_LOGICLIB_TEMP
|
||||
!insertmacro ${cmpop} $_LOGICLIB_TEMP ${cmp} `${_t}` `${_f}`
|
||||
!macroend
|
||||
|
||||
|
||||
!macro UAC_RunElevated
|
||||
UAC::_ 0
|
||||
!macroend
|
||||
!macro UAC_PageElevation_RunElevated
|
||||
UAC::_ 0
|
||||
!macroend
|
||||
/*!macro UAC_OnInitElevation_RunElevated
|
||||
UAC::_ 0
|
||||
!macroend
|
||||
!macro UAC_OnInitElevation_OnGuiInit
|
||||
!macroend*/
|
||||
|
||||
|
||||
!macro UAC_IsAdmin
|
||||
UAC::_ 2
|
||||
!macroend
|
||||
!define UAC_IsAdmin `"" UAC_IsAdmin ""`
|
||||
!macro _UAC_IsAdmin _a _b _t _f
|
||||
!insertmacro _UAC_MakeLL_Cmp _!= 0 2s
|
||||
!macroend
|
||||
|
||||
|
||||
|
||||
!macro UAC_IsInnerInstance
|
||||
UAC::_ 3
|
||||
!macroend
|
||||
!define UAC_IsInnerInstance `"" UAC_IsInnerInstance ""`
|
||||
!macro _UAC_IsInnerInstance _a _b _t _f
|
||||
!insertmacro _UAC_MakeLL_Cmp _!= 0 3s
|
||||
!macroend
|
||||
|
||||
!macro UAC_Notify_OnGuiInit
|
||||
UAC::_ 4
|
||||
!macroend
|
||||
!macro UAC_PageElevation_OnGuiInit
|
||||
!insertmacro UAC_Notify_OnGuiInit
|
||||
!macroend
|
||||
!macro UAC_PageElevation_OnInit
|
||||
UAC::_ 5
|
||||
${IfThen} ${Errors} ${|} Quit ${|}
|
||||
!macroend
|
||||
|
||||
|
||||
!define UAC_SYNCREGISTERS 0x1
|
||||
#!define UAC_SYNCSTACK 0x2
|
||||
!define UAC_SYNCOUTDIR 0x4
|
||||
!define UAC_SYNCINSTDIR 0x8
|
||||
#!define UAC_CLEARERRFLAG 0x10
|
||||
!macro UAC_AsUser_Call type name flags
|
||||
push $0
|
||||
Get${type}Address $0 ${name}
|
||||
!verbose push
|
||||
!verbose ${UAC_VERBOSE}
|
||||
!insertmacro _UAC_ParseDefineFlagsToInt _UAC_AsUser_Call__flags ${flags}
|
||||
!verbose pop
|
||||
StrCpy $0 "1$0:${_UAC_AsUser_Call__flags}"
|
||||
!undef _UAC_AsUser_Call__flags
|
||||
Exch $0
|
||||
UAC::_
|
||||
!macroend
|
||||
|
||||
!macro _UAC_AsUser_GenOp outvar op opparam1 opparam2
|
||||
!define _UAC_AUGOGR_ID _UAC_AUGOGR_OP${outvar}${op}${opparam1}${opparam2}
|
||||
!ifndef ${_UAC_AUGOGR_ID} ;Has this exact action been done before?
|
||||
!if ${outvar} == $0
|
||||
!define ${_UAC_AUGOGR_ID} $1
|
||||
!else
|
||||
!define ${_UAC_AUGOGR_ID} $0
|
||||
!endif
|
||||
!if "${opparam1}" == ""
|
||||
!define _UAC_AUGOGR_OPP1 ${${_UAC_AUGOGR_ID}}
|
||||
!define _UAC_AUGOGR_OPP2 ${opparam2}
|
||||
!else
|
||||
!define _UAC_AUGOGR_OPP1 ${opparam1}
|
||||
!define _UAC_AUGOGR_OPP2 ${${_UAC_AUGOGR_ID}}
|
||||
!endif
|
||||
goto ${_UAC_AUGOGR_ID}_C
|
||||
${_UAC_AUGOGR_ID}_F:
|
||||
${op} ${_UAC_AUGOGR_OPP1} ${_UAC_AUGOGR_OPP2}
|
||||
return
|
||||
${_UAC_AUGOGR_ID}_C:
|
||||
!undef _UAC_AUGOGR_OPP1
|
||||
!undef _UAC_AUGOGR_OPP2
|
||||
!endif
|
||||
push ${${_UAC_AUGOGR_ID}}
|
||||
!insertmacro UAC_AsUser_Call Label ${_UAC_AUGOGR_ID}_F ${UAC_SYNCREGISTERS}
|
||||
StrCpy ${outvar} ${${_UAC_AUGOGR_ID}}
|
||||
pop ${${_UAC_AUGOGR_ID}}
|
||||
!undef _UAC_AUGOGR_ID
|
||||
!macroend
|
||||
|
||||
!macro UAC_AsUser_GetSection datatype secidx outvar
|
||||
!insertmacro _UAC_AsUser_GenOp ${outvar} SectionGet${datatype} ${secidx} ""
|
||||
!macroend
|
||||
|
||||
!macro UAC_AsUser_GetGlobalVar var
|
||||
!insertmacro _UAC_AsUser_GenOp ${var} StrCpy "" ${var}
|
||||
!macroend
|
||||
!macro UAC_AsUser_GetGlobal outvar srcvar
|
||||
!insertmacro _UAC_AsUser_GenOp ${outvar} StrCpy "" ${srcvar}
|
||||
!macroend
|
||||
|
||||
|
||||
!macro UAC_AsUser_ExecShell verb command params workdir show
|
||||
!insertmacro _UAC_IncL
|
||||
goto _UAC_L_E_${__UAC_L}
|
||||
_UAC_L_F_${__UAC_L}:
|
||||
ExecShell "${verb}" "${command}" ${params} ${show}
|
||||
return
|
||||
_UAC_L_E_${__UAC_L}:
|
||||
!if "${workdir}" != ""
|
||||
push $outdir
|
||||
SetOutPath "${workdir}"
|
||||
!endif
|
||||
!insertmacro UAC_AsUser_Call Label _UAC_L_F_${__UAC_L} ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} #|${UAC_CLEARERRFLAG}
|
||||
!if "${workdir}" != ""
|
||||
pop $outdir
|
||||
SetOutPath $outdir
|
||||
!endif
|
||||
!macroend
|
||||
|
||||
!verbose pop
|
||||
!endif /* UAC_HDR__INC */
|
||||
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
@@ -1,23 +1,23 @@
|
||||
[Rainmeter]
|
||||
|
||||
[illustro\Clock]
|
||||
Active=1
|
||||
WindowX=(#SCREENAREAWIDTH#-200)
|
||||
WindowY=0
|
||||
|
||||
[illustro\Disk]
|
||||
Active=2
|
||||
WindowX=(#SCREENAREAWIDTH#-200)
|
||||
WindowY=176
|
||||
|
||||
[illustro\System]
|
||||
Active=1
|
||||
WindowX=(#SCREENAREAWIDTH#-200)
|
||||
WindowY=68
|
||||
|
||||
[illustro\Welcome]
|
||||
Active=1
|
||||
WindowX=50.000000%
|
||||
WindowY=50.000000%
|
||||
AnchorX=50.000000%
|
||||
[Rainmeter]
|
||||
|
||||
[illustro\Clock]
|
||||
Active=1
|
||||
WindowX=(#SCREENAREAWIDTH#-200)
|
||||
WindowY=0
|
||||
|
||||
[illustro\Disk]
|
||||
Active=2
|
||||
WindowX=(#SCREENAREAWIDTH#-200)
|
||||
WindowY=176
|
||||
|
||||
[illustro\System]
|
||||
Active=1
|
||||
WindowX=(#SCREENAREAWIDTH#-200)
|
||||
WindowY=68
|
||||
|
||||
[illustro\Welcome]
|
||||
Active=1
|
||||
WindowX=50.000000%
|
||||
WindowY=50.000000%
|
||||
AnchorX=50.000000%
|
||||
AnchorY=50.000000%
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -1,138 +1,138 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays the current date and time.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureTime]
|
||||
; This measure returns the time in a 24-hour format (i.e. HH:MM).
|
||||
Measure=Time
|
||||
Format=%H:%M
|
||||
; For a 12-hour clock, change the Format option above to: %I:%M %p
|
||||
; Refer to the Rainmeter manual for other format codes.
|
||||
|
||||
[measureDate]
|
||||
; Returns the date as DD.MM.YYYY
|
||||
Measure=Time
|
||||
Format=%d.%m.%Y
|
||||
|
||||
[measureDay]
|
||||
; Returns the current day
|
||||
Measure=Time
|
||||
Format=%A
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
MeasureName=measureTime
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="%1"
|
||||
; %1 stands for the value of MeasureName (measureTime in this case).
|
||||
|
||||
[meterDay]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
MeasureName=measureDay
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="%1"
|
||||
|
||||
[meterDate]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureDate
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1"
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays the current date and time.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureTime]
|
||||
; This measure returns the time in a 24-hour format (i.e. HH:MM).
|
||||
Measure=Time
|
||||
Format=%H:%M
|
||||
; For a 12-hour clock, change the Format option above to: %I:%M %p
|
||||
; Refer to the Rainmeter manual for other format codes.
|
||||
|
||||
[measureDate]
|
||||
; Returns the date as DD.MM.YYYY
|
||||
Measure=Time
|
||||
Format=%d.%m.%Y
|
||||
|
||||
[measureDay]
|
||||
; Returns the current day
|
||||
Measure=Time
|
||||
Format=%A
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
MeasureName=measureTime
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="%1"
|
||||
; %1 stands for the value of MeasureName (measureTime in this case).
|
||||
|
||||
[meterDay]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
MeasureName=measureDay
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="%1"
|
||||
|
||||
[meterDate]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureDate
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1"
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
@@ -1,149 +1,149 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
; NOTE! If you want to add more disks, take a look at 'Disks 2.ini'.
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays disk usage.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
disk1=C:
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureTotalDisk1]
|
||||
; This measure returns the total disk space
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
Total=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureUsedDisk1]
|
||||
; Returns inverted value of free disk space (i.e. used disk space)
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
InvertMeasure=1
|
||||
UpdateDivider=120
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Disks"
|
||||
; Even though the text is set to Disks, Rainmeter will display
|
||||
; it as DISKS, because styleTitle contains StringCase=UPPER.
|
||||
|
||||
[meterLabelDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="#disk1#\"
|
||||
|
||||
[meterValueDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureUsedDisk1
|
||||
MeasureName2=measureTotalDisk1
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/%2B used"
|
||||
; %1 stands for the value of MeasureName (measureUsedDisk1 in this case).
|
||||
; %2 stands for the value of MeasureName2.
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
; Because disk measures return the free/used space in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
LeftMouseUpAction=!Execute ["#disk1#\"]
|
||||
; Open #disk1# on click
|
||||
|
||||
[meterBarDisk1]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureUsedDisk1
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
; NOTE! If you want to add more disks, take a look at 'Disks 2.ini'.
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays disk usage.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
disk1=C:
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureTotalDisk1]
|
||||
; This measure returns the total disk space
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
Total=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureUsedDisk1]
|
||||
; Returns inverted value of free disk space (i.e. used disk space)
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
InvertMeasure=1
|
||||
UpdateDivider=120
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Disks"
|
||||
; Even though the text is set to Disks, Rainmeter will display
|
||||
; it as DISKS, because styleTitle contains StringCase=UPPER.
|
||||
|
||||
[meterLabelDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="#disk1#\"
|
||||
|
||||
[meterValueDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureUsedDisk1
|
||||
MeasureName2=measureTotalDisk1
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/%2B used"
|
||||
; %1 stands for the value of MeasureName (measureUsedDisk1 in this case).
|
||||
; %2 stands for the value of MeasureName2.
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
; Because disk measures return the free/used space in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
LeftMouseUpAction=!Execute ["#disk1#\"]
|
||||
; Open #disk1# on click
|
||||
|
||||
[meterBarDisk1]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureUsedDisk1
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
@@ -1,209 +1,209 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
; HOWTO: Adding more disks
|
||||
; ----------------------------------
|
||||
; Adding more disks is a pretty straightforward process. Follow the following steps to turn
|
||||
; this 2 disks skin into a 3 disks skin. You can then extend it even further as you wish.
|
||||
;
|
||||
; 1) Create a new variable called disk3=X: directly below disk2=D: in the [Variables] section
|
||||
; 2) Create a copy of the [measureTotalDisk2] and [measureUsedDisk2] sections
|
||||
; 3) Rename the copied sections to [measureTotalDisk3] and [measureUsedDisk3], respectively.
|
||||
; Also change Drive=#disk2# to Drive=#disk3#
|
||||
; 4) Create a copy of the [meterLabelDisk2], [meterValueDisk2], and [meterBarDisk2].
|
||||
; Rename all Disk2's in the copied sections to Disk3.
|
||||
; 5) Now we need to change the Y= values to adjust height. Change Y= under [meterLabelDisk3]
|
||||
; to Y=80 (calculated by adding 20 to the Y= value of previous meterLabel).
|
||||
; Then change Y= under [meterBarDisk3] to Y=92 (calculated by adding 20 to the Y= value of previous meterBar).
|
||||
; 6) Save the file as '3 Disks.ini'. Now right-click on the Rainmeter tray icon and select
|
||||
; 'Refresh All'. Now go activate the '3 Disks.ini' skin and enjoy! :)
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays disk usage.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
disk1=C:
|
||||
disk2=D:
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureTotalDisk1]
|
||||
; This measure returns the total disk space
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
Total=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureUsedDisk1]
|
||||
; Returns inverted value of free disk space (i.e. used disk space)
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
InvertMeasure=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureTotalDisk2]
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk2#
|
||||
Total=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureUsedDisk2]
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk2#
|
||||
InvertMeasure=1
|
||||
UpdateDivider=120
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Disk"
|
||||
; Even though the text is set to Disk, Rainmeter will display
|
||||
; it as DISK, because styleTitle contains StringCase=UPPER.
|
||||
|
||||
[meterLabelDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="#disk1#\"
|
||||
|
||||
[meterValueDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureUsedDisk1
|
||||
MeasureName2=measureTotalDisk1
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/%2B used"
|
||||
; %1 stands for the value of MeasureName (measureUsedDisk1 in this case).
|
||||
; %2 stands for the value of MeasureName2.
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
; Because disk measures return the free/used space in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
LeftMouseUpAction=!Execute ["#disk1#\"]
|
||||
; Open #disk1# on click
|
||||
|
||||
[meterBarDisk1]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureUsedDisk1
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterLabelDisk2]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=60
|
||||
W=190
|
||||
H=14
|
||||
Text="#disk2#\"
|
||||
LeftMouseUpAction=!Execute ["#disk2#\"]
|
||||
|
||||
[meterValueDisk2]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureUsedDisk2
|
||||
MeasureName2=measureTotalDisk2
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/%2B used"
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
|
||||
[meterBarDisk2]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureUsedDisk2
|
||||
X=10
|
||||
Y=72
|
||||
W=190
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
; HOWTO: Adding more disks
|
||||
; ----------------------------------
|
||||
; Adding more disks is a pretty straightforward process. Follow the following steps to turn
|
||||
; this 2 disks skin into a 3 disks skin. You can then extend it even further as you wish.
|
||||
;
|
||||
; 1) Create a new variable called disk3=X: directly below disk2=D: in the [Variables] section
|
||||
; 2) Create a copy of the [measureTotalDisk2] and [measureUsedDisk2] sections
|
||||
; 3) Rename the copied sections to [measureTotalDisk3] and [measureUsedDisk3], respectively.
|
||||
; Also change Drive=#disk2# to Drive=#disk3#
|
||||
; 4) Create a copy of the [meterLabelDisk2], [meterValueDisk2], and [meterBarDisk2].
|
||||
; Rename all Disk2's in the copied sections to Disk3.
|
||||
; 5) Now we need to change the Y= values to adjust height. Change Y= under [meterLabelDisk3]
|
||||
; to Y=80 (calculated by adding 20 to the Y= value of previous meterLabel).
|
||||
; Then change Y= under [meterBarDisk3] to Y=92 (calculated by adding 20 to the Y= value of previous meterBar).
|
||||
; 6) Save the file as '3 Disks.ini'. Now right-click on the Rainmeter tray icon and select
|
||||
; 'Refresh All'. Now go activate the '3 Disks.ini' skin and enjoy! :)
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays disk usage.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
disk1=C:
|
||||
disk2=D:
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureTotalDisk1]
|
||||
; This measure returns the total disk space
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
Total=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureUsedDisk1]
|
||||
; Returns inverted value of free disk space (i.e. used disk space)
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk1#
|
||||
InvertMeasure=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureTotalDisk2]
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk2#
|
||||
Total=1
|
||||
UpdateDivider=120
|
||||
|
||||
[measureUsedDisk2]
|
||||
Measure=FreeDiskSpace
|
||||
Drive=#disk2#
|
||||
InvertMeasure=1
|
||||
UpdateDivider=120
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Disk"
|
||||
; Even though the text is set to Disk, Rainmeter will display
|
||||
; it as DISK, because styleTitle contains StringCase=UPPER.
|
||||
|
||||
[meterLabelDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="#disk1#\"
|
||||
|
||||
[meterValueDisk1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureUsedDisk1
|
||||
MeasureName2=measureTotalDisk1
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/%2B used"
|
||||
; %1 stands for the value of MeasureName (measureUsedDisk1 in this case).
|
||||
; %2 stands for the value of MeasureName2.
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
; Because disk measures return the free/used space in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
LeftMouseUpAction=!Execute ["#disk1#\"]
|
||||
; Open #disk1# on click
|
||||
|
||||
[meterBarDisk1]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureUsedDisk1
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterLabelDisk2]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=60
|
||||
W=190
|
||||
H=14
|
||||
Text="#disk2#\"
|
||||
LeftMouseUpAction=!Execute ["#disk2#\"]
|
||||
|
||||
[meterValueDisk2]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureUsedDisk2
|
||||
MeasureName2=measureTotalDisk2
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/%2B used"
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
|
||||
[meterBarDisk2]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureUsedDisk2
|
||||
X=10
|
||||
Y=72
|
||||
W=190
|
||||
H=1
|
||||
@@ -1,119 +1,119 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Allows searching through Google.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureInput]
|
||||
; The InputText.dll plugin has special powers: it allows user input.
|
||||
; However, it's not the easiest way to start learning Rainmeter. Get a
|
||||
; hold of the basics, and then check out the manual entry for InputText.
|
||||
Measure=Plugin
|
||||
Plugin=InputText.dll
|
||||
SolidColor=20,20,20,255
|
||||
StringAlign=LEFT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
X=10
|
||||
Y=38
|
||||
W=188
|
||||
H=17
|
||||
FocusDismiss=1
|
||||
DefaultValue=""
|
||||
Command1=!Execute ["http://www.google.com/search?q=$UserInput$"]
|
||||
UpdateDivider=86400
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Google"
|
||||
|
||||
[meterSearch]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="Search..."
|
||||
LeftMouseUpAction=!PluginBang "measureInput ExecuteBatch 1"
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Allows searching through Google.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureInput]
|
||||
; The InputText.dll plugin has special powers: it allows user input.
|
||||
; However, it's not the easiest way to start learning Rainmeter. Get a
|
||||
; hold of the basics, and then check out the manual entry for InputText.
|
||||
Measure=Plugin
|
||||
Plugin=InputText.dll
|
||||
SolidColor=20,20,20,255
|
||||
StringAlign=LEFT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
X=10
|
||||
Y=38
|
||||
W=188
|
||||
H=17
|
||||
FocusDismiss=1
|
||||
DefaultValue=""
|
||||
Command1=!Execute ["http://www.google.com/search?q=$UserInput$"]
|
||||
UpdateDivider=86400
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Google"
|
||||
|
||||
[meterSearch]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="Search..."
|
||||
LeftMouseUpAction=!PluginBang "measureInput ExecuteBatch 1"
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
@@ -1,215 +1,215 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Shows your IP address and network activity.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
maxDownload=10485760
|
||||
MaxUpload=10485760
|
||||
; Set maxDownload and maxUpload to your maximum download and upload speed in bits.
|
||||
; To convert kilobits, megabits, kilobytes, and megabytes into bits, go to www.google.com
|
||||
; and search for something like "10 megabytes in bits".
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureIP]
|
||||
; This measure returns your IP. WebParser measures are relatively complicated. If you're a beginner with
|
||||
; Rainmeter, take a look at some of the other illustro skins before modifying this one.
|
||||
Measure=Plugin
|
||||
Plugin=WebParser.dll
|
||||
Url=http://checkip.dyndns.org
|
||||
UpdateRate=14400
|
||||
RegExp="(?siU)Address: (.*)</body>"
|
||||
StringIndex=1
|
||||
Substitute="":"N/A"
|
||||
; Substitute works as follows: "A":"B" where A is a string to substitute and B is a string
|
||||
; to substitute with. In this case, it substutes "" (i.e. empty) to N/A
|
||||
|
||||
[measureNetIn]
|
||||
Measure=NetIn
|
||||
NetInSpeed=#maxDownload#
|
||||
; NetInSpeed must be set so your maximun download speed for the download bar to scale correctly
|
||||
|
||||
[measureNetOut]
|
||||
Measure=NetOut
|
||||
NetOutSpeed=#maxUpload#
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Network"
|
||||
; Even though the text is set to Network, Rainmeter will display
|
||||
; it as NETWORK, because styleTitle contains StringCase=UPPER.
|
||||
|
||||
[meterIPLabel]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="IP Address"
|
||||
|
||||
[meterIPValue]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureIP
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1"
|
||||
; %1 stands for the value of MeasureName (measureIP in this case).
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterUploadLabel]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=60
|
||||
W=190
|
||||
H=14
|
||||
Text="Upload"
|
||||
|
||||
[meterUploadValue]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureNetOut
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/s"
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
; Because measureIP returns the current upload speed in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
|
||||
[meterUploadBar]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureNetOut
|
||||
X=10
|
||||
Y=72
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterDownloadLabel]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=80
|
||||
W=190
|
||||
H=14
|
||||
Text="Download"
|
||||
|
||||
[meterDownloadValue]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureNetIn
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/s"
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
|
||||
[meterDownloadBar]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureNetIn
|
||||
X=10
|
||||
Y=92
|
||||
W=190
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Shows your IP address and network activity.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
maxDownload=10485760
|
||||
MaxUpload=10485760
|
||||
; Set maxDownload and maxUpload to your maximum download and upload speed in bits.
|
||||
; To convert kilobits, megabits, kilobytes, and megabytes into bits, go to www.google.com
|
||||
; and search for something like "10 megabytes in bits".
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureIP]
|
||||
; This measure returns your IP. WebParser measures are relatively complicated. If you're a beginner with
|
||||
; Rainmeter, take a look at some of the other illustro skins before modifying this one.
|
||||
Measure=Plugin
|
||||
Plugin=WebParser.dll
|
||||
Url=http://checkip.dyndns.org
|
||||
UpdateRate=14400
|
||||
RegExp="(?siU)Address: (.*)</body>"
|
||||
StringIndex=1
|
||||
Substitute="":"N/A"
|
||||
; Substitute works as follows: "A":"B" where A is a string to substitute and B is a string
|
||||
; to substitute with. In this case, it substutes "" (i.e. empty) to N/A
|
||||
|
||||
[measureNetIn]
|
||||
Measure=NetIn
|
||||
NetInSpeed=#maxDownload#
|
||||
; NetInSpeed must be set so your maximun download speed for the download bar to scale correctly
|
||||
|
||||
[measureNetOut]
|
||||
Measure=NetOut
|
||||
NetOutSpeed=#maxUpload#
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Network"
|
||||
; Even though the text is set to Network, Rainmeter will display
|
||||
; it as NETWORK, because styleTitle contains StringCase=UPPER.
|
||||
|
||||
[meterIPLabel]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="IP Address"
|
||||
|
||||
[meterIPValue]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureIP
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1"
|
||||
; %1 stands for the value of MeasureName (measureIP in this case).
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterUploadLabel]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=60
|
||||
W=190
|
||||
H=14
|
||||
Text="Upload"
|
||||
|
||||
[meterUploadValue]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureNetOut
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/s"
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
; Because measureIP returns the current upload speed in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
|
||||
[meterUploadBar]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureNetOut
|
||||
X=10
|
||||
Y=72
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterDownloadLabel]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=80
|
||||
W=190
|
||||
H=14
|
||||
Text="Download"
|
||||
|
||||
[meterDownloadValue]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureNetIn
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B/s"
|
||||
NumOfDecimals=1
|
||||
AutoScale=1
|
||||
|
||||
[meterDownloadBar]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureNetIn
|
||||
X=10
|
||||
Y=92
|
||||
W=190
|
||||
H=1
|
||||
@@ -1,147 +1,147 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Shows the state and size of your Recycle Bin.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureBinItems]
|
||||
; This measure returns the amount of items in the Recycle Bin.
|
||||
Measure=Plugin
|
||||
Plugin=RecycleManager.dll
|
||||
RecycleType=COUNT
|
||||
UpdateDivider=3
|
||||
; UpdateDivider sets the rate at which the value of the measure is updated. It is
|
||||
; calculated as follows: UpdateDivider x Update. In this case, Update is set to
|
||||
; 1000 milliseconds (in the [Rainmeter] section). 1000 x 3 = 3000 ms or 3 seconds.
|
||||
|
||||
[measureBinSize]
|
||||
; Returns the total size of the Recycle Bin in bytes.
|
||||
Measure=Plugin
|
||||
Plugin=RecycleManager.dll
|
||||
RecycleType=SIZE
|
||||
UpdateDivider=3
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Recycle Bin"
|
||||
; Even though the text is set to Recycle Bin, Rainmeter will display
|
||||
; it as RECYCLE BIN, because styleTitle contains StringCase=UPPER.
|
||||
LeftMouseUpAction=!Execute [!PluginBang "measureBinItems OpenBin"]
|
||||
RightMouseUpAction=!Execute [!PluginBang "measureBinItems EmptyBin"]
|
||||
ToolTipText="Left-click to open Recycle Bin#CRLF#Right-click to empty"
|
||||
; Hovering over this meter will display a tooltip with the text above.
|
||||
; The #CRLF# variable creates a new line.
|
||||
|
||||
[meterBinItems]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
MeasureName=measureBinItems
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="%1 items"
|
||||
; %1 stands for the value of MeasureName (measureBinItems in this case).
|
||||
|
||||
[meterBinSize]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureBinSize
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B"
|
||||
AutoScale=1
|
||||
; Because measureBinSize returns the size in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Shows the state and size of your Recycle Bin.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureBinItems]
|
||||
; This measure returns the amount of items in the Recycle Bin.
|
||||
Measure=Plugin
|
||||
Plugin=RecycleManager.dll
|
||||
RecycleType=COUNT
|
||||
UpdateDivider=3
|
||||
; UpdateDivider sets the rate at which the value of the measure is updated. It is
|
||||
; calculated as follows: UpdateDivider x Update. In this case, Update is set to
|
||||
; 1000 milliseconds (in the [Rainmeter] section). 1000 x 3 = 3000 ms or 3 seconds.
|
||||
|
||||
[measureBinSize]
|
||||
; Returns the total size of the Recycle Bin in bytes.
|
||||
Measure=Plugin
|
||||
Plugin=RecycleManager.dll
|
||||
RecycleType=SIZE
|
||||
UpdateDivider=3
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="Recycle Bin"
|
||||
; Even though the text is set to Recycle Bin, Rainmeter will display
|
||||
; it as RECYCLE BIN, because styleTitle contains StringCase=UPPER.
|
||||
LeftMouseUpAction=!Execute [!PluginBang "measureBinItems OpenBin"]
|
||||
RightMouseUpAction=!Execute [!PluginBang "measureBinItems EmptyBin"]
|
||||
ToolTipText="Left-click to open Recycle Bin#CRLF#Right-click to empty"
|
||||
; Hovering over this meter will display a tooltip with the text above.
|
||||
; The #CRLF# variable creates a new line.
|
||||
|
||||
[meterBinItems]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
MeasureName=measureBinItems
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="%1 items"
|
||||
; %1 stands for the value of MeasureName (measureBinItems in this case).
|
||||
|
||||
[meterBinSize]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureBinSize
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1B"
|
||||
AutoScale=1
|
||||
; Because measureBinSize returns the size in bytes, we must use AutoScale=1 to
|
||||
; automatically scale the value into a more readable figure.
|
||||
|
||||
[meterSeperator]
|
||||
Meter=IMAGE
|
||||
MeterStyle=styleSeperator
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
@@ -1,206 +1,206 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays basic system stats.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureCPU]
|
||||
; This measure returns the average CPU load between all cores.
|
||||
Measure=CPU
|
||||
Processor=0
|
||||
|
||||
[measureRAM]
|
||||
; Returns the amount of RAM used in bytes.
|
||||
Measure=PhysicalMemory
|
||||
UpdateDivider=20
|
||||
; UpdateDivider sets the rate at which the value of the measure is updated. It is
|
||||
; calculated as follows: UpdateDivider x Update. In this case, Update is set to
|
||||
; 1000 milliseconds (in the [Rainmeter] section). 1000 x 20 = 20000 ms or 20 seconds.
|
||||
|
||||
[measureSWAP]
|
||||
; Returns the amount of SWAP (pagefile) used in bytes.
|
||||
Measure=SWAPMemory
|
||||
UpdateDivider=20
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="System"
|
||||
; Even though the text is set to System, Rainmeter will display
|
||||
; it as SYSTEM, because styleTitle contains StringCase=UPPER.
|
||||
LeftMouseUpAction=!Execute ["taskmgr.exe"]
|
||||
; Left-clicking this meter will launch taskmgr.exe (the Task Manager).
|
||||
ToolTipText="Open Task Manager"
|
||||
; Hovering over this meter will display a tooltip with the text above.
|
||||
|
||||
[meterLabelCPU]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="CPU Usage"
|
||||
|
||||
[meterValueCPU]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureCPU
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1%"
|
||||
; %1 stands for the value of MeasureName (measureCPU in this case).
|
||||
|
||||
[meterBarCPU]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureCPU
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterLabelRAM]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=60
|
||||
W=190
|
||||
H=14
|
||||
Text="RAM Usage"
|
||||
|
||||
[meterValueRAM]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureRAM
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1%"
|
||||
Percentual=1
|
||||
; Percentual=1 needs to be added her because measureRAM returns the amount
|
||||
; of RAM used in bytes. Using Percentual=1 will convert that into a percentual value.
|
||||
|
||||
[meterBarRAM]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureRAM
|
||||
X=10
|
||||
Y=72
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterLabelSWAP]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=80
|
||||
W=190
|
||||
H=14
|
||||
Text="SWAP Usage"
|
||||
|
||||
[meterValueSWAP]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureSWAP
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1%"
|
||||
Percentual=1
|
||||
|
||||
[meterBarSWAP]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureSWAP
|
||||
X=10
|
||||
Y=92
|
||||
W=190
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
Background=#@#Background.png
|
||||
; #@# is equal to Rainmeter\Skins\illustro\@Resources
|
||||
BackgroundMode=3
|
||||
BackgroundMargins=0,34,0,14
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=Displays basic system stats.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=8
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; MEASURES return some kind of value
|
||||
; ----------------------------------
|
||||
|
||||
[measureCPU]
|
||||
; This measure returns the average CPU load between all cores.
|
||||
Measure=CPU
|
||||
Processor=0
|
||||
|
||||
[measureRAM]
|
||||
; Returns the amount of RAM used in bytes.
|
||||
Measure=PhysicalMemory
|
||||
UpdateDivider=20
|
||||
; UpdateDivider sets the rate at which the value of the measure is updated. It is
|
||||
; calculated as follows: UpdateDivider x Update. In this case, Update is set to
|
||||
; 1000 milliseconds (in the [Rainmeter] section). 1000 x 20 = 20000 ms or 20 seconds.
|
||||
|
||||
[measureSWAP]
|
||||
; Returns the amount of SWAP (pagefile) used in bytes.
|
||||
Measure=SWAPMemory
|
||||
UpdateDivider=20
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=CENTER
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleRightText]
|
||||
StringAlign=RIGHT
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleBar]
|
||||
BarColor=#colorBar#
|
||||
BarOrientation=HORIZONTAL
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=100
|
||||
Y=12
|
||||
W=190
|
||||
H=18
|
||||
Text="System"
|
||||
; Even though the text is set to System, Rainmeter will display
|
||||
; it as SYSTEM, because styleTitle contains StringCase=UPPER.
|
||||
LeftMouseUpAction=!Execute ["taskmgr.exe"]
|
||||
; Left-clicking this meter will launch taskmgr.exe (the Task Manager).
|
||||
ToolTipText="Open Task Manager"
|
||||
; Hovering over this meter will display a tooltip with the text above.
|
||||
|
||||
[meterLabelCPU]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=40
|
||||
W=190
|
||||
H=14
|
||||
Text="CPU Usage"
|
||||
|
||||
[meterValueCPU]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureCPU
|
||||
X=200
|
||||
Y=0r
|
||||
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels
|
||||
; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
|
||||
W=190
|
||||
H=14
|
||||
Text="%1%"
|
||||
; %1 stands for the value of MeasureName (measureCPU in this case).
|
||||
|
||||
[meterBarCPU]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureCPU
|
||||
X=10
|
||||
Y=52
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterLabelRAM]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=60
|
||||
W=190
|
||||
H=14
|
||||
Text="RAM Usage"
|
||||
|
||||
[meterValueRAM]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureRAM
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1%"
|
||||
Percentual=1
|
||||
; Percentual=1 needs to be added her because measureRAM returns the amount
|
||||
; of RAM used in bytes. Using Percentual=1 will convert that into a percentual value.
|
||||
|
||||
[meterBarRAM]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureRAM
|
||||
X=10
|
||||
Y=72
|
||||
W=190
|
||||
H=1
|
||||
|
||||
[meterLabelSWAP]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=10
|
||||
Y=80
|
||||
W=190
|
||||
H=14
|
||||
Text="SWAP Usage"
|
||||
|
||||
[meterValueSWAP]
|
||||
Meter=STRING
|
||||
MeterStyle=styleRightText
|
||||
MeasureName=measureSWAP
|
||||
X=200
|
||||
Y=0r
|
||||
W=190
|
||||
H=14
|
||||
Text="%1%"
|
||||
Percentual=1
|
||||
|
||||
[meterBarSWAP]
|
||||
Meter=BAR
|
||||
MeterStyle=styleBar
|
||||
MeasureName=measureSWAP
|
||||
X=10
|
||||
Y=92
|
||||
W=190
|
||||
H=1
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1,173 +1,173 @@
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=The welcome skin for illustro.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=9
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=LEFT
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterBackground]
|
||||
Meter=IMAGE
|
||||
ImageName=Background.png
|
||||
X=0
|
||||
Y=0
|
||||
|
||||
[meterMidLine]
|
||||
Meter=IMAGE
|
||||
SolidColor=255,255,255,80
|
||||
W=1
|
||||
H=200
|
||||
X=245
|
||||
Y=60
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=20
|
||||
Y=18
|
||||
W=400
|
||||
H=18
|
||||
FontSize=11
|
||||
Text="Welcome to Rainmeter!"
|
||||
|
||||
[meterIllustroTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=20
|
||||
Y=55
|
||||
W=240
|
||||
H=30
|
||||
FontColor=255,217,120,255
|
||||
FontSize=10
|
||||
Text="illustro: Getting started with Rainmeter skinning"
|
||||
|
||||
[meterIllustroLine]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=20
|
||||
Y=95
|
||||
W=225
|
||||
H=175
|
||||
FontColor=#colorText#
|
||||
FontSize=9
|
||||
Text="illustro is a simple set of skins designed to show some of the capabilities of Rainmeter. It offers a good place to start learning how to edit Rainmeter to make it your own. Use the "Rainmeter 101" link on the right to learn the basics.#CRLF##CRLF#To explore installed skins and change Rainmeter settings, simply click on the Rainmeter tray icon."
|
||||
; #CRLF# is a pre-defined varaible for newline.
|
||||
|
||||
[meterLinksTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=55
|
||||
W=235
|
||||
H=30
|
||||
FontColor=255,217,120,255
|
||||
FontSize=10
|
||||
Text=Recommended skin suites: Start using Rainmeter now!
|
||||
|
||||
[meterLinksLine]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=95
|
||||
W=225
|
||||
H=80
|
||||
FontColor=#colorText#
|
||||
FontSize=9
|
||||
Text=There are literally thousands of skins available for Rainmeter. We have a few popular ones we recommend, which you can install with just a few clicks.
|
||||
|
||||
[meterLink1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=175
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,217,120,255
|
||||
Text="» Recommended Skin Suites"
|
||||
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Discover"]
|
||||
|
||||
[meterLink2]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=195
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,174,69,255
|
||||
Text="» Rainmeter 101"
|
||||
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Rainmeter101"]
|
||||
|
||||
[meterLink3]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=215
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,174,69,255
|
||||
Text="» Rainmeter Manual"
|
||||
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Support"]
|
||||
|
||||
[meterLink4]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=235
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,174,69,255
|
||||
Text="» Rainmeter Forums"
|
||||
; Lines starting ; (semicolons) are commented out.
|
||||
; That is, they do not affect the code and are here for demonstration purposes only.
|
||||
; ----------------------------------
|
||||
|
||||
[Rainmeter]
|
||||
; This section contains general settings that can be used to change how Rainmeter behaves.
|
||||
Author=poiru
|
||||
AppVersion=2003000
|
||||
Update=1000
|
||||
|
||||
[Metadata]
|
||||
; Contains basic information of the skin.
|
||||
Description=The welcome skin for illustro.
|
||||
License=Creative Commons BY-NC-SA 3.0
|
||||
Version=1.0.0
|
||||
|
||||
[Variables]
|
||||
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
|
||||
fontName=Trebuchet MS
|
||||
textSize=9
|
||||
colorBar=235,170,0,255
|
||||
colorText=255,255,255,205
|
||||
|
||||
; ----------------------------------
|
||||
; STYLES are used to "centralize" options
|
||||
; ----------------------------------
|
||||
|
||||
[styleTitle]
|
||||
StringAlign=LEFT
|
||||
StringCase=UPPER
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,50
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=10
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleLeftText]
|
||||
StringAlign=LEFT
|
||||
; Meters using styleLeftText will be left-aligned.
|
||||
StringCase=NONE
|
||||
StringStyle=BOLD
|
||||
StringEffect=SHADOW
|
||||
FontEffectColor=0,0,0,20
|
||||
FontColor=#colorText#
|
||||
FontFace=#fontName#
|
||||
FontSize=#textSize#
|
||||
AntiAlias=1
|
||||
ClipString=1
|
||||
|
||||
[styleSeperator]
|
||||
SolidColor=255,255,255,15
|
||||
|
||||
; ----------------------------------
|
||||
; METERS display images, text, bars, etc.
|
||||
; ----------------------------------
|
||||
|
||||
[meterBackground]
|
||||
Meter=IMAGE
|
||||
ImageName=Background.png
|
||||
X=0
|
||||
Y=0
|
||||
|
||||
[meterMidLine]
|
||||
Meter=IMAGE
|
||||
SolidColor=255,255,255,80
|
||||
W=1
|
||||
H=200
|
||||
X=245
|
||||
Y=60
|
||||
|
||||
[meterTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleTitle
|
||||
; Using MeterStyle=styleTitle will basically "copy" the
|
||||
; contents of the [styleTitle] section here during runtime.
|
||||
X=20
|
||||
Y=18
|
||||
W=400
|
||||
H=18
|
||||
FontSize=11
|
||||
Text="Welcome to Rainmeter!"
|
||||
|
||||
[meterIllustroTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=20
|
||||
Y=55
|
||||
W=240
|
||||
H=30
|
||||
FontColor=255,217,120,255
|
||||
FontSize=10
|
||||
Text="illustro: Getting started with Rainmeter skinning"
|
||||
|
||||
[meterIllustroLine]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=20
|
||||
Y=95
|
||||
W=225
|
||||
H=175
|
||||
FontColor=#colorText#
|
||||
FontSize=9
|
||||
Text="illustro is a simple set of skins designed to show some of the capabilities of Rainmeter. It offers a good place to start learning how to edit Rainmeter to make it your own. Use the "Rainmeter 101" link on the right to learn the basics.#CRLF##CRLF#To explore installed skins and change Rainmeter settings, simply click on the Rainmeter tray icon."
|
||||
; #CRLF# is a pre-defined varaible for newline.
|
||||
|
||||
[meterLinksTitle]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=55
|
||||
W=235
|
||||
H=30
|
||||
FontColor=255,217,120,255
|
||||
FontSize=10
|
||||
Text=Recommended skin suites: Start using Rainmeter now!
|
||||
|
||||
[meterLinksLine]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=95
|
||||
W=225
|
||||
H=80
|
||||
FontColor=#colorText#
|
||||
FontSize=9
|
||||
Text=There are literally thousands of skins available for Rainmeter. We have a few popular ones we recommend, which you can install with just a few clicks.
|
||||
|
||||
[meterLink1]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=175
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,217,120,255
|
||||
Text="» Recommended Skin Suites"
|
||||
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Discover"]
|
||||
|
||||
[meterLink2]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=195
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,174,69,255
|
||||
Text="» Rainmeter 101"
|
||||
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Rainmeter101"]
|
||||
|
||||
[meterLink3]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=215
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,174,69,255
|
||||
Text="» Rainmeter Manual"
|
||||
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Support"]
|
||||
|
||||
[meterLink4]
|
||||
Meter=STRING
|
||||
MeterStyle=styleLeftText
|
||||
X=260
|
||||
Y=235
|
||||
W=225
|
||||
H=14
|
||||
FontColor=255,174,69,255
|
||||
Text="» Rainmeter Forums"
|
||||
LeftMouseUpAction=!Execute ["http://rainmeter.net/forums"]
|
||||
@@ -1,31 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Visual C++ project options meant to applied before the default Microsoft property sheets. -->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<WinDDK71Dir>$(SolutionDir)..\WinDDK\7600.16385.1\</WinDDK71Dir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Label="Configuration">
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120_xp</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Visual C++ project options meant to applied before the default Microsoft property sheets. -->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<WinDDK71Dir>$(SolutionDir)..\WinDDK\7600.16385.1\</WinDDK71Dir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Label="Configuration">
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v120_xp</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,129 +1,129 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Visual C++ project options meant to applied after the default Microsoft property sheets. -->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- Use the Win8 SDK headers even though we are using the v120_xp toolset. -->
|
||||
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- This is overridden by Build.bat during full build. -->
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'Win32' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot>
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot>
|
||||
|
||||
<OutDir>$(RmOutDirRoot)</OutDir>
|
||||
<IntDir>$(OutDir)\Obj\$(ProjectName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Avoid .lib files in TestBench. -->
|
||||
<OutDir Condition="'$(ConfigurationType)'=='StaticLibrary'">$(IntDir)</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Macros for unit testing. -->
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<!-- This is set to true by Build.bat when building full builds. -->
|
||||
<ExcludeTests>false</ExcludeTests>
|
||||
|
||||
<!-- Non-static projects must delayload CppUnitTestFramework.dll to avoid the "module not found"
|
||||
errors (since CppUnitTestFramework.dll is available only when running tests). -->
|
||||
<DelayLoadTestDLL>Microsoft.VisualStudio.TestTools.CppUnitTestFramework.dll</DelayLoadTestDLL>
|
||||
<DelayLoadTestDLL Condition="'$(Platform)'=='x64'">Microsoft.VisualStudio.TestTools.CppUnitTestFramework.x64.dll</DelayLoadTestDLL>
|
||||
<DelayLoadTestDLL Condition="'$(ConfigurationType)'=='StaticLibrary'"></DelayLoadTestDLL>
|
||||
<DelayLoadTestDLL Condition="'$(ExcludeTests)'=='true'"></DelayLoadTestDLL>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(ExcludeTests)'=='false'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<!-- Ignore C4351 to get rid of "new behavior: elements of array 'array' will be default initialized" -->
|
||||
<DisableSpecificWarnings>4351;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
|
||||
<ExceptionHandling>false</ExceptionHandling>
|
||||
|
||||
<!-- Set WINVER=0x0601 and friends (Win7) to avoid using Win8 specific features in the Win8 SDK. -->
|
||||
<!-- Set _HAS_EXCEPTIONS=0 to accompany the disabled exception handling above. -->
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;WINVER=0x0601;_WIN32_WINNT=0x0601;_WIN32_IE=0x0601;PSAPI_VERSION=1;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
|
||||
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
||||
<ClCompile>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<AdditionalOptions>/Gw %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<MergeSections>.rdata=.text</MergeSections>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
|
||||
<ClCompile>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Visual C++ project options meant to applied after the default Microsoft property sheets. -->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- Use the Win8 SDK headers even though we are using the v120_xp toolset. -->
|
||||
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- This is overridden by Build.bat during full build. -->
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'Win32' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot>
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot>
|
||||
|
||||
<OutDir>$(RmOutDirRoot)</OutDir>
|
||||
<IntDir>$(OutDir)\Obj\$(ProjectName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Avoid .lib files in TestBench. -->
|
||||
<OutDir Condition="'$(ConfigurationType)'=='StaticLibrary'">$(IntDir)</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Macros for unit testing. -->
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<!-- This is set to true by Build.bat when building full builds. -->
|
||||
<ExcludeTests>false</ExcludeTests>
|
||||
|
||||
<!-- Non-static projects must delayload CppUnitTestFramework.dll to avoid the "module not found"
|
||||
errors (since CppUnitTestFramework.dll is available only when running tests). -->
|
||||
<DelayLoadTestDLL>Microsoft.VisualStudio.TestTools.CppUnitTestFramework.dll</DelayLoadTestDLL>
|
||||
<DelayLoadTestDLL Condition="'$(Platform)'=='x64'">Microsoft.VisualStudio.TestTools.CppUnitTestFramework.x64.dll</DelayLoadTestDLL>
|
||||
<DelayLoadTestDLL Condition="'$(ConfigurationType)'=='StaticLibrary'"></DelayLoadTestDLL>
|
||||
<DelayLoadTestDLL Condition="'$(ExcludeTests)'=='true'"></DelayLoadTestDLL>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(ExcludeTests)'=='false'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<!-- Ignore C4351 to get rid of "new behavior: elements of array 'array' will be default initialized" -->
|
||||
<DisableSpecificWarnings>4351;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
|
||||
<ExceptionHandling>false</ExceptionHandling>
|
||||
|
||||
<!-- Set WINVER=0x0601 and friends (Win7) to avoid using Win8 specific features in the Win8 SDK. -->
|
||||
<!-- Set _HAS_EXCEPTIONS=0 to accompany the disabled exception handling above. -->
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;WINVER=0x0601;_WIN32_WINNT=0x0601;_WIN32_IE=0x0601;PSAPI_VERSION=1;_CRT_SECURE_NO_WARNINGS;WIN32_LEAN_AND_MEAN;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
|
||||
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
||||
<ClCompile>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<AdditionalOptions>/Gw %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<MergeSections>.rdata=.text</MergeSections>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
|
||||
<ClCompile>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
@@ -1,18 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>$(OutDir)Plugins\</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
|
||||
<Link>
|
||||
<AdditionalDependencies>$(SolutionDir)Plugins\API\x32\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
|
||||
<Link>
|
||||
<AdditionalDependencies>$(SolutionDir)Plugins\API\x64\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<OutDir>$(OutDir)Plugins\</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
|
||||
<Link>
|
||||
<AdditionalDependencies>$(SolutionDir)Plugins\API\x32\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
|
||||
<Link>
|
||||
<AdditionalDependencies>$(SolutionDir)Plugins\API\x64\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
@@ -1,9 +1,9 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- This is overridden by Build.bat during full build. -->
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'x86' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot>
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot>
|
||||
|
||||
<OutputPath>$(RmOutDirRoot)Plugins\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- This is overridden by Build.bat during full build. -->
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'x86' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot>
|
||||
<RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot>
|
||||
|
||||
<OutputPath>$(RmOutDirRoot)Plugins\</OutputPath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,96 +1,96 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{845F4BD4-6822-4D92-9DDB-15FD18A47E5A}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RainmeterStudio.Tests</RootNamespace>
|
||||
<AssemblyName>RainmeterStudio.Tests</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
|
||||
<IsCodedUITest>False</IsCodedUITest>
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
|
||||
</ItemGroup>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
|
||||
</ItemGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
<ItemGroup>
|
||||
<Compile Include="Storage\ProjectStorageTest.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Service References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\RainmeterEditor\RainmeterStudio.csproj">
|
||||
<Project>{438d0136-4a27-4e4d-a617-fface4554236}</Project>
|
||||
<Name>RainmeterStudio</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
</When>
|
||||
</Choose>
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{845F4BD4-6822-4D92-9DDB-15FD18A47E5A}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RainmeterStudio.Tests</RootNamespace>
|
||||
<AssemblyName>RainmeterStudio.Tests</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
|
||||
<IsCodedUITest>False</IsCodedUITest>
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
|
||||
</ItemGroup>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
|
||||
</ItemGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
<ItemGroup>
|
||||
<Compile Include="Storage\ProjectStorageTest.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Service References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\RainmeterStudio\RainmeterStudio.csproj">
|
||||
<Project>{438d0136-4a27-4e4d-a617-fface4554236}</Project>
|
||||
<Name>RainmeterStudio</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
</When>
|
||||
</Choose>
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,110 +1,110 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using RainmeterEditor.Storage;
|
||||
using RainmeterEditor.Model;
|
||||
using System.IO;
|
||||
|
||||
namespace RainmeterStudio.Tests.Storage
|
||||
{
|
||||
/// <summary>
|
||||
/// Tests the ProjectStorage class
|
||||
/// </summary>
|
||||
[TestClass]
|
||||
public class ProjectStorageTest
|
||||
{
|
||||
private ProjectStorage ProjectStorage = new ProjectStorage();
|
||||
|
||||
public TestContext TestContext { get; set; }
|
||||
|
||||
[TestInitialize]
|
||||
public void Initialize()
|
||||
{
|
||||
Directory.SetCurrentDirectory(TestContext.DeploymentDirectory);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ProjectStorageSmokeTest()
|
||||
{
|
||||
string filename = TestContext.TestName + ".rsproj";
|
||||
|
||||
// Create project
|
||||
Project project = CreateProject();
|
||||
|
||||
// Save and load
|
||||
ProjectStorage.Save(filename, project);
|
||||
Project res = ProjectStorage.Load(filename);
|
||||
|
||||
// Verify results
|
||||
Assert.IsNotNull(res);
|
||||
Assert.AreEqual(project, res);
|
||||
Assert.AreEqual(project.GetHashCode(), res.GetHashCode());
|
||||
Assert.AreEqual(project.Author, res.Author);
|
||||
Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile);
|
||||
Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter);
|
||||
Assert.AreEqual(project.MinimumWindows, res.MinimumWindows);
|
||||
Assert.AreEqual(project.Name, res.Name);
|
||||
Assert.AreEqual(project.Root, res.Root);
|
||||
Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles));
|
||||
Assert.AreEqual(project.Version, res.Version);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ProjectStorageEmptyProjectSmokeTest()
|
||||
{
|
||||
string filename = TestContext.TestName + ".rsproj";
|
||||
|
||||
// Create a project
|
||||
Project project = new Project();
|
||||
|
||||
// Save and load project
|
||||
ProjectStorage.Save(filename, project);
|
||||
Project res = ProjectStorage.Load(filename);
|
||||
|
||||
// Test results
|
||||
Assert.IsNotNull(res);
|
||||
Assert.AreEqual(project, res);
|
||||
Assert.AreEqual(project.GetHashCode(), res.GetHashCode());
|
||||
Assert.AreEqual(project.Author, res.Author);
|
||||
Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile);
|
||||
Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter);
|
||||
Assert.AreEqual(project.MinimumWindows, res.MinimumWindows);
|
||||
Assert.AreEqual(project.Name, res.Name);
|
||||
Assert.AreEqual(project.Root, res.Root);
|
||||
Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles));
|
||||
Assert.AreEqual(project.Version, res.Version);
|
||||
}
|
||||
|
||||
private Project CreateProject()
|
||||
{
|
||||
// Create some file references
|
||||
Reference folder1 = new Reference("folder1");
|
||||
Reference folder2 = new Reference("folder2");
|
||||
Reference file1 = new Reference("file1.txt");
|
||||
Reference file2 = new Reference("file2.ini");
|
||||
Reference file3 = new Reference("file3.bmp");
|
||||
|
||||
// Create a project
|
||||
Project project = new Project();
|
||||
project.Author = "Tiberiu Chibici";
|
||||
project.MinimumRainmeter = new Version("3.1");
|
||||
project.MinimumWindows = new Version("5.1");
|
||||
project.Name = "My project";
|
||||
project.Version = new Version("1.0.1");
|
||||
|
||||
project.AutoLoadFile = file2;
|
||||
project.VariableFiles.Add(file1);
|
||||
|
||||
// Set project references
|
||||
project.Root.Add(folder1);
|
||||
project.Root.Add(folder2);
|
||||
project.Root[0].Add(file1);
|
||||
project.Root[1].Add(file2);
|
||||
project.Root.Add(file3);
|
||||
|
||||
return project;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using RainmeterStudio.Storage;
|
||||
using RainmeterStudio.Model;
|
||||
using System.IO;
|
||||
|
||||
namespace RainmeterStudio.Tests.Storage
|
||||
{
|
||||
/// <summary>
|
||||
/// Tests the ProjectStorage class
|
||||
/// </summary>
|
||||
[TestClass]
|
||||
public class ProjectStorageTest
|
||||
{
|
||||
private ProjectStorage ProjectStorage = new ProjectStorage();
|
||||
|
||||
public TestContext TestContext { get; set; }
|
||||
|
||||
[TestInitialize]
|
||||
public void Initialize()
|
||||
{
|
||||
Directory.SetCurrentDirectory(TestContext.DeploymentDirectory);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ProjectStorageSmokeTest()
|
||||
{
|
||||
string filename = TestContext.TestName + ".rsproj";
|
||||
|
||||
// Create project
|
||||
Project project = CreateProject();
|
||||
|
||||
// Save and load
|
||||
ProjectStorage.Save(filename, project);
|
||||
Project res = ProjectStorage.Load(filename);
|
||||
|
||||
// Verify results
|
||||
Assert.IsNotNull(res);
|
||||
Assert.AreEqual(project, res);
|
||||
Assert.AreEqual(project.GetHashCode(), res.GetHashCode());
|
||||
Assert.AreEqual(project.Author, res.Author);
|
||||
Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile);
|
||||
Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter);
|
||||
Assert.AreEqual(project.MinimumWindows, res.MinimumWindows);
|
||||
Assert.AreEqual(project.Name, res.Name);
|
||||
Assert.AreEqual(project.Root, res.Root);
|
||||
Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles));
|
||||
Assert.AreEqual(project.Version, res.Version);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ProjectStorageEmptyProjectSmokeTest()
|
||||
{
|
||||
string filename = TestContext.TestName + ".rsproj";
|
||||
|
||||
// Create a project
|
||||
Project project = new Project();
|
||||
|
||||
// Save and load project
|
||||
ProjectStorage.Save(filename, project);
|
||||
Project res = ProjectStorage.Load(filename);
|
||||
|
||||
// Test results
|
||||
Assert.IsNotNull(res);
|
||||
Assert.AreEqual(project, res);
|
||||
Assert.AreEqual(project.GetHashCode(), res.GetHashCode());
|
||||
Assert.AreEqual(project.Author, res.Author);
|
||||
Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile);
|
||||
Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter);
|
||||
Assert.AreEqual(project.MinimumWindows, res.MinimumWindows);
|
||||
Assert.AreEqual(project.Name, res.Name);
|
||||
Assert.AreEqual(project.Root, res.Root);
|
||||
Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles));
|
||||
Assert.AreEqual(project.Version, res.Version);
|
||||
}
|
||||
|
||||
private Project CreateProject()
|
||||
{
|
||||
// Create some file references
|
||||
Reference folder1 = new Reference("folder1");
|
||||
Reference folder2 = new Reference("folder2");
|
||||
Reference file1 = new Reference("file1.txt");
|
||||
Reference file2 = new Reference("file2.ini");
|
||||
Reference file3 = new Reference("file3.bmp");
|
||||
|
||||
// Create a project
|
||||
Project project = new Project();
|
||||
project.Author = "Tiberiu Chibici";
|
||||
project.MinimumRainmeter = new Version("3.1");
|
||||
project.MinimumWindows = new Version("5.1");
|
||||
project.Name = "My project";
|
||||
project.Version = new Version("1.0.1");
|
||||
|
||||
project.AutoLoadFile = file2;
|
||||
project.VariableFiles.Add(file1);
|
||||
|
||||
// Set project references
|
||||
project.Root.Add(folder1);
|
||||
project.Root.Add(folder2);
|
||||
project.Root[0].Add(file1);
|
||||
project.Root[1].Add(file2);
|
||||
project.Root.Add(file3);
|
||||
|
||||
return project;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
||||
1070
RainmeterStudio.sln
@@ -1,3 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
||||
@@ -1,13 +1,13 @@
|
||||
<Application x:Class="RainmeterEditor.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
StartupUri="UI/MainWindow.xaml"
|
||||
Startup="Application_Startup">
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="UI/Styles/Common.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
<Application x:Class="RainmeterStudio.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
StartupUri="UI/MainWindow.xaml"
|
||||
Startup="Application_Startup">
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="UI/Styles/Common.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
@@ -1,22 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using RainmeterEditor.Business;
|
||||
using RainmeterEditor.Documents.Text;
|
||||
|
||||
namespace RainmeterEditor
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
{
|
||||
private void Application_Startup(object sender, StartupEventArgs e)
|
||||
{
|
||||
DocumentManager.Instance.RegisterEditorFactory(new TextEditorFactory());
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using RainmeterStudio.Business;
|
||||
using RainmeterStudio.Documents.Text;
|
||||
|
||||
namespace RainmeterStudio
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
{
|
||||
private void Application_Startup(object sender, StartupEventArgs e)
|
||||
{
|
||||
DocumentManager.Instance.RegisterEditorFactory(new TextEditorFactory());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,78 +1,78 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Model;
|
||||
using RainmeterEditor.Model.Events;
|
||||
|
||||
namespace RainmeterEditor.Business
|
||||
{
|
||||
public class DocumentManager
|
||||
{
|
||||
#region Singleton instance
|
||||
private static DocumentManager _instance = null;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the instance of DocumentManager
|
||||
/// </summary>
|
||||
public static DocumentManager Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
_instance = new DocumentManager();
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private DocumentManager()
|
||||
{
|
||||
}
|
||||
|
||||
List<IDocumentEditorFactory> _factories = new List<IDocumentEditorFactory>();
|
||||
List<IDocumentEditor> _editors = new List<IDocumentEditor>();
|
||||
|
||||
public event EventHandler<DocumentOpenedEventArgs> DocumentOpened;
|
||||
|
||||
/// <summary>
|
||||
/// Registers a document editor factory
|
||||
/// </summary>
|
||||
/// <param name="factory">Document editor factory</param>
|
||||
public void RegisterEditorFactory(IDocumentEditorFactory factory)
|
||||
{
|
||||
_factories.Add(factory);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new document in the specified path, with the specified format, and opens it
|
||||
/// </summary>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="path"></param>
|
||||
public void Create(DocumentFormat format, string path)
|
||||
{
|
||||
// Create document
|
||||
var document = format.Factory.CreateDocument(format, path);
|
||||
|
||||
// Create editor
|
||||
var editor = format.Factory.CreateEditor(document);
|
||||
_editors.Add(editor);
|
||||
|
||||
// Trigger event
|
||||
if (DocumentOpened != null)
|
||||
DocumentOpened(this, new DocumentOpenedEventArgs(editor));
|
||||
}
|
||||
|
||||
public IEnumerable<DocumentFormat> DocumentFormats
|
||||
{
|
||||
get
|
||||
{
|
||||
foreach (var f in _factories)
|
||||
foreach (var df in f.CreateDocumentFormats)
|
||||
yield return df;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Model;
|
||||
using RainmeterStudio.Model.Events;
|
||||
|
||||
namespace RainmeterStudio.Business
|
||||
{
|
||||
public class DocumentManager
|
||||
{
|
||||
#region Singleton instance
|
||||
private static DocumentManager _instance = null;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the instance of DocumentManager
|
||||
/// </summary>
|
||||
public static DocumentManager Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
_instance = new DocumentManager();
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private DocumentManager()
|
||||
{
|
||||
}
|
||||
|
||||
List<IDocumentEditorFactory> _factories = new List<IDocumentEditorFactory>();
|
||||
List<IDocumentEditor> _editors = new List<IDocumentEditor>();
|
||||
|
||||
public event EventHandler<DocumentOpenedEventArgs> DocumentOpened;
|
||||
|
||||
/// <summary>
|
||||
/// Registers a document editor factory
|
||||
/// </summary>
|
||||
/// <param name="factory">Document editor factory</param>
|
||||
public void RegisterEditorFactory(IDocumentEditorFactory factory)
|
||||
{
|
||||
_factories.Add(factory);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new document in the specified path, with the specified format, and opens it
|
||||
/// </summary>
|
||||
/// <param name="format"></param>
|
||||
/// <param name="path"></param>
|
||||
public void Create(DocumentFormat format, string path)
|
||||
{
|
||||
// Create document
|
||||
var document = format.Factory.CreateDocument(format, path);
|
||||
|
||||
// Create editor
|
||||
var editor = format.Factory.CreateEditor(document);
|
||||
_editors.Add(editor);
|
||||
|
||||
// Trigger event
|
||||
if (DocumentOpened != null)
|
||||
DocumentOpened(this, new DocumentOpenedEventArgs(editor));
|
||||
}
|
||||
|
||||
public IEnumerable<DocumentFormat> DocumentFormats
|
||||
{
|
||||
get
|
||||
{
|
||||
foreach (var f in _factories)
|
||||
foreach (var df in f.CreateDocumentFormats)
|
||||
yield return df;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Business
|
||||
{
|
||||
public class ProjectManager
|
||||
{
|
||||
public Project ActiveProject { get; protected set; }
|
||||
|
||||
public void Open() { }
|
||||
public void Close() { }
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Business
|
||||
{
|
||||
public class ProjectManager
|
||||
{
|
||||
public Project ActiveProject { get; protected set; }
|
||||
|
||||
public void Open() { }
|
||||
public void Close() { }
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Documents.Ini
|
||||
{
|
||||
/*public class IniDocument : IDocument
|
||||
{
|
||||
}*/
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Documents.Ini
|
||||
{
|
||||
/*public class IniDocument : IDocument
|
||||
{
|
||||
}*/
|
||||
}
|
||||
@@ -1,31 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Documents.Ini
|
||||
{
|
||||
/*public class IniSkinDesigner : IDocumentEditor
|
||||
{
|
||||
public override IDocument Document
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public override string Title
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public override System.Windows.UIElement EditorUI
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public override EventHandler SelectionChanged
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
}*/
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Documents.Ini
|
||||
{
|
||||
/*public class IniSkinDesigner : IDocumentEditor
|
||||
{
|
||||
public override IDocument Document
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public override string Title
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public override System.Windows.UIElement EditorUI
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public override EventHandler SelectionChanged
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
}*/
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
<UserControl x:Class="RainmeterEditor.Documents.Ini.IniSkinDesignerControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
<UserControl x:Class="RainmeterStudio.Documents.Ini.IniSkinDesignerControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,27 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace RainmeterEditor.Documents.Ini
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for IniSkinDesignerControl.xaml
|
||||
/// </summary>
|
||||
public partial class IniSkinDesignerControl : UserControl
|
||||
{
|
||||
public IniSkinDesignerControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace RainmeterStudio.Documents.Ini
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for IniSkinDesignerControl.xaml
|
||||
/// </summary>
|
||||
public partial class IniSkinDesignerControl : UserControl
|
||||
{
|
||||
public IniSkinDesignerControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Documents.Ini
|
||||
{
|
||||
/*public class IniSkinDesignerFactory : IDocumentEditorFactory
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Documents.Ini
|
||||
{
|
||||
/*public class IniSkinDesignerFactory : IDocumentEditorFactory
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
||||
@@ -1,35 +1,35 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Documents.Text
|
||||
{
|
||||
public class TextDocument : IDocument
|
||||
{
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return Path.GetFileName(FilePath);
|
||||
}
|
||||
}
|
||||
|
||||
public string FilePath
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public string Text
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public TextDocument()
|
||||
{
|
||||
Text = String.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Documents.Text
|
||||
{
|
||||
public class TextDocument : IDocument
|
||||
{
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return Path.GetFileName(FilePath);
|
||||
}
|
||||
}
|
||||
|
||||
public string FilePath
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public string Text
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public TextDocument()
|
||||
{
|
||||
Text = String.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Documents.Text
|
||||
{
|
||||
public class TextEditor : IDocumentEditor
|
||||
{
|
||||
private TextDocument _document;
|
||||
private TextEditorControl _control;
|
||||
|
||||
public TextEditor(TextDocument document)
|
||||
{
|
||||
_document = document;
|
||||
_control = new TextEditorControl(document);
|
||||
}
|
||||
|
||||
public override IDocument Document { get { return _document; } }
|
||||
|
||||
public override string Title { get { return _document.Name; } }
|
||||
|
||||
public override System.Windows.UIElement EditorUI { get { return _control; } }
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Documents.Text
|
||||
{
|
||||
public class TextEditor : IDocumentEditor
|
||||
{
|
||||
private TextDocument _document;
|
||||
private TextEditorControl _control;
|
||||
|
||||
public TextEditor(TextDocument document)
|
||||
{
|
||||
_document = document;
|
||||
_control = new TextEditorControl(document);
|
||||
}
|
||||
|
||||
public override IDocument Document { get { return _document; } }
|
||||
|
||||
public override string Title { get { return _document.Name; } }
|
||||
|
||||
public override System.Windows.UIElement EditorUI { get { return _control; } }
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
<UserControl x:Class="RainmeterEditor.Documents.Text.TextEditorControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<TextBox Name="text" AcceptsReturn="True" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
<UserControl x:Class="RainmeterStudio.Documents.Text.TextEditorControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<TextBox Name="text" AcceptsReturn="True" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,32 +1,32 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace RainmeterEditor.Documents.Text
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for TextEditorControl.xaml
|
||||
/// </summary>
|
||||
public partial class TextEditorControl : UserControl
|
||||
{
|
||||
private TextDocument _document;
|
||||
|
||||
public TextEditorControl(TextDocument document)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_document = document;
|
||||
text.Text = document.Text;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace RainmeterStudio.Documents.Text
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for TextEditorControl.xaml
|
||||
/// </summary>
|
||||
public partial class TextEditorControl : UserControl
|
||||
{
|
||||
private TextDocument _document;
|
||||
|
||||
public TextEditorControl(TextDocument document)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_document = document;
|
||||
text.Text = document.Text;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,59 +1,59 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Business;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Documents.Text
|
||||
{
|
||||
public class TextEditorFactory : IDocumentEditorFactory
|
||||
{
|
||||
private TextStorage _storage = new TextStorage();
|
||||
|
||||
/// <inheritdoc />
|
||||
public string EditorName
|
||||
{
|
||||
get { return Resources.Strings.DocumentEditor_Text_Name; }
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<DocumentFormat> CreateDocumentFormats
|
||||
{
|
||||
get
|
||||
{
|
||||
yield return new DocumentFormat()
|
||||
{
|
||||
Name = Resources.Strings.DocumentFormat_TextFile_Name,
|
||||
Category = Resources.Strings.Category_Utility,
|
||||
DefaultExtension = ".txt",
|
||||
Description = Resources.Strings.DocumentFormat_TextFile_Description,
|
||||
Icon = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Resources/Icons/text_file_32.png", UriKind.RelativeOrAbsolute)),
|
||||
Factory = this
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public IDocumentEditor CreateEditor(IDocument document)
|
||||
{
|
||||
TextDocument textDocument = document as TextDocument;
|
||||
|
||||
if (textDocument == null)
|
||||
throw new ArgumentException("Cannot edit provided document.");
|
||||
|
||||
return new TextEditor(textDocument);
|
||||
}
|
||||
|
||||
public IDocumentStorage Storage { get { return _storage; } }
|
||||
|
||||
public IDocument CreateDocument(DocumentFormat format, string path)
|
||||
{
|
||||
var document = new TextDocument();
|
||||
document.FilePath = path;
|
||||
|
||||
return document;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Business;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Documents.Text
|
||||
{
|
||||
public class TextEditorFactory : IDocumentEditorFactory
|
||||
{
|
||||
private TextStorage _storage = new TextStorage();
|
||||
|
||||
/// <inheritdoc />
|
||||
public string EditorName
|
||||
{
|
||||
get { return Resources.Strings.DocumentEditor_Text_Name; }
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<DocumentFormat> CreateDocumentFormats
|
||||
{
|
||||
get
|
||||
{
|
||||
yield return new DocumentFormat()
|
||||
{
|
||||
Name = Resources.Strings.DocumentFormat_TextFile_Name,
|
||||
Category = Resources.Strings.Category_Utility,
|
||||
DefaultExtension = ".txt",
|
||||
Description = Resources.Strings.DocumentFormat_TextFile_Description,
|
||||
Icon = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Resources/Icons/text_file_32.png", UriKind.RelativeOrAbsolute)),
|
||||
Factory = this
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public IDocumentEditor CreateEditor(IDocument document)
|
||||
{
|
||||
TextDocument textDocument = document as TextDocument;
|
||||
|
||||
if (textDocument == null)
|
||||
throw new ArgumentException("Cannot edit provided document.");
|
||||
|
||||
return new TextEditor(textDocument);
|
||||
}
|
||||
|
||||
public IDocumentStorage Storage { get { return _storage; } }
|
||||
|
||||
public IDocument CreateDocument(DocumentFormat format, string path)
|
||||
{
|
||||
var document = new TextDocument();
|
||||
document.FilePath = path;
|
||||
|
||||
return document;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,64 +1,64 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Documents.Text
|
||||
{
|
||||
/// <summary>
|
||||
/// Storage for text files
|
||||
/// </summary>
|
||||
public class TextStorage : IDocumentStorage
|
||||
{
|
||||
/// <inheritdoc />
|
||||
IDocument IDocumentStorage.Read(string path)
|
||||
{
|
||||
TextDocument document = new TextDocument();
|
||||
document.FilePath = path;
|
||||
document.Text = File.ReadAllText(path);
|
||||
|
||||
return document;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Write(string path, IDocument document)
|
||||
{
|
||||
TextDocument textDocument = document as TextDocument;
|
||||
|
||||
if (textDocument == null)
|
||||
throw new ArgumentException("Provided document is not supported by this storage.");
|
||||
|
||||
File.WriteAllText(path, textDocument.Text);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public bool CanRead(string path)
|
||||
{
|
||||
// Open the file
|
||||
FileStream file = File.OpenRead(path);
|
||||
|
||||
// Read a small chunk (1kb should be enough)
|
||||
byte[] buffer = new byte[1024];
|
||||
int read = file.Read(buffer, 0, buffer.Length);
|
||||
|
||||
// Close file
|
||||
file.Close();
|
||||
|
||||
// Find 4 consecutive zero bytes
|
||||
int cnt = 0;
|
||||
for (int i = 0; i < read; i++)
|
||||
{
|
||||
// Count zero bytes
|
||||
if (buffer[i] == 0)
|
||||
++cnt;
|
||||
else cnt = 0;
|
||||
|
||||
// Found > 4? Most likely binary file
|
||||
if (cnt >= 4)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Not found, probably text file
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.IO;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Documents.Text
|
||||
{
|
||||
/// <summary>
|
||||
/// Storage for text files
|
||||
/// </summary>
|
||||
public class TextStorage : IDocumentStorage
|
||||
{
|
||||
/// <inheritdoc />
|
||||
IDocument IDocumentStorage.Read(string path)
|
||||
{
|
||||
TextDocument document = new TextDocument();
|
||||
document.FilePath = path;
|
||||
document.Text = File.ReadAllText(path);
|
||||
|
||||
return document;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Write(string path, IDocument document)
|
||||
{
|
||||
TextDocument textDocument = document as TextDocument;
|
||||
|
||||
if (textDocument == null)
|
||||
throw new ArgumentException("Provided document is not supported by this storage.");
|
||||
|
||||
File.WriteAllText(path, textDocument.Text);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public bool CanRead(string path)
|
||||
{
|
||||
// Open the file
|
||||
FileStream file = File.OpenRead(path);
|
||||
|
||||
// Read a small chunk (1kb should be enough)
|
||||
byte[] buffer = new byte[1024];
|
||||
int read = file.Read(buffer, 0, buffer.Length);
|
||||
|
||||
// Close file
|
||||
file.Close();
|
||||
|
||||
// Find 4 consecutive zero bytes
|
||||
int cnt = 0;
|
||||
for (int i = 0; i < read; i++)
|
||||
{
|
||||
// Count zero bytes
|
||||
if (buffer[i] == 0)
|
||||
++cnt;
|
||||
else cnt = 0;
|
||||
|
||||
// Found > 4? Most likely binary file
|
||||
if (cnt >= 4)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Not found, probably text file
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,53 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Interop
|
||||
{
|
||||
public class NativeLibrary : IDisposable
|
||||
{
|
||||
#region Imports
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
private static extern IntPtr LoadLibrary(string libname);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
|
||||
private static extern bool FreeLibrary(IntPtr hModule);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
|
||||
private static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
|
||||
|
||||
#endregion
|
||||
|
||||
public string DllName { get; private set; }
|
||||
private IntPtr _handle;
|
||||
|
||||
public NativeLibrary(string dllName)
|
||||
{
|
||||
// Set properties
|
||||
DllName = dllName;
|
||||
|
||||
// Load library
|
||||
_handle = LoadLibrary(DllName);
|
||||
if (_handle == IntPtr.Zero)
|
||||
{
|
||||
int errorCode = Marshal.GetLastWin32Error();
|
||||
throw new BadImageFormatException(string.Format("Failed to load library (ErrorCode: {0})", errorCode));
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_handle != IntPtr.Zero)
|
||||
FreeLibrary(_handle);
|
||||
}
|
||||
|
||||
public Delegate GetFunctionByName(string name, Type delegateType)
|
||||
{
|
||||
IntPtr addr = GetProcAddress(_handle, name);
|
||||
return Marshal.GetDelegateForFunctionPointer(addr, delegateType);
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterStudio.Interop
|
||||
{
|
||||
public class NativeLibrary : IDisposable
|
||||
{
|
||||
#region Imports
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
private static extern IntPtr LoadLibrary(string libname);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
|
||||
private static extern bool FreeLibrary(IntPtr hModule);
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
|
||||
private static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
|
||||
|
||||
#endregion
|
||||
|
||||
public string DllName { get; private set; }
|
||||
private IntPtr _handle;
|
||||
|
||||
public NativeLibrary(string dllName)
|
||||
{
|
||||
// Set properties
|
||||
DllName = dllName;
|
||||
|
||||
// Load library
|
||||
_handle = LoadLibrary(DllName);
|
||||
if (_handle == IntPtr.Zero)
|
||||
{
|
||||
int errorCode = Marshal.GetLastWin32Error();
|
||||
throw new BadImageFormatException(string.Format("Failed to load library (ErrorCode: {0})", errorCode));
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_handle != IntPtr.Zero)
|
||||
FreeLibrary(_handle);
|
||||
}
|
||||
|
||||
public Delegate GetFunctionByName(string name, Type delegateType)
|
||||
{
|
||||
IntPtr addr = GetProcAddress(_handle, name);
|
||||
return Marshal.GetDelegateForFunctionPointer(addr, delegateType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2008 Ricardo Amores Hernández
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2008 Ricardo Amores Hernández
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -1,14 +1,14 @@
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public class DocumentFormat
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public ImageSource Icon { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string DefaultExtension { get; set; }
|
||||
public IDocumentEditorFactory Factory { get; set; }
|
||||
public string Category { get; set; }
|
||||
}
|
||||
}
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public class DocumentFormat
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public ImageSource Icon { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string DefaultExtension { get; set; }
|
||||
public IDocumentEditorFactory Factory { get; set; }
|
||||
public string Category { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Model.Events
|
||||
{
|
||||
public class DocumentOpenedEventArgs : EventArgs
|
||||
{
|
||||
public IDocumentEditor Editor { get; private set; }
|
||||
|
||||
public DocumentOpenedEventArgs(IDocumentEditor editor)
|
||||
{
|
||||
Editor = editor;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterStudio.Model.Events
|
||||
{
|
||||
public class DocumentOpenedEventArgs : EventArgs
|
||||
{
|
||||
public IDocumentEditor Editor { get; private set; }
|
||||
|
||||
public DocumentOpenedEventArgs(IDocumentEditor editor)
|
||||
{
|
||||
Editor = editor;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public interface IDocument
|
||||
{
|
||||
string Name { get; }
|
||||
string FilePath { get; }
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public interface IDocument
|
||||
{
|
||||
string Name { get; }
|
||||
string FilePath { get; }
|
||||
}
|
||||
}
|
||||
@@ -1,136 +1,136 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public abstract class IDocumentEditor : IDisposable
|
||||
{
|
||||
#region Dirty flag
|
||||
|
||||
private bool _dirty = false;
|
||||
|
||||
/// <summary>
|
||||
/// Gets a flag indicating if the active document is dirty (modified and not saved)
|
||||
/// </summary>
|
||||
public virtual bool Dirty
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dirty;
|
||||
}
|
||||
protected set
|
||||
{
|
||||
_dirty = value;
|
||||
if (DirtyChanged != null)
|
||||
DirtyChanged(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Triggered when the dirty flag changes
|
||||
/// </summary>
|
||||
public event EventHandler DirtyChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Document
|
||||
|
||||
/// <summary>
|
||||
/// Gets the opened document
|
||||
/// </summary>
|
||||
public abstract IDocument Document { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the title to be displayed in the title bar
|
||||
/// </summary>
|
||||
public abstract string Title { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Triggered when the title changes
|
||||
/// </summary>
|
||||
public event EventHandler TitleChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region EditorUI
|
||||
|
||||
/// <summary>
|
||||
/// Gets the editor UI
|
||||
/// </summary>
|
||||
public abstract UIElement EditorUI { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Selection properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating if this editor uses the selection properties window
|
||||
/// </summary>
|
||||
public virtual bool UsesSelectionProperties
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name of the selected object
|
||||
/// </summary>
|
||||
public virtual string SelectionName
|
||||
{
|
||||
get
|
||||
{
|
||||
return String.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of properties for the currently selected object
|
||||
/// </summary>
|
||||
public virtual IEnumerable<string> SelectionProperties
|
||||
{
|
||||
get
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Triggered when the selected object changes (used to update properties)
|
||||
/// </summary>
|
||||
public event EventHandler SelectionChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Toolbox
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of items to populate the toolbox
|
||||
/// </summary>
|
||||
public virtual IEnumerable<string> ToolboxItems
|
||||
{
|
||||
get
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler ToolboxChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Dispose
|
||||
/// <summary>
|
||||
/// Dispose
|
||||
/// </summary>
|
||||
public virtual void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public abstract class IDocumentEditor : IDisposable
|
||||
{
|
||||
#region Dirty flag
|
||||
|
||||
private bool _dirty = false;
|
||||
|
||||
/// <summary>
|
||||
/// Gets a flag indicating if the active document is dirty (modified and not saved)
|
||||
/// </summary>
|
||||
public virtual bool Dirty
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dirty;
|
||||
}
|
||||
protected set
|
||||
{
|
||||
_dirty = value;
|
||||
if (DirtyChanged != null)
|
||||
DirtyChanged(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Triggered when the dirty flag changes
|
||||
/// </summary>
|
||||
public event EventHandler DirtyChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Document
|
||||
|
||||
/// <summary>
|
||||
/// Gets the opened document
|
||||
/// </summary>
|
||||
public abstract IDocument Document { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the title to be displayed in the title bar
|
||||
/// </summary>
|
||||
public abstract string Title { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Triggered when the title changes
|
||||
/// </summary>
|
||||
public event EventHandler TitleChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region EditorUI
|
||||
|
||||
/// <summary>
|
||||
/// Gets the editor UI
|
||||
/// </summary>
|
||||
public abstract UIElement EditorUI { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Selection properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating if this editor uses the selection properties window
|
||||
/// </summary>
|
||||
public virtual bool UsesSelectionProperties
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name of the selected object
|
||||
/// </summary>
|
||||
public virtual string SelectionName
|
||||
{
|
||||
get
|
||||
{
|
||||
return String.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of properties for the currently selected object
|
||||
/// </summary>
|
||||
public virtual IEnumerable<string> SelectionProperties
|
||||
{
|
||||
get
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Triggered when the selected object changes (used to update properties)
|
||||
/// </summary>
|
||||
public event EventHandler SelectionChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Toolbox
|
||||
|
||||
/// <summary>
|
||||
/// Gets a list of items to populate the toolbox
|
||||
/// </summary>
|
||||
public virtual IEnumerable<string> ToolboxItems
|
||||
{
|
||||
get
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler ToolboxChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Dispose
|
||||
/// <summary>
|
||||
/// Dispose
|
||||
/// </summary>
|
||||
public virtual void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,39 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Storage;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public interface IDocumentEditorFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Name of the editor
|
||||
/// </summary>
|
||||
string EditorName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Formats that will be used to populate the 'create document' dialog
|
||||
/// </summary>
|
||||
IEnumerable<DocumentFormat> CreateDocumentFormats { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new editor object
|
||||
/// </summary>
|
||||
/// <param name="document">Document to be edited by the editor</param>
|
||||
/// <returns>A new document editor</returns>
|
||||
IDocumentEditor CreateEditor(IDocument document);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new document
|
||||
/// </summary>
|
||||
/// <returns>A new document</returns>
|
||||
IDocument CreateDocument(DocumentFormat format, string path);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the storage of this factory
|
||||
/// </summary>
|
||||
IDocumentStorage Storage { get; }
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Storage;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public interface IDocumentEditorFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Name of the editor
|
||||
/// </summary>
|
||||
string EditorName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Formats that will be used to populate the 'create document' dialog
|
||||
/// </summary>
|
||||
IEnumerable<DocumentFormat> CreateDocumentFormats { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new editor object
|
||||
/// </summary>
|
||||
/// <param name="document">Document to be edited by the editor</param>
|
||||
/// <returns>A new document editor</returns>
|
||||
IDocumentEditor CreateEditor(IDocument document);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new document
|
||||
/// </summary>
|
||||
/// <returns>A new document</returns>
|
||||
IDocument CreateDocument(DocumentFormat format, string path);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the storage of this factory
|
||||
/// </summary>
|
||||
IDocumentStorage Storage { get; }
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,26 @@
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public interface IDocumentStorage
|
||||
{
|
||||
/// <summary>
|
||||
/// Reads a document from file
|
||||
/// </summary>
|
||||
/// <param name="path">Path to file</param>
|
||||
/// <returns>Read document</returns>
|
||||
IDocument Read(string path);
|
||||
|
||||
/// <summary>
|
||||
/// Writes a document to a file
|
||||
/// </summary>
|
||||
/// <param name="path">Path to file</param>
|
||||
/// <param name="document">Document to write</param>
|
||||
void Write(string path, IDocument document);
|
||||
|
||||
/// <summary>
|
||||
/// Tests if the file can be read by this storage
|
||||
/// </summary>
|
||||
/// <param name="path">Path to file</param>
|
||||
/// <returns>True if file can be read</returns>
|
||||
bool CanRead(string path);
|
||||
}
|
||||
}
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public interface IDocumentStorage
|
||||
{
|
||||
/// <summary>
|
||||
/// Reads a document from file
|
||||
/// </summary>
|
||||
/// <param name="path">Path to file</param>
|
||||
/// <returns>Read document</returns>
|
||||
IDocument Read(string path);
|
||||
|
||||
/// <summary>
|
||||
/// Writes a document to a file
|
||||
/// </summary>
|
||||
/// <param name="path">Path to file</param>
|
||||
/// <param name="document">Document to write</param>
|
||||
void Write(string path, IDocument document);
|
||||
|
||||
/// <summary>
|
||||
/// Tests if the file can be read by this storage
|
||||
/// </summary>
|
||||
/// <param name="path">Path to file</param>
|
||||
/// <returns>True if file can be read</returns>
|
||||
bool CanRead(string path);
|
||||
}
|
||||
}
|
||||
@@ -1,114 +1,114 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public class Project
|
||||
{
|
||||
[XmlElement("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[XmlElement("author")]
|
||||
public string Author { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public Version Version { get; set; }
|
||||
|
||||
[XmlElement("version")]
|
||||
public string VersionString
|
||||
{
|
||||
get
|
||||
{
|
||||
return Version.ToString();
|
||||
}
|
||||
set
|
||||
{
|
||||
Version = new Version(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlElement("autoLoadFile")]
|
||||
public Reference AutoLoadFile { get; set; }
|
||||
|
||||
[XmlArray("variableFiles")]
|
||||
public List<Reference> VariableFiles { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public Version MinimumRainmeter { get; set; }
|
||||
|
||||
[XmlElement("minimumRainmeter")]
|
||||
public string MinimumRainmeterString
|
||||
{
|
||||
get
|
||||
{
|
||||
return MinimumRainmeter.ToString();
|
||||
}
|
||||
set
|
||||
{
|
||||
MinimumRainmeter = new Version(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlIgnore]
|
||||
public Version MinimumWindows { get; set; }
|
||||
|
||||
[XmlElement("minimumWindows")]
|
||||
public string MinimumWindowsString
|
||||
{
|
||||
get
|
||||
{
|
||||
return MinimumWindows.ToString();
|
||||
}
|
||||
set
|
||||
{
|
||||
MinimumWindows = new Version(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlElement("root")]
|
||||
public Tree<Reference> Root { get; set; }
|
||||
|
||||
public Project()
|
||||
{
|
||||
Root = new Tree<Reference>();
|
||||
VariableFiles = new List<Reference>();
|
||||
Version = new Version();
|
||||
MinimumRainmeter = new Version("3.1");
|
||||
MinimumWindows = new Version("5.1");
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
Project other = obj as Project;
|
||||
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
bool res = String.Equals(Author, other.Author);
|
||||
res &= Reference.Equals(AutoLoadFile, other.AutoLoadFile);
|
||||
res &= Version.Equals(MinimumRainmeter, other.MinimumRainmeter);
|
||||
res &= Version.Equals(MinimumWindows, other.MinimumWindows);
|
||||
res &= String.Equals(Name, other.Name);
|
||||
res &= Tree<Reference>.Equals(Root, other.Root);
|
||||
res &= Version.Equals(Version, other.Version);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
int hash = (Author == null) ? 0 : Author.GetHashCode();
|
||||
hash = hash * 7 + ((AutoLoadFile == null) ? 0 : AutoLoadFile.GetHashCode());
|
||||
hash = hash * 7 + ((MinimumRainmeter == null) ? 0 : MinimumRainmeter.GetHashCode());
|
||||
hash = hash * 7 + ((MinimumWindows == null) ? 0 : MinimumWindows.GetHashCode());
|
||||
hash = hash * 7 + ((Name == null) ? 0 : Name.GetHashCode());
|
||||
hash = hash * 7 + ((Root == null) ? 0 : Root.GetHashCode());
|
||||
hash = hash * 7 + ((Version == null) ? 0 : Version.GetHashCode());
|
||||
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public class Project
|
||||
{
|
||||
[XmlElement("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[XmlElement("author")]
|
||||
public string Author { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public Version Version { get; set; }
|
||||
|
||||
[XmlElement("version")]
|
||||
public string VersionString
|
||||
{
|
||||
get
|
||||
{
|
||||
return Version.ToString();
|
||||
}
|
||||
set
|
||||
{
|
||||
Version = new Version(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlElement("autoLoadFile")]
|
||||
public Reference AutoLoadFile { get; set; }
|
||||
|
||||
[XmlArray("variableFiles")]
|
||||
public List<Reference> VariableFiles { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public Version MinimumRainmeter { get; set; }
|
||||
|
||||
[XmlElement("minimumRainmeter")]
|
||||
public string MinimumRainmeterString
|
||||
{
|
||||
get
|
||||
{
|
||||
return MinimumRainmeter.ToString();
|
||||
}
|
||||
set
|
||||
{
|
||||
MinimumRainmeter = new Version(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlIgnore]
|
||||
public Version MinimumWindows { get; set; }
|
||||
|
||||
[XmlElement("minimumWindows")]
|
||||
public string MinimumWindowsString
|
||||
{
|
||||
get
|
||||
{
|
||||
return MinimumWindows.ToString();
|
||||
}
|
||||
set
|
||||
{
|
||||
MinimumWindows = new Version(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlElement("root")]
|
||||
public Tree<Reference> Root { get; set; }
|
||||
|
||||
public Project()
|
||||
{
|
||||
Root = new Tree<Reference>();
|
||||
VariableFiles = new List<Reference>();
|
||||
Version = new Version();
|
||||
MinimumRainmeter = new Version("3.1");
|
||||
MinimumWindows = new Version("5.1");
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
Project other = obj as Project;
|
||||
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
bool res = String.Equals(Author, other.Author);
|
||||
res &= Reference.Equals(AutoLoadFile, other.AutoLoadFile);
|
||||
res &= Version.Equals(MinimumRainmeter, other.MinimumRainmeter);
|
||||
res &= Version.Equals(MinimumWindows, other.MinimumWindows);
|
||||
res &= String.Equals(Name, other.Name);
|
||||
res &= Tree<Reference>.Equals(Root, other.Root);
|
||||
res &= Version.Equals(Version, other.Version);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
int hash = (Author == null) ? 0 : Author.GetHashCode();
|
||||
hash = hash * 7 + ((AutoLoadFile == null) ? 0 : AutoLoadFile.GetHashCode());
|
||||
hash = hash * 7 + ((MinimumRainmeter == null) ? 0 : MinimumRainmeter.GetHashCode());
|
||||
hash = hash * 7 + ((MinimumWindows == null) ? 0 : MinimumWindows.GetHashCode());
|
||||
hash = hash * 7 + ((Name == null) ? 0 : Name.GetHashCode());
|
||||
hash = hash * 7 + ((Root == null) ? 0 : Root.GetHashCode());
|
||||
hash = hash * 7 + ((Version == null) ? 0 : Version.GetHashCode());
|
||||
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public class Property
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
private object _value;
|
||||
public object Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return _value;
|
||||
}
|
||||
set
|
||||
{
|
||||
_value = value;
|
||||
|
||||
if (ValueChanged != null)
|
||||
ValueChanged(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler ValueChanged;
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public class Property
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
private object _value;
|
||||
public object Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return _value;
|
||||
}
|
||||
set
|
||||
{
|
||||
_value = value;
|
||||
|
||||
if (ValueChanged != null)
|
||||
ValueChanged(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler ValueChanged;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public class RainmeterConfig
|
||||
{
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public class RainmeterConfig
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,50 +1,50 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// Reference to a file or folder
|
||||
/// </summary>
|
||||
public class Reference
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[XmlAttribute("path")]
|
||||
public string Path { get; set; }
|
||||
|
||||
public Reference()
|
||||
{
|
||||
}
|
||||
|
||||
public Reference(string name, string path = null)
|
||||
{
|
||||
Name = name;
|
||||
Path = path;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
var other = obj as Reference;
|
||||
|
||||
// Types are different, so not equal
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
// Compare using string equals
|
||||
return String.Equals(Name, other.Name) && String.Equals(Path, other.Path);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
int hash = (Name == null) ? 0 : Name.GetHashCode();
|
||||
hash = hash * 7 + ((Path == null) ? 0 : Path.GetHashCode());
|
||||
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// Reference to a file or folder
|
||||
/// </summary>
|
||||
public class Reference
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[XmlAttribute("path")]
|
||||
public string Path { get; set; }
|
||||
|
||||
public Reference()
|
||||
{
|
||||
}
|
||||
|
||||
public Reference(string name, string path = null)
|
||||
{
|
||||
Name = name;
|
||||
Path = path;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
var other = obj as Reference;
|
||||
|
||||
// Types are different, so not equal
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
// Compare using string equals
|
||||
return String.Equals(Name, other.Name) && String.Equals(Path, other.Path);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
int hash = (Name == null) ? 0 : Name.GetHashCode();
|
||||
hash = hash * 7 + ((Path == null) ? 0 : Path.GetHashCode());
|
||||
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,153 +1,153 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RainmeterEditor.Model
|
||||
{
|
||||
public class Tree<T>
|
||||
{
|
||||
[XmlElement("data")]
|
||||
public T Data { get; set; }
|
||||
|
||||
[XmlArray("children"), XmlArrayItem("child")]
|
||||
public List<Tree<T>> Children { get; set; }
|
||||
|
||||
public Tree()
|
||||
{
|
||||
Children = new List<Tree<T>>();
|
||||
Data = default(T);
|
||||
}
|
||||
|
||||
public Tree(T data)
|
||||
{
|
||||
Children = new List<Tree<T>>();
|
||||
Data = data;
|
||||
}
|
||||
|
||||
public int IndexOf(Tree<T> item)
|
||||
{
|
||||
return Children.IndexOf(item);
|
||||
}
|
||||
|
||||
public void Insert(int index, Tree<T> item)
|
||||
{
|
||||
Children.Insert(index, item);
|
||||
}
|
||||
|
||||
public void RemoveAt(int index)
|
||||
{
|
||||
Children.RemoveAt(index);
|
||||
}
|
||||
|
||||
public Tree<T> this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return Children[index];
|
||||
}
|
||||
set
|
||||
{
|
||||
Children[index] = value;
|
||||
}
|
||||
}
|
||||
|
||||
public void Add(Tree<T> item)
|
||||
{
|
||||
Children.Add(item);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
Children.Clear();
|
||||
}
|
||||
|
||||
public bool Contains(Tree<T> item)
|
||||
{
|
||||
return Children.Contains(item);
|
||||
}
|
||||
|
||||
public void CopyTo(Tree<T>[] array, int arrayIndex)
|
||||
{
|
||||
Children.CopyTo(array, arrayIndex);
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { return Children.Count; }
|
||||
}
|
||||
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
public bool Remove(Tree<T> item)
|
||||
{
|
||||
return Children.Remove(item);
|
||||
}
|
||||
|
||||
public IEnumerator<Tree<T>> GetEnumerator()
|
||||
{
|
||||
return Children.GetEnumerator();
|
||||
}
|
||||
|
||||
public int IndexOf(T item)
|
||||
{
|
||||
return Children.IndexOf(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public void Insert(int index, T item)
|
||||
{
|
||||
Children.Insert(index, new Tree<T>(item));
|
||||
}
|
||||
|
||||
public void Add(T item)
|
||||
{
|
||||
Children.Add(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public bool Contains(T item)
|
||||
{
|
||||
return Children.Contains(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public void CopyTo(T[] array, int arrayIndex)
|
||||
{
|
||||
foreach (var node in Children)
|
||||
array[arrayIndex++] = node.Data;
|
||||
}
|
||||
|
||||
public bool Remove(T item)
|
||||
{
|
||||
return Children.Remove(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
Tree<T> other = obj as Tree<T>;
|
||||
|
||||
// Types are different, so not equal
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
// Compare data
|
||||
if (!object.Equals(Data, other.Data))
|
||||
return false;
|
||||
|
||||
// Compare children array
|
||||
return Children.SequenceEqual(other.Children);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
int hash = ((Data == null) ? 0 : Data.GetHashCode());
|
||||
|
||||
foreach (var c in Children)
|
||||
hash = hash * 7 + c.GetHashCode();
|
||||
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RainmeterStudio.Model
|
||||
{
|
||||
public class Tree<T>
|
||||
{
|
||||
[XmlElement("data")]
|
||||
public T Data { get; set; }
|
||||
|
||||
[XmlArray("children"), XmlArrayItem("child")]
|
||||
public List<Tree<T>> Children { get; set; }
|
||||
|
||||
public Tree()
|
||||
{
|
||||
Children = new List<Tree<T>>();
|
||||
Data = default(T);
|
||||
}
|
||||
|
||||
public Tree(T data)
|
||||
{
|
||||
Children = new List<Tree<T>>();
|
||||
Data = data;
|
||||
}
|
||||
|
||||
public int IndexOf(Tree<T> item)
|
||||
{
|
||||
return Children.IndexOf(item);
|
||||
}
|
||||
|
||||
public void Insert(int index, Tree<T> item)
|
||||
{
|
||||
Children.Insert(index, item);
|
||||
}
|
||||
|
||||
public void RemoveAt(int index)
|
||||
{
|
||||
Children.RemoveAt(index);
|
||||
}
|
||||
|
||||
public Tree<T> this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return Children[index];
|
||||
}
|
||||
set
|
||||
{
|
||||
Children[index] = value;
|
||||
}
|
||||
}
|
||||
|
||||
public void Add(Tree<T> item)
|
||||
{
|
||||
Children.Add(item);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
Children.Clear();
|
||||
}
|
||||
|
||||
public bool Contains(Tree<T> item)
|
||||
{
|
||||
return Children.Contains(item);
|
||||
}
|
||||
|
||||
public void CopyTo(Tree<T>[] array, int arrayIndex)
|
||||
{
|
||||
Children.CopyTo(array, arrayIndex);
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { return Children.Count; }
|
||||
}
|
||||
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
public bool Remove(Tree<T> item)
|
||||
{
|
||||
return Children.Remove(item);
|
||||
}
|
||||
|
||||
public IEnumerator<Tree<T>> GetEnumerator()
|
||||
{
|
||||
return Children.GetEnumerator();
|
||||
}
|
||||
|
||||
public int IndexOf(T item)
|
||||
{
|
||||
return Children.IndexOf(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public void Insert(int index, T item)
|
||||
{
|
||||
Children.Insert(index, new Tree<T>(item));
|
||||
}
|
||||
|
||||
public void Add(T item)
|
||||
{
|
||||
Children.Add(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public bool Contains(T item)
|
||||
{
|
||||
return Children.Contains(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public void CopyTo(T[] array, int arrayIndex)
|
||||
{
|
||||
foreach (var node in Children)
|
||||
array[arrayIndex++] = node.Data;
|
||||
}
|
||||
|
||||
public bool Remove(T item)
|
||||
{
|
||||
return Children.Remove(new Tree<T>(item));
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
Tree<T> other = obj as Tree<T>;
|
||||
|
||||
// Types are different, so not equal
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
// Compare data
|
||||
if (!object.Equals(Data, other.Data))
|
||||
return false;
|
||||
|
||||
// Compare children array
|
||||
return Children.SequenceEqual(other.Children);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
int hash = ((Data == null) ? 0 : Data.GetHashCode());
|
||||
|
||||
foreach (var c in Children)
|
||||
hash = hash * 7 + c.GetHashCode();
|
||||
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,55 +1,55 @@
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RainmeterEditor")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RainmeterEditor")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
//In order to begin building localizable applications, set
|
||||
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
|
||||
//inside a <PropertyGroup>. For example, if you are using US english
|
||||
//in your source files, set the <UICulture> to en-US. Then uncomment
|
||||
//the NeutralResourceLanguage attribute below. Update the "en-US" in
|
||||
//the line below to match the UICulture setting in the project file.
|
||||
|
||||
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
|
||||
|
||||
|
||||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
||||
//(used if a resource is not found in the page,
|
||||
// or application resource dictionaries)
|
||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
||||
//(used if a resource is not found in the page,
|
||||
// app, or any theme specific resource dictionaries)
|
||||
)]
|
||||
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RainmeterStudio")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RainmeterStudio")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
//In order to begin building localizable applications, set
|
||||
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
|
||||
//inside a <PropertyGroup>. For example, if you are using US english
|
||||
//in your source files, set the <UICulture> to en-US. Then uncomment
|
||||
//the NeutralResourceLanguage attribute below. Update the "en-US" in
|
||||
//the line below to match the UICulture setting in the project file.
|
||||
|
||||
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
|
||||
|
||||
|
||||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
||||
//(used if a resource is not found in the page,
|
||||
// or application resource dictionaries)
|
||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
||||
//(used if a resource is not found in the page,
|
||||
// app, or any theme specific resource dictionaries)
|
||||
)]
|
||||
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,63 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterEditor.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterEditor.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterStudio.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterStudio.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,117 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -1,26 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterEditor.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterStudio.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -1,59 +1,59 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Interop;
|
||||
|
||||
namespace RainmeterEditor
|
||||
{
|
||||
class Rainmeter
|
||||
{
|
||||
#region Imports
|
||||
|
||||
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern IntPtr Rainmeter_Initialize();
|
||||
|
||||
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern void Rainmeter_Finalize(IntPtr handle);
|
||||
|
||||
#endregion
|
||||
|
||||
private static Rainmeter _instance = null;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the single instance of this class
|
||||
/// </summary>
|
||||
public static Rainmeter Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
_instance = new Rainmeter();
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
private IntPtr _handle;
|
||||
|
||||
#region Constructor, finalizer
|
||||
|
||||
private Rainmeter()
|
||||
{
|
||||
_handle = Rainmeter_Initialize();
|
||||
|
||||
if (_handle == IntPtr.Zero)
|
||||
throw new Exception("Failed to initialize native library.");
|
||||
}
|
||||
|
||||
~Rainmeter()
|
||||
{
|
||||
Rainmeter_Finalize(_handle);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public IntPtr Handle { get { return _handle; } }
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Interop;
|
||||
|
||||
namespace RainmeterStudio
|
||||
{
|
||||
class Rainmeter
|
||||
{
|
||||
#region Imports
|
||||
|
||||
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern IntPtr Rainmeter_Initialize();
|
||||
|
||||
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern void Rainmeter_Finalize(IntPtr handle);
|
||||
|
||||
#endregion
|
||||
|
||||
private static Rainmeter _instance = null;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the single instance of this class
|
||||
/// </summary>
|
||||
public static Rainmeter Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
_instance = new Rainmeter();
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
private IntPtr _handle;
|
||||
|
||||
#region Constructor, finalizer
|
||||
|
||||
private Rainmeter()
|
||||
{
|
||||
_handle = Rainmeter_Initialize();
|
||||
|
||||
if (_handle == IntPtr.Zero)
|
||||
throw new Exception("Failed to initialize native library.");
|
||||
}
|
||||
|
||||
~Rainmeter()
|
||||
{
|
||||
Rainmeter_Finalize(_handle);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public IntPtr Handle { get { return _handle; } }
|
||||
}
|
||||
}
|
||||
@@ -1,214 +1,214 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{438D0136-4A27-4E4D-A617-FFACE4554236}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RainmeterEditor</RootNamespace>
|
||||
<AssemblyName>RainmeterEditor</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\x32-Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="INIFileParser">
|
||||
<HintPath>..\packages\ini-parser.2.1.1\lib\INIFileParser.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="Xceed.Wpf.AvalonDock">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Expression">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Expression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="Business\DocumentManager.cs" />
|
||||
<Compile Include="Business\ProjectManager.cs" />
|
||||
<Compile Include="Documents\Text\TextDocument.cs" />
|
||||
<Compile Include="Documents\Text\TextEditorControl.xaml.cs">
|
||||
<DependentUpon>TextEditorControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Documents\Text\TextStorage.cs" />
|
||||
<Compile Include="Model\DocumentFormat.cs" />
|
||||
<Compile Include="Model\IDocument.cs" />
|
||||
<Compile Include="Model\IDocumentEditor.cs" />
|
||||
<Compile Include="Model\IDocumentEditorFactory.cs" />
|
||||
<Compile Include="Documents\Ini\IniDocument.cs" />
|
||||
<Compile Include="Documents\Ini\IniSkinDesigner.cs" />
|
||||
<Compile Include="Documents\Ini\IniSkinDesignerControl.xaml.cs">
|
||||
<DependentUpon>IniSkinDesignerControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Documents\Ini\IniSkinDesignerFactory.cs" />
|
||||
<Compile Include="Documents\Text\TextEditor.cs" />
|
||||
<Compile Include="Documents\Text\TextEditorFactory.cs" />
|
||||
<Compile Include="Interop\NativeLibrary.cs" />
|
||||
<Compile Include="Model\Project.cs" />
|
||||
<Compile Include="Model\Property.cs" />
|
||||
<Compile Include="Model\RainmeterConfig.cs" />
|
||||
<Compile Include="Model\Reference.cs" />
|
||||
<Compile Include="Model\Tree.cs" />
|
||||
<Compile Include="Rainmeter.cs" />
|
||||
<Compile Include="Resources\Strings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Strings.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Model\IDocumentStorage.cs" />
|
||||
<Compile Include="Storage\ProjectStorage.cs" />
|
||||
<Compile Include="Storage\SkinDirectory.cs" />
|
||||
<Compile Include="UI\Command.cs" />
|
||||
<Compile Include="UI\Dialogs\CreateDocumentDialog.xaml.cs">
|
||||
<DependentUpon>CreateDocumentDialog.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\Controller\DocumentController.cs" />
|
||||
<Compile Include="Model\Events\DocumentOpenedEventArgs.cs" />
|
||||
<Compile Include="UI\SkinsPanel.xaml.cs">
|
||||
<DependentUpon>SkinsPanel.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Page Include="Documents\Ini\IniSkinDesignerControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Documents\Text\TextEditorControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\Dialogs\CreateDocumentDialog.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\MainWindow.xaml.cs">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Page Include="UI\SkinsPanel.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\Styles\ButtonStyle.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\Styles\Common.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resources\Strings.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.config" />
|
||||
<None Include="LICENSE" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<AppDesigner Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\text_file_32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<SplashScreen Include="Resources\splash.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\arrow_left_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\arrow_right_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\arrow_backward_16.png" />
|
||||
<Resource Include="Resources\Icons\arrow_forward_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\page_white_star_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\project_16.png" />
|
||||
<Resource Include="Resources\Icons\project_star_16.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{438D0136-4A27-4E4D-A617-FFACE4554236}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RainmeterStudio</RootNamespace>
|
||||
<AssemblyName>RainmeterEditor</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\x32-Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="INIFileParser">
|
||||
<HintPath>..\packages\ini-parser.2.1.1\lib\INIFileParser.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="Xceed.Wpf.AvalonDock">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Expression">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Expression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010">
|
||||
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="Business\DocumentManager.cs" />
|
||||
<Compile Include="Business\ProjectManager.cs" />
|
||||
<Compile Include="Documents\Text\TextDocument.cs" />
|
||||
<Compile Include="Documents\Text\TextEditorControl.xaml.cs">
|
||||
<DependentUpon>TextEditorControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Documents\Text\TextStorage.cs" />
|
||||
<Compile Include="Model\DocumentFormat.cs" />
|
||||
<Compile Include="Model\IDocument.cs" />
|
||||
<Compile Include="Model\IDocumentEditor.cs" />
|
||||
<Compile Include="Model\IDocumentEditorFactory.cs" />
|
||||
<Compile Include="Documents\Ini\IniDocument.cs" />
|
||||
<Compile Include="Documents\Ini\IniSkinDesigner.cs" />
|
||||
<Compile Include="Documents\Ini\IniSkinDesignerControl.xaml.cs">
|
||||
<DependentUpon>IniSkinDesignerControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Documents\Ini\IniSkinDesignerFactory.cs" />
|
||||
<Compile Include="Documents\Text\TextEditor.cs" />
|
||||
<Compile Include="Documents\Text\TextEditorFactory.cs" />
|
||||
<Compile Include="Interop\NativeLibrary.cs" />
|
||||
<Compile Include="Model\Project.cs" />
|
||||
<Compile Include="Model\Property.cs" />
|
||||
<Compile Include="Model\RainmeterConfig.cs" />
|
||||
<Compile Include="Model\Reference.cs" />
|
||||
<Compile Include="Model\Tree.cs" />
|
||||
<Compile Include="Rainmeter.cs" />
|
||||
<Compile Include="Resources\Strings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Strings.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Model\IDocumentStorage.cs" />
|
||||
<Compile Include="Storage\ProjectStorage.cs" />
|
||||
<Compile Include="Storage\SkinDirectory.cs" />
|
||||
<Compile Include="UI\Command.cs" />
|
||||
<Compile Include="UI\Dialogs\CreateDocumentDialog.xaml.cs">
|
||||
<DependentUpon>CreateDocumentDialog.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\Controller\DocumentController.cs" />
|
||||
<Compile Include="Model\Events\DocumentOpenedEventArgs.cs" />
|
||||
<Compile Include="UI\SkinsPanel.xaml.cs">
|
||||
<DependentUpon>SkinsPanel.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Page Include="Documents\Ini\IniSkinDesignerControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Documents\Text\TextEditorControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\Dialogs\CreateDocumentDialog.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\MainWindow.xaml.cs">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Page Include="UI\SkinsPanel.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\Styles\ButtonStyle.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UI\Styles\Common.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resources\Strings.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.config" />
|
||||
<None Include="LICENSE" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<AppDesigner Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\text_file_32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<SplashScreen Include="Resources\splash.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\arrow_left_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\arrow_right_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\arrow_backward_16.png" />
|
||||
<Resource Include="Resources\Icons\arrow_forward_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\page_white_star_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons\project_16.png" />
|
||||
<Resource Include="Resources\Icons\project_star_16.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
|
Before Width: | Height: | Size: 343 B After Width: | Height: | Size: 343 B |
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 375 B |
|
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 345 B |
|
Before Width: | Height: | Size: 349 B After Width: | Height: | Size: 349 B |
|
Before Width: | Height: | Size: 565 B After Width: | Height: | Size: 565 B |
|
Before Width: | Height: | Size: 724 B After Width: | Height: | Size: 724 B |
|
Before Width: | Height: | Size: 742 B After Width: | Height: | Size: 742 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -1,117 +1,117 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterEditor.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Strings {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Strings() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterEditor.Resources.Strings", typeof(Strings).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Utility.
|
||||
/// </summary>
|
||||
internal static string Category_Utility {
|
||||
get {
|
||||
return ResourceManager.GetString("Category_Utility", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to _File....
|
||||
/// </summary>
|
||||
internal static string DocumentCreateCommand_DisplayText {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentCreateCommand_DisplayText", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Creates a new file.
|
||||
/// </summary>
|
||||
internal static string DocumentCreateCommand_ToolTip {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentCreateCommand_ToolTip", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Text Editor.
|
||||
/// </summary>
|
||||
internal static string DocumentEditor_Text_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentEditor_Text_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Blank text file.
|
||||
/// </summary>
|
||||
internal static string DocumentFormat_TextFile_Description {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentFormat_TextFile_Description", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Text file.
|
||||
/// </summary>
|
||||
internal static string DocumentFormat_TextFile_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentFormat_TextFile_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RainmeterStudio.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Strings {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Strings() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterStudio.Resources.Strings", typeof(Strings).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Utility.
|
||||
/// </summary>
|
||||
internal static string Category_Utility {
|
||||
get {
|
||||
return ResourceManager.GetString("Category_Utility", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to _File....
|
||||
/// </summary>
|
||||
internal static string DocumentCreateCommand_DisplayText {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentCreateCommand_DisplayText", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Creates a new file.
|
||||
/// </summary>
|
||||
internal static string DocumentCreateCommand_ToolTip {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentCreateCommand_ToolTip", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Text Editor.
|
||||
/// </summary>
|
||||
internal static string DocumentEditor_Text_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentEditor_Text_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Blank text file.
|
||||
/// </summary>
|
||||
internal static string DocumentFormat_TextFile_Description {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentFormat_TextFile_Description", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Text file.
|
||||
/// </summary>
|
||||
internal static string DocumentFormat_TextFile_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("DocumentFormat_TextFile_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,138 +1,138 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Category_Utility" xml:space="preserve">
|
||||
<value>Utility</value>
|
||||
</data>
|
||||
<data name="DocumentCreateCommand_DisplayText" xml:space="preserve">
|
||||
<value>_File...</value>
|
||||
</data>
|
||||
<data name="DocumentCreateCommand_ToolTip" xml:space="preserve">
|
||||
<value>Creates a new file</value>
|
||||
</data>
|
||||
<data name="DocumentEditor_Text_Name" xml:space="preserve">
|
||||
<value>Text Editor</value>
|
||||
</data>
|
||||
<data name="DocumentFormat_TextFile_Description" xml:space="preserve">
|
||||
<value>Blank text file</value>
|
||||
</data>
|
||||
<data name="DocumentFormat_TextFile_Name" xml:space="preserve">
|
||||
<value>Text file</value>
|
||||
</data>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Category_Utility" xml:space="preserve">
|
||||
<value>Utility</value>
|
||||
</data>
|
||||
<data name="DocumentCreateCommand_DisplayText" xml:space="preserve">
|
||||
<value>_File...</value>
|
||||
</data>
|
||||
<data name="DocumentCreateCommand_ToolTip" xml:space="preserve">
|
||||
<value>Creates a new file</value>
|
||||
</data>
|
||||
<data name="DocumentEditor_Text_Name" xml:space="preserve">
|
||||
<value>Text Editor</value>
|
||||
</data>
|
||||
<data name="DocumentFormat_TextFile_Description" xml:space="preserve">
|
||||
<value>Blank text file</value>
|
||||
</data>
|
||||
<data name="DocumentFormat_TextFile_Name" xml:space="preserve">
|
||||
<value>Text file</value>
|
||||
</data>
|
||||
</root>
|
||||
|
Before Width: | Height: | Size: 317 KiB After Width: | Height: | Size: 317 KiB |
@@ -1,40 +1,40 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.Storage
|
||||
{
|
||||
public class ProjectStorage
|
||||
{
|
||||
public Project Load(string path)
|
||||
{
|
||||
// Open file
|
||||
var file = File.OpenText(path);
|
||||
|
||||
// Deserialize file
|
||||
var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project"));
|
||||
Project project = serializer.Deserialize(file) as Project;
|
||||
|
||||
// Clean up
|
||||
file.Close();
|
||||
return project;
|
||||
}
|
||||
|
||||
public void Save(string path, Project project)
|
||||
{
|
||||
// Open file
|
||||
var file = File.OpenWrite(path);
|
||||
|
||||
// Deserialize file
|
||||
var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project"));
|
||||
serializer.Serialize(file, project);
|
||||
|
||||
// Clean up
|
||||
file.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.Storage
|
||||
{
|
||||
public class ProjectStorage
|
||||
{
|
||||
public Project Load(string path)
|
||||
{
|
||||
// Open file
|
||||
var file = File.OpenText(path);
|
||||
|
||||
// Deserialize file
|
||||
var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project"));
|
||||
Project project = serializer.Deserialize(file) as Project;
|
||||
|
||||
// Clean up
|
||||
file.Close();
|
||||
return project;
|
||||
}
|
||||
|
||||
public void Save(string path, Project project)
|
||||
{
|
||||
// Open file
|
||||
var file = File.OpenWrite(path);
|
||||
|
||||
// Deserialize file
|
||||
var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project"));
|
||||
serializer.Serialize(file, project);
|
||||
|
||||
// Clean up
|
||||
file.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterEditor.Storage
|
||||
{
|
||||
public static class SkinDirectory
|
||||
{
|
||||
private static string _path = null;
|
||||
|
||||
public static string Path
|
||||
{
|
||||
get
|
||||
{
|
||||
return "";
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace RainmeterStudio.Storage
|
||||
{
|
||||
public static class SkinDirectory
|
||||
{
|
||||
private static string _path = null;
|
||||
|
||||
public static string Path
|
||||
{
|
||||
get
|
||||
{
|
||||
return "";
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,88 +1,88 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace RainmeterEditor.UI
|
||||
{
|
||||
public class Command : ICommand
|
||||
{
|
||||
#region Private members
|
||||
|
||||
private Action<object> _execute;
|
||||
private Func<object, bool> _canExecute;
|
||||
private Action _executeNoParam;
|
||||
private Func<bool> _canExecuteNoParam;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public properties
|
||||
|
||||
public string Name { get; set; }
|
||||
public string DisplayText { get; set; }
|
||||
public string Tooltip { get; set; }
|
||||
public ImageSource Icon { get; set; }
|
||||
public KeyGesture Shortcut { get; set; }
|
||||
|
||||
public string ShortcutText
|
||||
{
|
||||
get
|
||||
{
|
||||
string text = String.Empty;
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Windows) != 0)
|
||||
text += "Win+";
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Control) != 0)
|
||||
text += "Ctrl+";
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Alt) != 0)
|
||||
text += "Alt+";
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Shift) != 0)
|
||||
text += "Shift+";
|
||||
|
||||
text += Enum.GetName(typeof(Key), Shortcut.Key);
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public event EventHandler CanExecuteChanged;
|
||||
|
||||
public Command(string name = null, Action<object> execute = null, Func<object, bool> canExecute = null)
|
||||
{
|
||||
Name = name;
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
public Command(string name = null, Action execute = null, Func<bool> canExecute = null)
|
||||
{
|
||||
Name = name;
|
||||
_executeNoParam = execute;
|
||||
_canExecuteNoParam = canExecute;
|
||||
}
|
||||
|
||||
public virtual bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute(parameter);
|
||||
else if (_canExecuteNoParam != null)
|
||||
return _canExecuteNoParam();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual void Execute(object parameter)
|
||||
{
|
||||
if (_execute != null)
|
||||
_execute(parameter);
|
||||
else if (_executeNoParam != null)
|
||||
_executeNoParam();
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace RainmeterStudio.UI
|
||||
{
|
||||
public class Command : ICommand
|
||||
{
|
||||
#region Private members
|
||||
|
||||
private Action<object> _execute;
|
||||
private Func<object, bool> _canExecute;
|
||||
private Action _executeNoParam;
|
||||
private Func<bool> _canExecuteNoParam;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public properties
|
||||
|
||||
public string Name { get; set; }
|
||||
public string DisplayText { get; set; }
|
||||
public string Tooltip { get; set; }
|
||||
public ImageSource Icon { get; set; }
|
||||
public KeyGesture Shortcut { get; set; }
|
||||
|
||||
public string ShortcutText
|
||||
{
|
||||
get
|
||||
{
|
||||
string text = String.Empty;
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Windows) != 0)
|
||||
text += "Win+";
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Control) != 0)
|
||||
text += "Ctrl+";
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Alt) != 0)
|
||||
text += "Alt+";
|
||||
|
||||
if ((Shortcut.Modifiers & ModifierKeys.Shift) != 0)
|
||||
text += "Shift+";
|
||||
|
||||
text += Enum.GetName(typeof(Key), Shortcut.Key);
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public event EventHandler CanExecuteChanged;
|
||||
|
||||
public Command(string name = null, Action<object> execute = null, Func<object, bool> canExecute = null)
|
||||
{
|
||||
Name = name;
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
public Command(string name = null, Action execute = null, Func<bool> canExecute = null)
|
||||
{
|
||||
Name = name;
|
||||
_executeNoParam = execute;
|
||||
_canExecuteNoParam = canExecute;
|
||||
}
|
||||
|
||||
public virtual bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute(parameter);
|
||||
else if (_canExecuteNoParam != null)
|
||||
return _canExecuteNoParam();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual void Execute(object parameter)
|
||||
{
|
||||
if (_execute != null)
|
||||
_execute(parameter);
|
||||
else if (_executeNoParam != null)
|
||||
_executeNoParam();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,77 +1,77 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterEditor.Business;
|
||||
using RainmeterEditor.UI.Dialogs;
|
||||
using RainmeterEditor.Model.Events;
|
||||
using RainmeterEditor.Model;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
namespace RainmeterEditor.UI.Controller
|
||||
{
|
||||
public class DocumentController
|
||||
{
|
||||
#region Commands
|
||||
|
||||
public Command DocumentCreateCommand { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public event EventHandler<DocumentOpenedEventArgs> DocumentOpened
|
||||
{
|
||||
add
|
||||
{
|
||||
DocumentManager.Instance.DocumentOpened += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
DocumentManager.Instance.DocumentOpened -= value;
|
||||
}
|
||||
}
|
||||
public event EventHandler DocumentClosed;
|
||||
|
||||
public Window OwnerWindow { get; set; }
|
||||
|
||||
public DocumentController()
|
||||
{
|
||||
DocumentCreateCommand = new Command("DocumentCreateCommand", () => CreateWindow())
|
||||
{
|
||||
DisplayText = Resources.Strings.DocumentCreateCommand_DisplayText,
|
||||
Tooltip = Resources.Strings.DocumentCreateCommand_ToolTip,
|
||||
Icon = new BitmapImage(new Uri("/Resources/Icons/page_white_star_16.png", UriKind.RelativeOrAbsolute)),
|
||||
Shortcut = new KeyGesture(Key.N, ModifierKeys.Control)
|
||||
};
|
||||
}
|
||||
|
||||
public void CreateWindow(DocumentFormat defaultFormat = null, string defaultPath = "")
|
||||
{
|
||||
// Show dialog
|
||||
var dialog = new CreateDocumentDialog()
|
||||
{
|
||||
Owner = OwnerWindow,
|
||||
SelectedFormat = defaultFormat,
|
||||
SelectedPath = defaultPath
|
||||
};
|
||||
bool? res = dialog.ShowDialog();
|
||||
|
||||
if (!res.HasValue || !res.Value)
|
||||
return;
|
||||
|
||||
var format = dialog.SelectedFormat;
|
||||
var path = dialog.SelectedPath;
|
||||
|
||||
// Call manager
|
||||
DocumentManager.Instance.Create(format, path);
|
||||
}
|
||||
|
||||
public void Create(DocumentFormat format, string path)
|
||||
{
|
||||
// Call manager
|
||||
DocumentManager.Instance.Create(format, path);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using RainmeterStudio.Business;
|
||||
using RainmeterStudio.UI.Dialogs;
|
||||
using RainmeterStudio.Model.Events;
|
||||
using RainmeterStudio.Model;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
namespace RainmeterStudio.UI.Controller
|
||||
{
|
||||
public class DocumentController
|
||||
{
|
||||
#region Commands
|
||||
|
||||
public Command DocumentCreateCommand { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public event EventHandler<DocumentOpenedEventArgs> DocumentOpened
|
||||
{
|
||||
add
|
||||
{
|
||||
DocumentManager.Instance.DocumentOpened += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
DocumentManager.Instance.DocumentOpened -= value;
|
||||
}
|
||||
}
|
||||
public event EventHandler DocumentClosed;
|
||||
|
||||
public Window OwnerWindow { get; set; }
|
||||
|
||||
public DocumentController()
|
||||
{
|
||||
DocumentCreateCommand = new Command("DocumentCreateCommand", () => CreateWindow())
|
||||
{
|
||||
DisplayText = Resources.Strings.DocumentCreateCommand_DisplayText,
|
||||
Tooltip = Resources.Strings.DocumentCreateCommand_ToolTip,
|
||||
Icon = new BitmapImage(new Uri("/Resources/Icons/page_white_star_16.png", UriKind.RelativeOrAbsolute)),
|
||||
Shortcut = new KeyGesture(Key.N, ModifierKeys.Control)
|
||||
};
|
||||
}
|
||||
|
||||
public void CreateWindow(DocumentFormat defaultFormat = null, string defaultPath = "")
|
||||
{
|
||||
// Show dialog
|
||||
var dialog = new CreateDocumentDialog()
|
||||
{
|
||||
Owner = OwnerWindow,
|
||||
SelectedFormat = defaultFormat,
|
||||
SelectedPath = defaultPath
|
||||
};
|
||||
bool? res = dialog.ShowDialog();
|
||||
|
||||
if (!res.HasValue || !res.Value)
|
||||
return;
|
||||
|
||||
var format = dialog.SelectedFormat;
|
||||
var path = dialog.SelectedPath;
|
||||
|
||||
// Call manager
|
||||
DocumentManager.Instance.Create(format, path);
|
||||
}
|
||||
|
||||
public void Create(DocumentFormat format, string path)
|
||||
{
|
||||
// Call manager
|
||||
DocumentManager.Instance.Create(format, path);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,64 +1,64 @@
|
||||
<Window x:Class="RainmeterEditor.UI.Dialogs.CreateDocumentDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Create..." Height="250" Width="400"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
WindowStyle="ToolWindow" ShowInTaskbar="False">
|
||||
|
||||
<Grid Background="WhiteSmoke">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<ListView Name="listFormats" Grid.Row="0">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<DockPanel>
|
||||
<Image DockPanel.Dock="Left" Source="{Binding Icon}"
|
||||
Width="32" Height="32" Margin="2"
|
||||
Stretch="Uniform" VerticalAlignment="Top" />
|
||||
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
|
||||
<TextBlock Text="{Binding Description}" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
<ListView.GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock FontWeight="Bold" FontSize="13pt" Text="{Binding Name}" />
|
||||
</DataTemplate>
|
||||
</GroupStyle.HeaderTemplate>
|
||||
</GroupStyle>
|
||||
</ListView.GroupStyle>
|
||||
</ListView>
|
||||
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="0">Path:</TextBlock>
|
||||
<TextBox Name="textPath" Grid.Row="0" Grid.Column="1"></TextBox>
|
||||
<Button Grid.Row="0" Grid.Column="2">...</Button>
|
||||
|
||||
</Grid>
|
||||
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal"
|
||||
HorizontalAlignment="Right">
|
||||
<Button Name="buttonCreate" Click="buttonCreate_Click" IsDefault="True">Create</Button>
|
||||
<Button Name="buttonCancel" Click="buttonCancel_Click" IsCancel="True">Cancel</Button>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</Window>
|
||||
<Window x:Class="RainmeterStudio.UI.Dialogs.CreateDocumentDialog"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Create..." Height="250" Width="400"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
WindowStyle="ToolWindow" ShowInTaskbar="False">
|
||||
|
||||
<Grid Background="WhiteSmoke">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<ListView Name="listFormats" Grid.Row="0">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<DockPanel>
|
||||
<Image DockPanel.Dock="Left" Source="{Binding Icon}"
|
||||
Width="32" Height="32" Margin="2"
|
||||
Stretch="Uniform" VerticalAlignment="Top" />
|
||||
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
|
||||
<TextBlock Text="{Binding Description}" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
<ListView.GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock FontWeight="Bold" FontSize="13pt" Text="{Binding Name}" />
|
||||
</DataTemplate>
|
||||
</GroupStyle.HeaderTemplate>
|
||||
</GroupStyle>
|
||||
</ListView.GroupStyle>
|
||||
</ListView>
|
||||
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="0">Path:</TextBlock>
|
||||
<TextBox Name="textPath" Grid.Row="0" Grid.Column="1"></TextBox>
|
||||
<Button Grid.Row="0" Grid.Column="2">...</Button>
|
||||
|
||||
</Grid>
|
||||
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal"
|
||||
HorizontalAlignment="Right">
|
||||
<Button Name="buttonCreate" Click="buttonCreate_Click" IsDefault="True">Create</Button>
|
||||
<Button Name="buttonCancel" Click="buttonCancel_Click" IsCancel="True">Cancel</Button>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,93 +1,93 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
using RainmeterEditor.Business;
|
||||
using RainmeterEditor.Model;
|
||||
|
||||
namespace RainmeterEditor.UI.Dialogs
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for CreateDocumentDialog.xaml
|
||||
/// </summary>
|
||||
public partial class CreateDocumentDialog : Window
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the currently selected file format
|
||||
/// </summary>
|
||||
public DocumentFormat SelectedFormat
|
||||
{
|
||||
get
|
||||
{
|
||||
return listFormats.SelectedItem as DocumentFormat;
|
||||
}
|
||||
set
|
||||
{
|
||||
listFormats.SelectedItem = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the path
|
||||
/// </summary>
|
||||
public string SelectedPath
|
||||
{
|
||||
get
|
||||
{
|
||||
return textPath.Text;
|
||||
}
|
||||
set
|
||||
{
|
||||
textPath.Text = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance of CreateDocumentDialog
|
||||
/// </summary>
|
||||
public CreateDocumentDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
PopulateFormats();
|
||||
Validate();
|
||||
}
|
||||
|
||||
private void PopulateFormats()
|
||||
{
|
||||
listFormats.ItemsSource = DocumentManager.Instance.DocumentFormats;
|
||||
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(listFormats.ItemsSource);
|
||||
view.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
|
||||
}
|
||||
|
||||
private void buttonCreate_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogResult = true;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void buttonCancel_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogResult = false;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void Validate()
|
||||
{
|
||||
bool res = true;
|
||||
res &= !String.IsNullOrWhiteSpace(textPath.Text);
|
||||
res &= (listFormats.SelectedItem != null);
|
||||
|
||||
buttonCreate.IsEnabled = res;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
using RainmeterStudio.Business;
|
||||
using RainmeterStudio.Model;
|
||||
|
||||
namespace RainmeterStudio.UI.Dialogs
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for CreateDocumentDialog.xaml
|
||||
/// </summary>
|
||||
public partial class CreateDocumentDialog : Window
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the currently selected file format
|
||||
/// </summary>
|
||||
public DocumentFormat SelectedFormat
|
||||
{
|
||||
get
|
||||
{
|
||||
return listFormats.SelectedItem as DocumentFormat;
|
||||
}
|
||||
set
|
||||
{
|
||||
listFormats.SelectedItem = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the path
|
||||
/// </summary>
|
||||
public string SelectedPath
|
||||
{
|
||||
get
|
||||
{
|
||||
return textPath.Text;
|
||||
}
|
||||
set
|
||||
{
|
||||
textPath.Text = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance of CreateDocumentDialog
|
||||
/// </summary>
|
||||
public CreateDocumentDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
PopulateFormats();
|
||||
Validate();
|
||||
}
|
||||
|
||||
private void PopulateFormats()
|
||||
{
|
||||
listFormats.ItemsSource = DocumentManager.Instance.DocumentFormats;
|
||||
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(listFormats.ItemsSource);
|
||||
view.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
|
||||
}
|
||||
|
||||
private void buttonCreate_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogResult = true;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void buttonCancel_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogResult = false;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void Validate()
|
||||
{
|
||||
bool res = true;
|
||||
res &= !String.IsNullOrWhiteSpace(textPath.Text);
|
||||
res &= (listFormats.SelectedItem != null);
|
||||
|
||||
buttonCreate.IsEnabled = res;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,116 +1,116 @@
|
||||
<Window x:Class="RainmeterEditor.UI.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:ui="clr-namespace:RainmeterEditor.UI"
|
||||
xmlns:ad="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.AvalonDock"
|
||||
xmlns:adlayout="clr-namespace:Xceed.Wpf.AvalonDock.Layout;assembly=Xceed.Wpf.AvalonDock"
|
||||
Title="Rainmeter Studio" Height="350" Width="525"
|
||||
ResizeMode="CanResizeWithGrip" >
|
||||
|
||||
<Window.Resources>
|
||||
|
||||
</Window.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Menu bar -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Toolbar -->
|
||||
<RowDefinition />
|
||||
<!-- Dock area -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Status bar -->
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Menu bar -->
|
||||
<Menu Grid.Row="0" Grid.ColumnSpan="10">
|
||||
<MenuItem Header="_File">
|
||||
<MenuItem Header="_New">
|
||||
<MenuItem DataContext="{Binding DocumentCreateCommand}"
|
||||
Command="{Binding}" Header="{Binding DisplayText}" ToolTip="{Binding Tooltip}"
|
||||
InputGestureText="{Binding ShortcutText}">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="{Binding Icon}" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Project..." Command="{Binding DocumentCreateCommand}">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="/Resources/Icons/project_star_16.png" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Open..." />
|
||||
<Separator />
|
||||
<MenuItem Header="_Close" />
|
||||
<MenuItem Header="E_xit" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Edit" />
|
||||
<MenuItem Header="_Help" />
|
||||
</Menu>
|
||||
|
||||
<!-- Toolbar -->
|
||||
<ToolBarTray Grid.Row="1">
|
||||
<ToolBar>
|
||||
<Button Name="buttonBackward" ToolTip="Navigate backward">
|
||||
<Image Width="16" Height="16" Source="/Resources/Icons/arrow_backward_16.png" />
|
||||
</Button>
|
||||
<Button Name="buttonForward" ToolTip="Navigate forward">
|
||||
<Image Width="16" Height="16" Source="/Resources/Icons/arrow_forward_16.png" />
|
||||
</Button>
|
||||
<Separator />
|
||||
<Button DataContext="{Binding DocumentCreateCommand}"
|
||||
Command="{Binding}" ToolTip="{Binding Tooltip}">
|
||||
<Image Source="{Binding Icon}" />
|
||||
</Button>
|
||||
</ToolBar>
|
||||
</ToolBarTray>
|
||||
|
||||
<!-- Grid splitter -->
|
||||
<GridSplitter Grid.Row="2" Grid.Column="1"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
|
||||
|
||||
<!-- Document panel -->
|
||||
<ad:DockingManager
|
||||
x:Name="dockingManager"
|
||||
Grid.Row="2">
|
||||
<adlayout:LayoutRoot>
|
||||
|
||||
<adlayout:LayoutRoot.LeftSide>
|
||||
<adlayout:LayoutAnchorSide>
|
||||
<adlayout:LayoutAnchorGroup>
|
||||
<adlayout:LayoutAnchorable Title="Toolbox" />
|
||||
</adlayout:LayoutAnchorGroup>
|
||||
</adlayout:LayoutAnchorSide>
|
||||
</adlayout:LayoutRoot.LeftSide>
|
||||
|
||||
<adlayout:LayoutPanel Orientation="Horizontal">
|
||||
<adlayout:LayoutDocumentPane x:Name="documentPane" />
|
||||
|
||||
<adlayout:LayoutAnchorablePaneGroup DockWidth="150" Orientation="Vertical">
|
||||
<adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorable Title="Skins">
|
||||
<ui:SkinsPanel />
|
||||
</adlayout:LayoutAnchorable>
|
||||
<adlayout:LayoutAnchorable Title="Outline" />
|
||||
</adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorable Title="Properties" />
|
||||
</adlayout:LayoutAnchorablePane>
|
||||
</adlayout:LayoutAnchorablePaneGroup>
|
||||
</adlayout:LayoutPanel>
|
||||
</adlayout:LayoutRoot>
|
||||
</ad:DockingManager>
|
||||
|
||||
<!-- Status bar -->
|
||||
<StatusBar Grid.Row="3" Grid.ColumnSpan="10">
|
||||
|
||||
<ProgressBar Name="statusProgress"
|
||||
Width="64" Height="8"
|
||||
IsIndeterminate="True"
|
||||
Visibility="Collapsed" />
|
||||
|
||||
<TextBlock Name="statusMessage">Ready</TextBlock>
|
||||
</StatusBar>
|
||||
</Grid>
|
||||
</Window>
|
||||
<Window x:Class="RainmeterStudio.UI.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:ui="clr-namespace:RainmeterStudio.UI"
|
||||
xmlns:ad="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.AvalonDock"
|
||||
xmlns:adlayout="clr-namespace:Xceed.Wpf.AvalonDock.Layout;assembly=Xceed.Wpf.AvalonDock"
|
||||
Title="Rainmeter Studio" Height="350" Width="525"
|
||||
ResizeMode="CanResizeWithGrip" >
|
||||
|
||||
<Window.Resources>
|
||||
|
||||
</Window.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Menu bar -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Toolbar -->
|
||||
<RowDefinition />
|
||||
<!-- Dock area -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Status bar -->
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Menu bar -->
|
||||
<Menu Grid.Row="0" Grid.ColumnSpan="10">
|
||||
<MenuItem Header="_File">
|
||||
<MenuItem Header="_New">
|
||||
<MenuItem DataContext="{Binding DocumentCreateCommand}"
|
||||
Command="{Binding}" Header="{Binding DisplayText}" ToolTip="{Binding Tooltip}"
|
||||
InputGestureText="{Binding ShortcutText}">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="{Binding Icon}" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Project..." Command="{Binding DocumentCreateCommand}">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="/Resources/Icons/project_star_16.png" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Open..." />
|
||||
<Separator />
|
||||
<MenuItem Header="_Close" />
|
||||
<MenuItem Header="E_xit" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Edit" />
|
||||
<MenuItem Header="_Help" />
|
||||
</Menu>
|
||||
|
||||
<!-- Toolbar -->
|
||||
<ToolBarTray Grid.Row="1">
|
||||
<ToolBar>
|
||||
<Button Name="buttonBackward" ToolTip="Navigate backward">
|
||||
<Image Width="16" Height="16" Source="/Resources/Icons/arrow_backward_16.png" />
|
||||
</Button>
|
||||
<Button Name="buttonForward" ToolTip="Navigate forward">
|
||||
<Image Width="16" Height="16" Source="/Resources/Icons/arrow_forward_16.png" />
|
||||
</Button>
|
||||
<Separator />
|
||||
<Button DataContext="{Binding DocumentCreateCommand}"
|
||||
Command="{Binding}" ToolTip="{Binding Tooltip}">
|
||||
<Image Source="{Binding Icon}" />
|
||||
</Button>
|
||||
</ToolBar>
|
||||
</ToolBarTray>
|
||||
|
||||
<!-- Grid splitter -->
|
||||
<GridSplitter Grid.Row="2" Grid.Column="1"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
|
||||
|
||||
<!-- Document panel -->
|
||||
<ad:DockingManager
|
||||
x:Name="dockingManager"
|
||||
Grid.Row="2">
|
||||
<adlayout:LayoutRoot>
|
||||
|
||||
<adlayout:LayoutRoot.LeftSide>
|
||||
<adlayout:LayoutAnchorSide>
|
||||
<adlayout:LayoutAnchorGroup>
|
||||
<adlayout:LayoutAnchorable Title="Toolbox" />
|
||||
</adlayout:LayoutAnchorGroup>
|
||||
</adlayout:LayoutAnchorSide>
|
||||
</adlayout:LayoutRoot.LeftSide>
|
||||
|
||||
<adlayout:LayoutPanel Orientation="Horizontal">
|
||||
<adlayout:LayoutDocumentPane x:Name="documentPane" />
|
||||
|
||||
<adlayout:LayoutAnchorablePaneGroup DockWidth="150" Orientation="Vertical">
|
||||
<adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorable Title="Skins">
|
||||
<ui:SkinsPanel />
|
||||
</adlayout:LayoutAnchorable>
|
||||
<adlayout:LayoutAnchorable Title="Outline" />
|
||||
</adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorablePane>
|
||||
<adlayout:LayoutAnchorable Title="Properties" />
|
||||
</adlayout:LayoutAnchorablePane>
|
||||
</adlayout:LayoutAnchorablePaneGroup>
|
||||
</adlayout:LayoutPanel>
|
||||
</adlayout:LayoutRoot>
|
||||
</ad:DockingManager>
|
||||
|
||||
<!-- Status bar -->
|
||||
<StatusBar Grid.Row="3" Grid.ColumnSpan="10">
|
||||
|
||||
<ProgressBar Name="statusProgress"
|
||||
Width="64" Height="8"
|
||||
IsIndeterminate="True"
|
||||
Visibility="Collapsed" />
|
||||
|
||||
<TextBlock Name="statusMessage">Ready</TextBlock>
|
||||
</StatusBar>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,75 +1,75 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using RainmeterEditor.Model.Events;
|
||||
using RainmeterEditor.UI.Controller;
|
||||
using Xceed.Wpf.AvalonDock.Layout;
|
||||
|
||||
namespace RainmeterEditor.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
private DocumentController documentController;
|
||||
|
||||
public Command DocumentCreateCommand { get { return documentController.DocumentCreateCommand; } }
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.DataContext = this;
|
||||
|
||||
documentController = new DocumentController();
|
||||
documentController.OwnerWindow = this;
|
||||
documentController.DocumentOpened += documentController_DocumentOpened;
|
||||
AddKeyBinding(documentController.DocumentCreateCommand);
|
||||
}
|
||||
|
||||
private void AddKeyBinding(Command c)
|
||||
{
|
||||
if (c.Shortcut != null)
|
||||
InputBindings.Add(new KeyBinding(c, c.Shortcut));
|
||||
}
|
||||
|
||||
void documentController_DocumentOpened(object sender, DocumentOpenedEventArgs e)
|
||||
{
|
||||
// Spawn a new window
|
||||
LayoutDocument document = new LayoutDocument();
|
||||
document.Content = e.Editor.EditorUI;
|
||||
document.Title = e.Editor.Title;
|
||||
document.Closing += document_Closing;
|
||||
|
||||
documentPane.Children.Add(document);
|
||||
documentPane.SelectedContentIndex = documentPane.IndexOf(document);
|
||||
}
|
||||
|
||||
void document_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
switch (MessageBox.Show("Are you sure?", "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question))
|
||||
{
|
||||
case MessageBoxResult.Yes:
|
||||
break;
|
||||
|
||||
case MessageBoxResult.No:
|
||||
break;
|
||||
|
||||
default:
|
||||
e.Cancel = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using RainmeterStudio.Model.Events;
|
||||
using RainmeterStudio.UI.Controller;
|
||||
using Xceed.Wpf.AvalonDock.Layout;
|
||||
|
||||
namespace RainmeterStudio.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
private DocumentController documentController;
|
||||
|
||||
public Command DocumentCreateCommand { get { return documentController.DocumentCreateCommand; } }
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.DataContext = this;
|
||||
|
||||
documentController = new DocumentController();
|
||||
documentController.OwnerWindow = this;
|
||||
documentController.DocumentOpened += documentController_DocumentOpened;
|
||||
AddKeyBinding(documentController.DocumentCreateCommand);
|
||||
}
|
||||
|
||||
private void AddKeyBinding(Command c)
|
||||
{
|
||||
if (c.Shortcut != null)
|
||||
InputBindings.Add(new KeyBinding(c, c.Shortcut));
|
||||
}
|
||||
|
||||
void documentController_DocumentOpened(object sender, DocumentOpenedEventArgs e)
|
||||
{
|
||||
// Spawn a new window
|
||||
LayoutDocument document = new LayoutDocument();
|
||||
document.Content = e.Editor.EditorUI;
|
||||
document.Title = e.Editor.Title;
|
||||
document.Closing += document_Closing;
|
||||
|
||||
documentPane.Children.Add(document);
|
||||
documentPane.SelectedContentIndex = documentPane.IndexOf(document);
|
||||
}
|
||||
|
||||
void document_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
switch (MessageBox.Show("Are you sure?", "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question))
|
||||
{
|
||||
case MessageBoxResult.Yes:
|
||||
break;
|
||||
|
||||
case MessageBoxResult.No:
|
||||
break;
|
||||
|
||||
default:
|
||||
e.Cancel = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
<UserControl x:Class="RainmeterEditor.UI.SkinsPanel"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<TreeView>
|
||||
<TreeViewItem Header="Sample item">
|
||||
<TreeViewItem Header="Sample subitem" />
|
||||
</TreeViewItem>
|
||||
<TreeViewItem Header="Sample item 2" />
|
||||
</TreeView>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
<UserControl x:Class="RainmeterStudio.UI.SkinsPanel"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<TreeView>
|
||||
<TreeViewItem Header="Sample item">
|
||||
<TreeViewItem Header="Sample subitem" />
|
||||
</TreeViewItem>
|
||||
<TreeViewItem Header="Sample item 2" />
|
||||
</TreeView>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,31 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using RainmeterEditor.Interop;
|
||||
using RainmeterEditor.Storage;
|
||||
|
||||
namespace RainmeterEditor.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for SkinsPanel.xaml
|
||||
/// </summary>
|
||||
public partial class SkinsPanel : UserControl
|
||||
{
|
||||
public SkinsPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
//var x = Rainmeter.Instance.Handle;
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using RainmeterStudio.Interop;
|
||||
using RainmeterStudio.Storage;
|
||||
|
||||
namespace RainmeterStudio.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for SkinsPanel.xaml
|
||||
/// </summary>
|
||||
public partial class SkinsPanel : UserControl
|
||||
{
|
||||
public SkinsPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
//var x = Rainmeter.Instance.Handle;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,55 +1,55 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Margin" Value="1" />
|
||||
<Setter Property="Padding" Value="6,1,6,1" />
|
||||
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border Name="_border"
|
||||
BorderBrush="Gray"
|
||||
BorderThickness="1"
|
||||
CornerRadius="2"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<Border.Background>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#eeee" Offset="0" />
|
||||
<GradientStop Color="#cccc" Offset="1" />
|
||||
</LinearGradientBrush>
|
||||
</Border.Background>
|
||||
<ContentPresenter Name="_content" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="_border" Property="Background" >
|
||||
<Setter.Value>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#eeee" Offset="0" />
|
||||
<GradientStop Color="#dddd" Offset="1" />
|
||||
</LinearGradientBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="_border" Property="Background" >
|
||||
<Setter.Value>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#dddd" Offset="0" />
|
||||
<GradientStop Color="#bbbb" Offset="1" />
|
||||
</LinearGradientBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="_content" Property="Opacity" Value=".5" />
|
||||
</Trigger>
|
||||
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Margin" Value="1" />
|
||||
<Setter Property="Padding" Value="6,1,6,1" />
|
||||
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border Name="_border"
|
||||
BorderBrush="Gray"
|
||||
BorderThickness="1"
|
||||
CornerRadius="2"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<Border.Background>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#eeee" Offset="0" />
|
||||
<GradientStop Color="#cccc" Offset="1" />
|
||||
</LinearGradientBrush>
|
||||
</Border.Background>
|
||||
<ContentPresenter Name="_content" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="_border" Property="Background" >
|
||||
<Setter.Value>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#eeee" Offset="0" />
|
||||
<GradientStop Color="#dddd" Offset="1" />
|
||||
</LinearGradientBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="_border" Property="Background" >
|
||||
<Setter.Value>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#dddd" Offset="0" />
|
||||
<GradientStop Color="#bbbb" Offset="1" />
|
||||
</LinearGradientBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="_content" Property="Opacity" Value=".5" />
|
||||
</Trigger>
|
||||
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
@@ -1,6 +1,6 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="ButtonStyle.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="ButtonStyle.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
@@ -1,3 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AvalonDock" version="2.0.2000" targetFramework="net40" />
|
||||
<package id="ini-parser" version="2.1.1" targetFramework="net40" />
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AvalonDock" version="2.0.2000" targetFramework="net40" />
|
||||
<package id="ini-parser" version="2.1.1" targetFramework="net40" />
|
||||
</packages>
|
||||
19
packages/AvalonDock.2.0.2000/AvalonDock.2.0.2000.nuspec
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>AvalonDock</id>
|
||||
<version>2.0.2000</version>
|
||||
<title>AvalonDock</title>
|
||||
<authors>Xceed Software Inc.</authors>
|
||||
<owners>Xceed Software Inc.</owners>
|
||||
<licenseUrl>http://avalondock.codeplex.com/license</licenseUrl>
|
||||
<projectUrl>http://avalondock.codeplex.com/</projectUrl>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<description>AvalonDock is a docking windows control for WPF that lets you create customizable layouts using a full featured window docking system similar to what is found in many popular integrated development environements (IDEs) such as Visual Studio. It includes themes and samples to get you started.</description>
|
||||
<summary>Powerful and free WPF docking windows control.</summary>
|
||||
<releaseNotes>v2.0.2000 is a bug-fix release</releaseNotes>
|
||||
<copyright>Copyright (c) 2007-2013 Xceed Software Inc.</copyright>
|
||||
<language>en-US</language>
|
||||
<tags>WPF Docking</tags>
|
||||
</metadata>
|
||||
</package>
|
||||