Completed rename from RainmeterEditor to RainmeterStudio

This commit is contained in:
2014-07-26 10:12:56 +03:00
parent f1b984768a
commit 6eec29a3a7
117 changed files with 10407 additions and 6247 deletions

2
.gitignore vendored
View File

@@ -4,6 +4,7 @@ Certificate.bat
## Ignore Visual Studio temporary files, build results, and ## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons. ## files generated by popular Visual Studio add-ons.
!Build/
# User-specific files # User-specific files
*.suo *.suo
@@ -17,7 +18,6 @@ Certificate.bat
[Rr]eleases/ [Rr]eleases/
x64/ x64/
x86/ x86/
build/
bld/ bld/
[Bb]in/ [Bb]in/
[Oo]bj/ [Oo]bj/

View File

@@ -1,176 +1,176 @@
@echo off @echo off
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
set VCVARSALL=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat set VCVARSALL=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat
set MAKENSIS=%PROGRAMFILES%\NSIS\MakeNSIS.exe set MAKENSIS=%PROGRAMFILES%\NSIS\MakeNSIS.exe
set GIT=%PROGRAMFILES%\Git\bin\git.exe set GIT=%PROGRAMFILES%\Git\bin\git.exe
:: Set VERSION_REVISION to non-zero value to override :: Set VERSION_REVISION to non-zero value to override
set VERSION_MAJOR=3 set VERSION_MAJOR=3
set VERSION_MINOR=2 set VERSION_MINOR=2
set VERSION_SUBMINOR=0 set VERSION_SUBMINOR=0
set VERSION_REVISION=0 set VERSION_REVISION=0
set ISBETA=true set ISBETA=true
if "%1" == "RELEASE" set ISBETA=false if "%1" == "RELEASE" set ISBETA=false
if "%1" == "BUILDVERSION" goto BUILDVERSION if "%1" == "BUILDVERSION" goto BUILDVERSION
echo Rainmeter Build echo Rainmeter Build
echo ---------------------------------------------- echo ----------------------------------------------
echo. echo.
if not exist "%VCVARSALL%" echo ERROR: vcvarsall.bat not found & goto END if not exist "%VCVARSALL%" echo ERROR: vcvarsall.bat not found & goto END
call "%VCVARSALL%" x86 > nul call "%VCVARSALL%" x86 > nul
set MSBUILD="msbuild.exe" /nologo^ set MSBUILD="msbuild.exe" /nologo^
/p:PlatformToolset=v120_xp;VisualStudioVersion=12.0^ /p:PlatformToolset=v120_xp;VisualStudioVersion=12.0^
/p:ExcludeTests=true^ /p:ExcludeTests=true^
/p:Configuration=Release /p:Configuration=Release
if exist "Certificate.bat" call "Certificate.bat" > nul if exist "Certificate.bat" call "Certificate.bat" > nul
set SIGNTOOL="signtool.exe" sign /t http://time.certum.pl /f "%CERTFILE%" /p "%CERTKEY%" set SIGNTOOL="signtool.exe" sign /t http://time.certum.pl /f "%CERTFILE%" /p "%CERTKEY%"
if "%1" == "BUILDLANGUAGES" goto BUILDLANGUAGES if "%1" == "BUILDLANGUAGES" goto BUILDLANGUAGES
if exist "%MAKENSIS%" goto NSISFOUND if exist "%MAKENSIS%" goto NSISFOUND
set MAKENSIS=%MAKENSIS:Program Files\=Program Files (x86)\% set MAKENSIS=%MAKENSIS:Program Files\=Program Files (x86)\%
if not exist "%MAKENSIS%" echo ERROR: MakeNSIS.exe not found & goto END if not exist "%MAKENSIS%" echo ERROR: MakeNSIS.exe not found & goto END
:NSISFOUND :NSISFOUND
:BUILDVERSION :BUILDVERSION
if not exist "..\.git" goto UPDATEVERSION if not exist "..\.git" goto UPDATEVERSION
if not "%VERSION_REVISION%" == "0" goto UPDATEVERSION if not "%VERSION_REVISION%" == "0" goto UPDATEVERSION
:: git :: git
if exist "%GIT%" goto GITFOUND if exist "%GIT%" goto GITFOUND
set GIT=%GIT:Program Files\=Program Files (x86)\% set GIT=%GIT:Program Files\=Program Files (x86)\%
if not exist "%GIT%" echo ERROR: git.exe not found & goto END if not exist "%GIT%" echo ERROR: git.exe not found & goto END
:GITFOUND :GITFOUND
set /a VERSION_REVISION=0 set /a VERSION_REVISION=0
for /f "usebackq delims= " %%G in (`"%GIT%" rev-list --all --count`) do set VERSION_REVISION=%%G for /f "usebackq delims= " %%G in (`"%GIT%" rev-list --all --count`) do set VERSION_REVISION=%%G
:UPDATEVERSION :UPDATEVERSION
set VERSION_FULL=%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_SUBMINOR%.%VERSION_REVISION% set VERSION_FULL=%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_SUBMINOR%.%VERSION_REVISION%
set VERSION_SHORT=%VERSION_MAJOR%.%VERSION_MINOR% set VERSION_SHORT=%VERSION_MAJOR%.%VERSION_MINOR%
if not "%VERSION_SUBMINOR%" == "0" set VERSION_SHORT=!VERSION_SHORT!.%VERSION_SUBMINOR% if not "%VERSION_SUBMINOR%" == "0" set VERSION_SHORT=!VERSION_SHORT!.%VERSION_SUBMINOR%
:: Update Version.h :: Update Version.h
> "..\Version.h" echo #pragma once > "..\Version.h" echo #pragma once
>>"..\Version.h" echo #define FILEVER %VERSION_MAJOR%,%VERSION_MINOR%,%VERSION_SUBMINOR%,%VERSION_REVISION% >>"..\Version.h" echo #define FILEVER %VERSION_MAJOR%,%VERSION_MINOR%,%VERSION_SUBMINOR%,%VERSION_REVISION%
>>"..\Version.h" echo #define PRODUCTVER FILEVER >>"..\Version.h" echo #define PRODUCTVER FILEVER
>>"..\Version.h" echo #define STRFILEVER "%VERSION_FULL%" >>"..\Version.h" echo #define STRFILEVER "%VERSION_FULL%"
>>"..\Version.h" echo #define STRPRODUCTVER STRFILEVER >>"..\Version.h" echo #define STRPRODUCTVER STRFILEVER
>>"..\Version.h" echo #define APPVERSION L"%VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_SUBMINOR%" >>"..\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 #define RAINMETER_VERSION ((%VERSION_MAJOR% * 1000000) + (%VERSION_MINOR% * 1000) + %VERSION_SUBMINOR%)
>>"..\Version.h" echo const int revision_number = %VERSION_REVISION%; >>"..\Version.h" echo const int revision_number = %VERSION_REVISION%;
>>"..\Version.h" echo const bool revision_beta = %ISBETA%; >>"..\Version.h" echo const bool revision_beta = %ISBETA%;
:: Update Version.cs :: Update Version.cs
> "..\Version.cs" echo namespace Rainmeter > "..\Version.cs" echo namespace Rainmeter
>>"..\Version.cs" echo { >>"..\Version.cs" echo {
>>"..\Version.cs" echo public class Version >>"..\Version.cs" echo public class Version
>>"..\Version.cs" echo { >>"..\Version.cs" echo {
>>"..\Version.cs" echo #if X64 >>"..\Version.cs" echo #if X64
>>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (64-bit)"; >>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (64-bit)";
>>"..\Version.cs" echo #else >>"..\Version.cs" echo #else
>>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (32-bit)"; >>"..\Version.cs" echo public const string Informational = "%VERSION_FULL% (32-bit)";
>>"..\Version.cs" echo #endif >>"..\Version.cs" echo #endif
>>"..\Version.cs" echo } >>"..\Version.cs" echo }
>>"..\Version.cs" echo } >>"..\Version.cs" echo }
if "%1" == "BUILDVERSION" goto :eof if "%1" == "BUILDVERSION" goto :eof
echo * Updated Version.h echo * Updated Version.h
:: Set vcbuild environment variables and begin build :: Set vcbuild environment variables and begin build
echo * Starting build for %VERSION_FULL% echo * Starting build for %VERSION_FULL%
for /F "tokens=1-4 delims=:.," %%a in ("%TIME%") do ( 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" set /A "BUILD_BEGIN_TIMESTAMP=(((%%a * 60) + 1%%b %% 100)* 60 + 1%%c %% 100) * 100 + 1%%d %% 100"
) )
:: Build Library :: Build Library
echo * Building 32-bit projects echo * Building 32-bit projects
%MSBUILD% /t:rebuild /p:Platform=Win32 /v:q /m ..\Rainmeter.sln > "BuildLog.txt" %MSBUILD% /t:rebuild /p:Platform=Win32 /v:q /m ..\Rainmeter.sln > "BuildLog.txt"
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END
echo * Building 64-bit projects echo * Building 64-bit projects
%MSBUILD% /t:rebuild /p:Platform=x64 /v:q /m ..\Rainmeter.sln > "BuildLog.txt" %MSBUILD% /t:rebuild /p:Platform=x64 /v:q /m ..\Rainmeter.sln > "BuildLog.txt"
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Build failed & goto END
:BUILDLANGUAGES :BUILDLANGUAGES
echo * Building languages echo * Building languages
:: Build all language libraries :: Build all language libraries
>".\Installer\Languages.nsh" echo. >".\Installer\Languages.nsh" echo.
for /f "tokens=1,2,3 delims=," %%a in (..\Language\List) do ( for /f "tokens=1,2,3 delims=," %%a in (..\Language\List) do (
> "..\Language\Language.rc" echo #include "%%a.h" > "..\Language\Language.rc" echo #include "%%a.h"
>>"..\Language\Language.rc" echo #include "Resource.rc" >>"..\Language\Language.rc" echo #include "Resource.rc"
>>".\Installer\Languages.nsh" echo ${IncludeLanguage} "%%b" "%%a" >>".\Installer\Languages.nsh" echo ${IncludeLanguage} "%%b" "%%a"
set LANGDLL_PARAMS='%%a - ${LANGFILE_%%b_NAME}' '${LANG_%%b}' '${LANG_%%b_CP}' !LANGDLL_PARAMS! set LANGDLL_PARAMS='%%a - ${LANGFILE_%%b_NAME}' '${LANG_%%b}' '${LANG_%%b_CP}' !LANGDLL_PARAMS!
set LANGUAGE_IDS=${LANG_%%b},!LANGUAGE_IDS! set LANGUAGE_IDS=${LANG_%%b},!LANGUAGE_IDS!
%MSBUILD% /t:Language /p:Platform=Win32;TargetName=%%c /v:q ..\Rainmeter.sln > "BuildLog.txt" %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 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 LANGDLL_PARAMS "%LANGDLL_PARAMS%"
>>".\Installer\Languages.nsh" echo ^^!define LANGUAGE_IDS "%LANGUAGE_IDS%" >>".\Installer\Languages.nsh" echo ^^!define LANGUAGE_IDS "%LANGUAGE_IDS%"
:: Restore English :: Restore English
echo #include "English.h"> "..\Language\Language.rc" echo #include "English.h"> "..\Language\Language.rc"
echo #include "Resource.rc">> "..\Language\Language.rc" echo #include "Resource.rc">> "..\Language\Language.rc"
if "%1" == "BUILDLANGUAGES" ( if "%1" == "BUILDLANGUAGES" (
xcopy /Q /S /Y ..\x32-Release\Languages\*.dll ..\x64-Release\Languages\ > nul 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 ..\x32-Debug\Languages\ > nul
xcopy /Q /S /Y ..\x32-Release\Release\Languages\*.dll ..\x64-Debug\Languages\ > nul xcopy /Q /S /Y ..\x32-Release\Release\Languages\*.dll ..\x64-Debug\Languages\ > nul
if exist "BuildLog.txt" del "BuildLog.txt" if exist "BuildLog.txt" del "BuildLog.txt"
goto END goto END
) )
:: Sign binaries :: Sign binaries
if not "%CERTFILE%" == "" ( if not "%CERTFILE%" == "" (
echo * Signing binaries echo * Signing binaries
for %%Z in (Rainmeter.dll Rainmeter.exe SkinInstaller.exe SkinInstaller.dll) do ( for %%Z in (Rainmeter.dll Rainmeter.exe SkinInstaller.exe SkinInstaller.dll) do (
%SIGNTOOL% ..\x32-Release\%%Z > BuildLog.txt %SIGNTOOL% ..\x32-Release\%%Z > BuildLog.txt
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x32\%%Z failed & goto END if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x32\%%Z failed & goto END
%SIGNTOOL% ..\x64-Release\%%Z > BuildLog.txt %SIGNTOOL% ..\x64-Release\%%Z > BuildLog.txt
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x64\%%Z failed & goto END if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing x64\%%Z failed & goto END
) )
) )
:: Build installer :: Build installer
echo * Building installer echo * Building installer
set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%.exe set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%.exe
if not "%1" == "RELEASE" set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%-r%VERSION_REVISION%-beta.exe if not "%1" == "RELEASE" set INSTALLER_NAME=Rainmeter-%VERSION_SHORT%-r%VERSION_REVISION%-beta.exe
set INSTALLER_DEFINES=^ set INSTALLER_DEFINES=^
/DOUTFILE="%INSTALLER_NAME%"^ /DOUTFILE="%INSTALLER_NAME%"^
/DVERSION_FULL="%VERSION_FULL%"^ /DVERSION_FULL="%VERSION_FULL%"^
/DVERSION_SHORT="%VERSION_SHORT%"^ /DVERSION_SHORT="%VERSION_SHORT%"^
/DVERSION_REVISION="%VERSION_REVISION%" /DVERSION_REVISION="%VERSION_REVISION%"
if not "%1" == "RELEASE" set INSTALLER_DEFINES=!INSTALLER_DEFINES! /DBETA if not "%1" == "RELEASE" set INSTALLER_DEFINES=!INSTALLER_DEFINES! /DBETA
"%MAKENSIS%" %INSTALLER_DEFINES% .\Installer\Installer.nsi > "BuildLog.txt" "%MAKENSIS%" %INSTALLER_DEFINES% .\Installer\Installer.nsi > "BuildLog.txt"
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Building installer failed & goto END if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Building installer failed & goto END
:: Sign installer :: Sign installer
if not "%CERTFILE%" == "" ( if not "%CERTFILE%" == "" (
echo * Signing installer echo * Signing installer
%SIGNTOOL% %INSTALLER_NAME% > BuildLog.txt %SIGNTOOL% %INSTALLER_NAME% > BuildLog.txt
if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing installer failed & goto END if not %ERRORLEVEL% == 0 echo ERROR %ERRORLEVEL%: Signing installer failed & goto END
) )
:: If we got here, build was successful so delete BuildLog.txt :: If we got here, build was successful so delete BuildLog.txt
if exist "BuildLog.txt" del "BuildLog.txt" if exist "BuildLog.txt" del "BuildLog.txt"
for /F "tokens=1-4 delims=:.," %%a in ("%TIME%") do ( 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_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" set /A "BUILD_ELAPSED_TIME=(%BUILD_END_TIMESTAMP% - %BUILD_BEGIN_TIMESTAMP%) / 100"
echo * Build complete. Elapsed time: %BUILD_ELAPSED_TIME% sec echo * Build complete. Elapsed time: %BUILD_ELAPSED_TIME% sec
:END :END
if exist ".\Installer\Languages.nsh" del ".\Installer\Languages.nsh" if exist ".\Installer\Languages.nsh" del ".\Installer\Languages.nsh"
echo. echo.
pause pause

View File

@@ -1,2 +1,2 @@
@echo off @echo off
"Build.bat" BUILDLANGUAGES "Build.bat" BUILDLANGUAGES

View File

@@ -1,2 +1,2 @@
@echo off @echo off
"Build.bat" BUILDVERSION "Build.bat" BUILDVERSION

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -1,200 +1,200 @@
!ifndef UAC_HDR__INC !ifndef UAC_HDR__INC
!verbose push !verbose push
!verbose 3 !verbose 3
!ifndef UAC_VERBOSE !ifndef UAC_VERBOSE
!define UAC_VERBOSE 3 !define UAC_VERBOSE 3
!endif !endif
!verbose ${UAC_VERBOSE} !verbose ${UAC_VERBOSE}
!define UAC_HDR__INC 0x00020204 ;MMmmbbrr !define UAC_HDR__INC 0x00020204 ;MMmmbbrr
!include LogicLib.nsh !include LogicLib.nsh
!macro _UAC_definemath def val1 op val2 !macro _UAC_definemath def val1 op val2
!define /math _UAC_definemath "${val1}" ${op} ${val2} !define /math _UAC_definemath "${val1}" ${op} ${val2}
!ifdef ${def} !ifdef ${def}
!undef ${def} !undef ${def}
!endif !endif
!define ${def} "${_UAC_definemath}" !define ${def} "${_UAC_definemath}"
!undef _UAC_definemath !undef _UAC_definemath
!macroend !macroend
!macro _UAC_ParseDefineFlags_orin parse outflags !macro _UAC_ParseDefineFlags_orin parse outflags
!searchparse /noerrors ${${parse}} "" _UAC_ParseDefineFlags_orin_f1 "|" _UAC_ParseDefineFlags_orin_f2 !searchparse /noerrors ${${parse}} "" _UAC_ParseDefineFlags_orin_f1 "|" _UAC_ParseDefineFlags_orin_f2
!define _UAC_ParseDefineFlags_orin_this ${_UAC_ParseDefineFlags_orin_f1} !define _UAC_ParseDefineFlags_orin_this ${_UAC_ParseDefineFlags_orin_f1}
!undef ${parse} !undef ${parse}
!define ${parse} ${_UAC_ParseDefineFlags_orin_f2} !define ${parse} ${_UAC_ParseDefineFlags_orin_f2}
!define _UAC_ParseDefineFlags_orin_saveout ${${outflags}} !define _UAC_ParseDefineFlags_orin_saveout ${${outflags}}
!undef ${outflags} !undef ${outflags}
!define /math ${outflags} "${_UAC_ParseDefineFlags_orin_saveout}" | "${_UAC_ParseDefineFlags_orin_this}" !define /math ${outflags} "${_UAC_ParseDefineFlags_orin_saveout}" | "${_UAC_ParseDefineFlags_orin_this}"
!undef _UAC_ParseDefineFlags_orin_saveout !undef _UAC_ParseDefineFlags_orin_saveout
!undef _UAC_ParseDefineFlags_orin_this !undef _UAC_ParseDefineFlags_orin_this
!ifdef _UAC_ParseDefineFlags_orin_f1 !ifdef _UAC_ParseDefineFlags_orin_f1
!undef _UAC_ParseDefineFlags_orin_f1 !undef _UAC_ParseDefineFlags_orin_f1
!undef _UAC_ParseDefineFlags_orin_f2 !undef _UAC_ParseDefineFlags_orin_f2
!endif !endif
!macroend !macroend
!macro _UAC_ParseDefineFlags_Begin _outdef _in !macro _UAC_ParseDefineFlags_Begin _outdef _in
!define _UAC_PDF${_outdef}_parse "${_in}" !define _UAC_PDF${_outdef}_parse "${_in}"
!define _UAC_PDF${_outdef}_flags "" !define _UAC_PDF${_outdef}_flags ""
!define _UAC_PDF${_outdef}_r 0 !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 ;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 ;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 ;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 ;0x8
!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x10 !insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x10
!macroend !macroend
!macro _UAC_ParseDefineFlags_End _outdef !macro _UAC_ParseDefineFlags_End _outdef
!define ${_outdef} ${_UAC_PDF${_outdef}_r} !define ${_outdef} ${_UAC_PDF${_outdef}_r}
!undef _UAC_PDF${_outdef}_r !undef _UAC_PDF${_outdef}_r
!undef _UAC_PDF${_outdef}_flags !undef _UAC_PDF${_outdef}_flags
!undef _UAC_PDF${_outdef}_parse !undef _UAC_PDF${_outdef}_parse
!macroend !macroend
!macro _UAC_ParseDefineFlags_IncludeFlag _outdef flag !macro _UAC_ParseDefineFlags_IncludeFlag _outdef flag
!if ${_UAC_PDF${_outdef}_flags} & ${flag} !if ${_UAC_PDF${_outdef}_flags} & ${flag}
!insertmacro _UAC_definemath _UAC_PDF${_outdef}_r ${_UAC_PDF${_outdef}_r} | ${flag} !insertmacro _UAC_definemath _UAC_PDF${_outdef}_r ${_UAC_PDF${_outdef}_r} | ${flag}
!endif !endif
!macroend !macroend
!macro _UAC_ParseDefineFlagsToInt _outdef _in !macro _UAC_ParseDefineFlagsToInt _outdef _in
!insertmacro _UAC_ParseDefineFlags_Begin _UAC_ParseDefineFlagsToInt_tmp "${_in}" !insertmacro _UAC_ParseDefineFlags_Begin _UAC_ParseDefineFlagsToInt_tmp "${_in}"
!define ${_outdef} ${_UAC_PDF_UAC_ParseDefineFlagsToInt_tmp_flags} !define ${_outdef} ${_UAC_PDF_UAC_ParseDefineFlagsToInt_tmp_flags}
!insertmacro _UAC_ParseDefineFlags_End _UAC_ParseDefineFlagsToInt_tmp !insertmacro _UAC_ParseDefineFlags_End _UAC_ParseDefineFlagsToInt_tmp
!undef _UAC_ParseDefineFlagsToInt_tmp !undef _UAC_ParseDefineFlagsToInt_tmp
!macroend !macroend
!macro _UAC_IncL !macro _UAC_IncL
!insertmacro _UAC_definemath __UAC_L "${__UAC_L}" + 1 !insertmacro _UAC_definemath __UAC_L "${__UAC_L}" + 1
!macroend !macroend
!macro _UAC_MakeLL_Cmp cmpop cmp pluginparams !macro _UAC_MakeLL_Cmp cmpop cmp pluginparams
!insertmacro _LOGICLIB_TEMP !insertmacro _LOGICLIB_TEMP
UAC::_ ${pluginparams} UAC::_ ${pluginparams}
pop $_LOGICLIB_TEMP pop $_LOGICLIB_TEMP
!insertmacro ${cmpop} $_LOGICLIB_TEMP ${cmp} `${_t}` `${_f}` !insertmacro ${cmpop} $_LOGICLIB_TEMP ${cmp} `${_t}` `${_f}`
!macroend !macroend
!macro UAC_RunElevated !macro UAC_RunElevated
UAC::_ 0 UAC::_ 0
!macroend !macroend
!macro UAC_PageElevation_RunElevated !macro UAC_PageElevation_RunElevated
UAC::_ 0 UAC::_ 0
!macroend !macroend
/*!macro UAC_OnInitElevation_RunElevated /*!macro UAC_OnInitElevation_RunElevated
UAC::_ 0 UAC::_ 0
!macroend !macroend
!macro UAC_OnInitElevation_OnGuiInit !macro UAC_OnInitElevation_OnGuiInit
!macroend*/ !macroend*/
!macro UAC_IsAdmin !macro UAC_IsAdmin
UAC::_ 2 UAC::_ 2
!macroend !macroend
!define UAC_IsAdmin `"" UAC_IsAdmin ""` !define UAC_IsAdmin `"" UAC_IsAdmin ""`
!macro _UAC_IsAdmin _a _b _t _f !macro _UAC_IsAdmin _a _b _t _f
!insertmacro _UAC_MakeLL_Cmp _!= 0 2s !insertmacro _UAC_MakeLL_Cmp _!= 0 2s
!macroend !macroend
!macro UAC_IsInnerInstance !macro UAC_IsInnerInstance
UAC::_ 3 UAC::_ 3
!macroend !macroend
!define UAC_IsInnerInstance `"" UAC_IsInnerInstance ""` !define UAC_IsInnerInstance `"" UAC_IsInnerInstance ""`
!macro _UAC_IsInnerInstance _a _b _t _f !macro _UAC_IsInnerInstance _a _b _t _f
!insertmacro _UAC_MakeLL_Cmp _!= 0 3s !insertmacro _UAC_MakeLL_Cmp _!= 0 3s
!macroend !macroend
!macro UAC_Notify_OnGuiInit !macro UAC_Notify_OnGuiInit
UAC::_ 4 UAC::_ 4
!macroend !macroend
!macro UAC_PageElevation_OnGuiInit !macro UAC_PageElevation_OnGuiInit
!insertmacro UAC_Notify_OnGuiInit !insertmacro UAC_Notify_OnGuiInit
!macroend !macroend
!macro UAC_PageElevation_OnInit !macro UAC_PageElevation_OnInit
UAC::_ 5 UAC::_ 5
${IfThen} ${Errors} ${|} Quit ${|} ${IfThen} ${Errors} ${|} Quit ${|}
!macroend !macroend
!define UAC_SYNCREGISTERS 0x1 !define UAC_SYNCREGISTERS 0x1
#!define UAC_SYNCSTACK 0x2 #!define UAC_SYNCSTACK 0x2
!define UAC_SYNCOUTDIR 0x4 !define UAC_SYNCOUTDIR 0x4
!define UAC_SYNCINSTDIR 0x8 !define UAC_SYNCINSTDIR 0x8
#!define UAC_CLEARERRFLAG 0x10 #!define UAC_CLEARERRFLAG 0x10
!macro UAC_AsUser_Call type name flags !macro UAC_AsUser_Call type name flags
push $0 push $0
Get${type}Address $0 ${name} Get${type}Address $0 ${name}
!verbose push !verbose push
!verbose ${UAC_VERBOSE} !verbose ${UAC_VERBOSE}
!insertmacro _UAC_ParseDefineFlagsToInt _UAC_AsUser_Call__flags ${flags} !insertmacro _UAC_ParseDefineFlagsToInt _UAC_AsUser_Call__flags ${flags}
!verbose pop !verbose pop
StrCpy $0 "1$0:${_UAC_AsUser_Call__flags}" StrCpy $0 "1$0:${_UAC_AsUser_Call__flags}"
!undef _UAC_AsUser_Call__flags !undef _UAC_AsUser_Call__flags
Exch $0 Exch $0
UAC::_ UAC::_
!macroend !macroend
!macro _UAC_AsUser_GenOp outvar op opparam1 opparam2 !macro _UAC_AsUser_GenOp outvar op opparam1 opparam2
!define _UAC_AUGOGR_ID _UAC_AUGOGR_OP${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? !ifndef ${_UAC_AUGOGR_ID} ;Has this exact action been done before?
!if ${outvar} == $0 !if ${outvar} == $0
!define ${_UAC_AUGOGR_ID} $1 !define ${_UAC_AUGOGR_ID} $1
!else !else
!define ${_UAC_AUGOGR_ID} $0 !define ${_UAC_AUGOGR_ID} $0
!endif !endif
!if "${opparam1}" == "" !if "${opparam1}" == ""
!define _UAC_AUGOGR_OPP1 ${${_UAC_AUGOGR_ID}} !define _UAC_AUGOGR_OPP1 ${${_UAC_AUGOGR_ID}}
!define _UAC_AUGOGR_OPP2 ${opparam2} !define _UAC_AUGOGR_OPP2 ${opparam2}
!else !else
!define _UAC_AUGOGR_OPP1 ${opparam1} !define _UAC_AUGOGR_OPP1 ${opparam1}
!define _UAC_AUGOGR_OPP2 ${${_UAC_AUGOGR_ID}} !define _UAC_AUGOGR_OPP2 ${${_UAC_AUGOGR_ID}}
!endif !endif
goto ${_UAC_AUGOGR_ID}_C goto ${_UAC_AUGOGR_ID}_C
${_UAC_AUGOGR_ID}_F: ${_UAC_AUGOGR_ID}_F:
${op} ${_UAC_AUGOGR_OPP1} ${_UAC_AUGOGR_OPP2} ${op} ${_UAC_AUGOGR_OPP1} ${_UAC_AUGOGR_OPP2}
return return
${_UAC_AUGOGR_ID}_C: ${_UAC_AUGOGR_ID}_C:
!undef _UAC_AUGOGR_OPP1 !undef _UAC_AUGOGR_OPP1
!undef _UAC_AUGOGR_OPP2 !undef _UAC_AUGOGR_OPP2
!endif !endif
push ${${_UAC_AUGOGR_ID}} push ${${_UAC_AUGOGR_ID}}
!insertmacro UAC_AsUser_Call Label ${_UAC_AUGOGR_ID}_F ${UAC_SYNCREGISTERS} !insertmacro UAC_AsUser_Call Label ${_UAC_AUGOGR_ID}_F ${UAC_SYNCREGISTERS}
StrCpy ${outvar} ${${_UAC_AUGOGR_ID}} StrCpy ${outvar} ${${_UAC_AUGOGR_ID}}
pop ${${_UAC_AUGOGR_ID}} pop ${${_UAC_AUGOGR_ID}}
!undef _UAC_AUGOGR_ID !undef _UAC_AUGOGR_ID
!macroend !macroend
!macro UAC_AsUser_GetSection datatype secidx outvar !macro UAC_AsUser_GetSection datatype secidx outvar
!insertmacro _UAC_AsUser_GenOp ${outvar} SectionGet${datatype} ${secidx} "" !insertmacro _UAC_AsUser_GenOp ${outvar} SectionGet${datatype} ${secidx} ""
!macroend !macroend
!macro UAC_AsUser_GetGlobalVar var !macro UAC_AsUser_GetGlobalVar var
!insertmacro _UAC_AsUser_GenOp ${var} StrCpy "" ${var} !insertmacro _UAC_AsUser_GenOp ${var} StrCpy "" ${var}
!macroend !macroend
!macro UAC_AsUser_GetGlobal outvar srcvar !macro UAC_AsUser_GetGlobal outvar srcvar
!insertmacro _UAC_AsUser_GenOp ${outvar} StrCpy "" ${srcvar} !insertmacro _UAC_AsUser_GenOp ${outvar} StrCpy "" ${srcvar}
!macroend !macroend
!macro UAC_AsUser_ExecShell verb command params workdir show !macro UAC_AsUser_ExecShell verb command params workdir show
!insertmacro _UAC_IncL !insertmacro _UAC_IncL
goto _UAC_L_E_${__UAC_L} goto _UAC_L_E_${__UAC_L}
_UAC_L_F_${__UAC_L}: _UAC_L_F_${__UAC_L}:
ExecShell "${verb}" "${command}" ${params} ${show} ExecShell "${verb}" "${command}" ${params} ${show}
return return
_UAC_L_E_${__UAC_L}: _UAC_L_E_${__UAC_L}:
!if "${workdir}" != "" !if "${workdir}" != ""
push $outdir push $outdir
SetOutPath "${workdir}" SetOutPath "${workdir}"
!endif !endif
!insertmacro UAC_AsUser_Call Label _UAC_L_F_${__UAC_L} ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} #|${UAC_CLEARERRFLAG} !insertmacro UAC_AsUser_Call Label _UAC_L_F_${__UAC_L} ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} #|${UAC_CLEARERRFLAG}
!if "${workdir}" != "" !if "${workdir}" != ""
pop $outdir pop $outdir
SetOutPath $outdir SetOutPath $outdir
!endif !endif
!macroend !macroend
!verbose pop !verbose pop
!endif /* UAC_HDR__INC */ !endif /* UAC_HDR__INC */

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,23 +1,23 @@
[Rainmeter] [Rainmeter]
[illustro\Clock] [illustro\Clock]
Active=1 Active=1
WindowX=(#SCREENAREAWIDTH#-200) WindowX=(#SCREENAREAWIDTH#-200)
WindowY=0 WindowY=0
[illustro\Disk] [illustro\Disk]
Active=2 Active=2
WindowX=(#SCREENAREAWIDTH#-200) WindowX=(#SCREENAREAWIDTH#-200)
WindowY=176 WindowY=176
[illustro\System] [illustro\System]
Active=1 Active=1
WindowX=(#SCREENAREAWIDTH#-200) WindowX=(#SCREENAREAWIDTH#-200)
WindowY=68 WindowY=68
[illustro\Welcome] [illustro\Welcome]
Active=1 Active=1
WindowX=50.000000% WindowX=50.000000%
WindowY=50.000000% WindowY=50.000000%
AnchorX=50.000000% AnchorX=50.000000%
AnchorY=50.000000% AnchorY=50.000000%

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,138 +1,138 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; That is, they do not affect the code and are here for demonstration purposes only.
; ---------------------------------- ; ----------------------------------
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
Background=#@#Background.png Background=#@#Background.png
; #@# is equal to Rainmeter\Skins\illustro\@Resources ; #@# is equal to Rainmeter\Skins\illustro\@Resources
BackgroundMode=3 BackgroundMode=3
BackgroundMargins=0,34,0,14 BackgroundMargins=0,34,0,14
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=Displays the current date and time. Description=Displays the current date and time.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=8 textSize=8
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
; ---------------------------------- ; ----------------------------------
; MEASURES return some kind of value ; MEASURES return some kind of value
; ---------------------------------- ; ----------------------------------
[measureTime] [measureTime]
; This measure returns the time in a 24-hour format (i.e. HH:MM). ; This measure returns the time in a 24-hour format (i.e. HH:MM).
Measure=Time Measure=Time
Format=%H:%M Format=%H:%M
; For a 12-hour clock, change the Format option above to: %I:%M %p ; For a 12-hour clock, change the Format option above to: %I:%M %p
; Refer to the Rainmeter manual for other format codes. ; Refer to the Rainmeter manual for other format codes.
[measureDate] [measureDate]
; Returns the date as DD.MM.YYYY ; Returns the date as DD.MM.YYYY
Measure=Time Measure=Time
Format=%d.%m.%Y Format=%d.%m.%Y
[measureDay] [measureDay]
; Returns the current day ; Returns the current day
Measure=Time Measure=Time
Format=%A Format=%A
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=CENTER StringAlign=CENTER
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleRightText] [styleRightText]
StringAlign=RIGHT StringAlign=RIGHT
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleSeperator] [styleSeperator]
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
MeasureName=measureTime MeasureName=measureTime
X=100 X=100
Y=12 Y=12
W=190 W=190
H=18 H=18
Text="%1" Text="%1"
; %1 stands for the value of MeasureName (measureTime in this case). ; %1 stands for the value of MeasureName (measureTime in this case).
[meterDay] [meterDay]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
MeasureName=measureDay MeasureName=measureDay
X=10 X=10
Y=40 Y=40
W=190 W=190
H=14 H=14
Text="%1" Text="%1"
[meterDate] [meterDate]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureDate MeasureName=measureDate
X=200 X=200
Y=0r Y=0r
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels ; 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). ; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
W=190 W=190
H=14 H=14
Text="%1" Text="%1"
[meterSeperator] [meterSeperator]
Meter=IMAGE Meter=IMAGE
MeterStyle=styleSeperator MeterStyle=styleSeperator
X=10 X=10
Y=52 Y=52
W=190 W=190
H=1 H=1

View File

@@ -1,149 +1,149 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; 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'. ; NOTE! If you want to add more disks, take a look at 'Disks 2.ini'.
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
Background=#@#Background.png Background=#@#Background.png
; #@# is equal to Rainmeter\Skins\illustro\@Resources ; #@# is equal to Rainmeter\Skins\illustro\@Resources
BackgroundMode=3 BackgroundMode=3
BackgroundMargins=0,34,0,14 BackgroundMargins=0,34,0,14
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=Displays disk usage. Description=Displays disk usage.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=8 textSize=8
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
disk1=C: disk1=C:
; ---------------------------------- ; ----------------------------------
; MEASURES return some kind of value ; MEASURES return some kind of value
; ---------------------------------- ; ----------------------------------
[measureTotalDisk1] [measureTotalDisk1]
; This measure returns the total disk space ; This measure returns the total disk space
Measure=FreeDiskSpace Measure=FreeDiskSpace
Drive=#disk1# Drive=#disk1#
Total=1 Total=1
UpdateDivider=120 UpdateDivider=120
[measureUsedDisk1] [measureUsedDisk1]
; Returns inverted value of free disk space (i.e. used disk space) ; Returns inverted value of free disk space (i.e. used disk space)
Measure=FreeDiskSpace Measure=FreeDiskSpace
Drive=#disk1# Drive=#disk1#
InvertMeasure=1 InvertMeasure=1
UpdateDivider=120 UpdateDivider=120
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=CENTER StringAlign=CENTER
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleRightText] [styleRightText]
StringAlign=RIGHT StringAlign=RIGHT
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleBar] [styleBar]
BarColor=#colorBar# BarColor=#colorBar#
BarOrientation=HORIZONTAL BarOrientation=HORIZONTAL
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
X=100 X=100
Y=12 Y=12
W=190 W=190
H=18 H=18
Text="Disks" Text="Disks"
; Even though the text is set to Disks, Rainmeter will display ; Even though the text is set to Disks, Rainmeter will display
; it as DISKS, because styleTitle contains StringCase=UPPER. ; it as DISKS, because styleTitle contains StringCase=UPPER.
[meterLabelDisk1] [meterLabelDisk1]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=40 Y=40
W=190 W=190
H=14 H=14
Text="#disk1#\" Text="#disk1#\"
[meterValueDisk1] [meterValueDisk1]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureUsedDisk1 MeasureName=measureUsedDisk1
MeasureName2=measureTotalDisk1 MeasureName2=measureTotalDisk1
X=200 X=200
Y=0r Y=0r
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels ; 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). ; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
W=190 W=190
H=14 H=14
Text="%1B/%2B used" Text="%1B/%2B used"
; %1 stands for the value of MeasureName (measureUsedDisk1 in this case). ; %1 stands for the value of MeasureName (measureUsedDisk1 in this case).
; %2 stands for the value of MeasureName2. ; %2 stands for the value of MeasureName2.
NumOfDecimals=1 NumOfDecimals=1
AutoScale=1 AutoScale=1
; Because disk measures return the free/used space in bytes, we must use AutoScale=1 to ; 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. ; automatically scale the value into a more readable figure.
LeftMouseUpAction=!Execute ["#disk1#\"] LeftMouseUpAction=!Execute ["#disk1#\"]
; Open #disk1# on click ; Open #disk1# on click
[meterBarDisk1] [meterBarDisk1]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureUsedDisk1 MeasureName=measureUsedDisk1
X=10 X=10
Y=52 Y=52
W=190 W=190
H=1 H=1

View File

@@ -1,209 +1,209 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; That is, they do not affect the code and are here for demonstration purposes only.
; ---------------------------------- ; ----------------------------------
; HOWTO: Adding more disks ; HOWTO: Adding more disks
; ---------------------------------- ; ----------------------------------
; Adding more disks is a pretty straightforward process. Follow the following steps to turn ; 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. ; 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 ; 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 ; 2) Create a copy of the [measureTotalDisk2] and [measureUsedDisk2] sections
; 3) Rename the copied sections to [measureTotalDisk3] and [measureUsedDisk3], respectively. ; 3) Rename the copied sections to [measureTotalDisk3] and [measureUsedDisk3], respectively.
; Also change Drive=#disk2# to Drive=#disk3# ; Also change Drive=#disk2# to Drive=#disk3#
; 4) Create a copy of the [meterLabelDisk2], [meterValueDisk2], and [meterBarDisk2]. ; 4) Create a copy of the [meterLabelDisk2], [meterValueDisk2], and [meterBarDisk2].
; Rename all Disk2's in the copied sections to Disk3. ; 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] ; 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). ; 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). ; 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 ; 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! :) ; 'Refresh All'. Now go activate the '3 Disks.ini' skin and enjoy! :)
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
Background=#@#Background.png Background=#@#Background.png
; #@# is equal to Rainmeter\Skins\illustro\@Resources ; #@# is equal to Rainmeter\Skins\illustro\@Resources
BackgroundMode=3 BackgroundMode=3
BackgroundMargins=0,34,0,14 BackgroundMargins=0,34,0,14
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=Displays disk usage. Description=Displays disk usage.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=8 textSize=8
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
disk1=C: disk1=C:
disk2=D: disk2=D:
; ---------------------------------- ; ----------------------------------
; MEASURES return some kind of value ; MEASURES return some kind of value
; ---------------------------------- ; ----------------------------------
[measureTotalDisk1] [measureTotalDisk1]
; This measure returns the total disk space ; This measure returns the total disk space
Measure=FreeDiskSpace Measure=FreeDiskSpace
Drive=#disk1# Drive=#disk1#
Total=1 Total=1
UpdateDivider=120 UpdateDivider=120
[measureUsedDisk1] [measureUsedDisk1]
; Returns inverted value of free disk space (i.e. used disk space) ; Returns inverted value of free disk space (i.e. used disk space)
Measure=FreeDiskSpace Measure=FreeDiskSpace
Drive=#disk1# Drive=#disk1#
InvertMeasure=1 InvertMeasure=1
UpdateDivider=120 UpdateDivider=120
[measureTotalDisk2] [measureTotalDisk2]
Measure=FreeDiskSpace Measure=FreeDiskSpace
Drive=#disk2# Drive=#disk2#
Total=1 Total=1
UpdateDivider=120 UpdateDivider=120
[measureUsedDisk2] [measureUsedDisk2]
Measure=FreeDiskSpace Measure=FreeDiskSpace
Drive=#disk2# Drive=#disk2#
InvertMeasure=1 InvertMeasure=1
UpdateDivider=120 UpdateDivider=120
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=CENTER StringAlign=CENTER
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleRightText] [styleRightText]
StringAlign=RIGHT StringAlign=RIGHT
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleBar] [styleBar]
BarColor=#colorBar# BarColor=#colorBar#
BarOrientation=HORIZONTAL BarOrientation=HORIZONTAL
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
X=100 X=100
Y=12 Y=12
W=190 W=190
H=18 H=18
Text="Disk" Text="Disk"
; Even though the text is set to Disk, Rainmeter will display ; Even though the text is set to Disk, Rainmeter will display
; it as DISK, because styleTitle contains StringCase=UPPER. ; it as DISK, because styleTitle contains StringCase=UPPER.
[meterLabelDisk1] [meterLabelDisk1]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=40 Y=40
W=190 W=190
H=14 H=14
Text="#disk1#\" Text="#disk1#\"
[meterValueDisk1] [meterValueDisk1]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureUsedDisk1 MeasureName=measureUsedDisk1
MeasureName2=measureTotalDisk1 MeasureName2=measureTotalDisk1
X=200 X=200
Y=0r Y=0r
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels ; 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). ; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
W=190 W=190
H=14 H=14
Text="%1B/%2B used" Text="%1B/%2B used"
; %1 stands for the value of MeasureName (measureUsedDisk1 in this case). ; %1 stands for the value of MeasureName (measureUsedDisk1 in this case).
; %2 stands for the value of MeasureName2. ; %2 stands for the value of MeasureName2.
NumOfDecimals=1 NumOfDecimals=1
AutoScale=1 AutoScale=1
; Because disk measures return the free/used space in bytes, we must use AutoScale=1 to ; 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. ; automatically scale the value into a more readable figure.
LeftMouseUpAction=!Execute ["#disk1#\"] LeftMouseUpAction=!Execute ["#disk1#\"]
; Open #disk1# on click ; Open #disk1# on click
[meterBarDisk1] [meterBarDisk1]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureUsedDisk1 MeasureName=measureUsedDisk1
X=10 X=10
Y=52 Y=52
W=190 W=190
H=1 H=1
[meterLabelDisk2] [meterLabelDisk2]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=60 Y=60
W=190 W=190
H=14 H=14
Text="#disk2#\" Text="#disk2#\"
LeftMouseUpAction=!Execute ["#disk2#\"] LeftMouseUpAction=!Execute ["#disk2#\"]
[meterValueDisk2] [meterValueDisk2]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureUsedDisk2 MeasureName=measureUsedDisk2
MeasureName2=measureTotalDisk2 MeasureName2=measureTotalDisk2
X=200 X=200
Y=0r Y=0r
W=190 W=190
H=14 H=14
Text="%1B/%2B used" Text="%1B/%2B used"
NumOfDecimals=1 NumOfDecimals=1
AutoScale=1 AutoScale=1
[meterBarDisk2] [meterBarDisk2]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureUsedDisk2 MeasureName=measureUsedDisk2
X=10 X=10
Y=72 Y=72
W=190 W=190
H=1 H=1

View File

@@ -1,119 +1,119 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; That is, they do not affect the code and are here for demonstration purposes only.
; ---------------------------------- ; ----------------------------------
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
Background=#@#Background.png Background=#@#Background.png
; #@# is equal to Rainmeter\Skins\illustro\@Resources ; #@# is equal to Rainmeter\Skins\illustro\@Resources
BackgroundMode=3 BackgroundMode=3
BackgroundMargins=0,34,0,14 BackgroundMargins=0,34,0,14
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=Allows searching through Google. Description=Allows searching through Google.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=8 textSize=8
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
; ---------------------------------- ; ----------------------------------
; MEASURES return some kind of value ; MEASURES return some kind of value
; ---------------------------------- ; ----------------------------------
[measureInput] [measureInput]
; The InputText.dll plugin has special powers: it allows user input. ; The InputText.dll plugin has special powers: it allows user input.
; However, it's not the easiest way to start learning Rainmeter. Get a ; 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. ; hold of the basics, and then check out the manual entry for InputText.
Measure=Plugin Measure=Plugin
Plugin=InputText.dll Plugin=InputText.dll
SolidColor=20,20,20,255 SolidColor=20,20,20,255
StringAlign=LEFT StringAlign=LEFT
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
X=10 X=10
Y=38 Y=38
W=188 W=188
H=17 H=17
FocusDismiss=1 FocusDismiss=1
DefaultValue="" DefaultValue=""
Command1=!Execute ["http://www.google.com/search?q=$UserInput$"] Command1=!Execute ["http://www.google.com/search?q=$UserInput$"]
UpdateDivider=86400 UpdateDivider=86400
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=CENTER StringAlign=CENTER
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleSeperator] [styleSeperator]
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
X=100 X=100
Y=12 Y=12
W=190 W=190
H=18 H=18
Text="Google" Text="Google"
[meterSearch] [meterSearch]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=40 Y=40
W=190 W=190
H=14 H=14
Text="Search..." Text="Search..."
LeftMouseUpAction=!PluginBang "measureInput ExecuteBatch 1" LeftMouseUpAction=!PluginBang "measureInput ExecuteBatch 1"
[meterSeperator] [meterSeperator]
Meter=IMAGE Meter=IMAGE
MeterStyle=styleSeperator MeterStyle=styleSeperator
X=10 X=10
Y=52 Y=52
W=190 W=190
H=1 H=1

View File

@@ -1,215 +1,215 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; That is, they do not affect the code and are here for demonstration purposes only.
; ---------------------------------- ; ----------------------------------
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
Background=#@#Background.png Background=#@#Background.png
; #@# is equal to Rainmeter\Skins\illustro\@Resources ; #@# is equal to Rainmeter\Skins\illustro\@Resources
BackgroundMode=3 BackgroundMode=3
BackgroundMargins=0,34,0,14 BackgroundMargins=0,34,0,14
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=Shows your IP address and network activity. Description=Shows your IP address and network activity.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=8 textSize=8
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
maxDownload=10485760 maxDownload=10485760
MaxUpload=10485760 MaxUpload=10485760
; Set maxDownload and maxUpload to your maximum download and upload speed in bits. ; 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 ; To convert kilobits, megabits, kilobytes, and megabytes into bits, go to www.google.com
; and search for something like "10 megabytes in bits". ; and search for something like "10 megabytes in bits".
; ---------------------------------- ; ----------------------------------
; MEASURES return some kind of value ; MEASURES return some kind of value
; ---------------------------------- ; ----------------------------------
[measureIP] [measureIP]
; This measure returns your IP. WebParser measures are relatively complicated. If you're a beginner with ; 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. ; Rainmeter, take a look at some of the other illustro skins before modifying this one.
Measure=Plugin Measure=Plugin
Plugin=WebParser.dll Plugin=WebParser.dll
Url=http://checkip.dyndns.org Url=http://checkip.dyndns.org
UpdateRate=14400 UpdateRate=14400
RegExp="(?siU)Address: (.*)</body>" RegExp="(?siU)Address: (.*)</body>"
StringIndex=1 StringIndex=1
Substitute="":"N/A" Substitute="":"N/A"
; Substitute works as follows: "A":"B" where A is a string to substitute and B is a string ; 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 ; to substitute with. In this case, it substutes "" (i.e. empty) to N/A
[measureNetIn] [measureNetIn]
Measure=NetIn Measure=NetIn
NetInSpeed=#maxDownload# NetInSpeed=#maxDownload#
; NetInSpeed must be set so your maximun download speed for the download bar to scale correctly ; NetInSpeed must be set so your maximun download speed for the download bar to scale correctly
[measureNetOut] [measureNetOut]
Measure=NetOut Measure=NetOut
NetOutSpeed=#maxUpload# NetOutSpeed=#maxUpload#
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=CENTER StringAlign=CENTER
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleRightText] [styleRightText]
StringAlign=RIGHT StringAlign=RIGHT
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleBar] [styleBar]
BarColor=#colorBar# BarColor=#colorBar#
BarOrientation=HORIZONTAL BarOrientation=HORIZONTAL
SolidColor=255,255,255,15 SolidColor=255,255,255,15
[styleSeperator] [styleSeperator]
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
X=100 X=100
Y=12 Y=12
W=190 W=190
H=18 H=18
Text="Network" Text="Network"
; Even though the text is set to Network, Rainmeter will display ; Even though the text is set to Network, Rainmeter will display
; it as NETWORK, because styleTitle contains StringCase=UPPER. ; it as NETWORK, because styleTitle contains StringCase=UPPER.
[meterIPLabel] [meterIPLabel]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=40 Y=40
W=190 W=190
H=14 H=14
Text="IP Address" Text="IP Address"
[meterIPValue] [meterIPValue]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureIP MeasureName=measureIP
X=200 X=200
Y=0r Y=0r
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels ; 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). ; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
W=190 W=190
H=14 H=14
Text="%1" Text="%1"
; %1 stands for the value of MeasureName (measureIP in this case). ; %1 stands for the value of MeasureName (measureIP in this case).
[meterSeperator] [meterSeperator]
Meter=IMAGE Meter=IMAGE
MeterStyle=styleSeperator MeterStyle=styleSeperator
X=10 X=10
Y=52 Y=52
W=190 W=190
H=1 H=1
[meterUploadLabel] [meterUploadLabel]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=60 Y=60
W=190 W=190
H=14 H=14
Text="Upload" Text="Upload"
[meterUploadValue] [meterUploadValue]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureNetOut MeasureName=measureNetOut
X=200 X=200
Y=0r Y=0r
W=190 W=190
H=14 H=14
Text="%1B/s" Text="%1B/s"
NumOfDecimals=1 NumOfDecimals=1
AutoScale=1 AutoScale=1
; Because measureIP returns the current upload speed in bytes, we must use AutoScale=1 to ; Because measureIP returns the current upload speed in bytes, we must use AutoScale=1 to
; automatically scale the value into a more readable figure. ; automatically scale the value into a more readable figure.
[meterUploadBar] [meterUploadBar]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureNetOut MeasureName=measureNetOut
X=10 X=10
Y=72 Y=72
W=190 W=190
H=1 H=1
[meterDownloadLabel] [meterDownloadLabel]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=80 Y=80
W=190 W=190
H=14 H=14
Text="Download" Text="Download"
[meterDownloadValue] [meterDownloadValue]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureNetIn MeasureName=measureNetIn
X=200 X=200
Y=0r Y=0r
W=190 W=190
H=14 H=14
Text="%1B/s" Text="%1B/s"
NumOfDecimals=1 NumOfDecimals=1
AutoScale=1 AutoScale=1
[meterDownloadBar] [meterDownloadBar]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureNetIn MeasureName=measureNetIn
X=10 X=10
Y=92 Y=92
W=190 W=190
H=1 H=1

View File

@@ -1,147 +1,147 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; That is, they do not affect the code and are here for demonstration purposes only.
; ---------------------------------- ; ----------------------------------
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
Background=#@#Background.png Background=#@#Background.png
; #@# is equal to Rainmeter\Skins\illustro\@Resources ; #@# is equal to Rainmeter\Skins\illustro\@Resources
BackgroundMode=3 BackgroundMode=3
BackgroundMargins=0,34,0,14 BackgroundMargins=0,34,0,14
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=Shows the state and size of your Recycle Bin. Description=Shows the state and size of your Recycle Bin.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=8 textSize=8
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
; ---------------------------------- ; ----------------------------------
; MEASURES return some kind of value ; MEASURES return some kind of value
; ---------------------------------- ; ----------------------------------
[measureBinItems] [measureBinItems]
; This measure returns the amount of items in the Recycle Bin. ; This measure returns the amount of items in the Recycle Bin.
Measure=Plugin Measure=Plugin
Plugin=RecycleManager.dll Plugin=RecycleManager.dll
RecycleType=COUNT RecycleType=COUNT
UpdateDivider=3 UpdateDivider=3
; UpdateDivider sets the rate at which the value of the measure is updated. It is ; 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 ; 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. ; 1000 milliseconds (in the [Rainmeter] section). 1000 x 3 = 3000 ms or 3 seconds.
[measureBinSize] [measureBinSize]
; Returns the total size of the Recycle Bin in bytes. ; Returns the total size of the Recycle Bin in bytes.
Measure=Plugin Measure=Plugin
Plugin=RecycleManager.dll Plugin=RecycleManager.dll
RecycleType=SIZE RecycleType=SIZE
UpdateDivider=3 UpdateDivider=3
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=CENTER StringAlign=CENTER
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleRightText] [styleRightText]
StringAlign=RIGHT StringAlign=RIGHT
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleSeperator] [styleSeperator]
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
X=100 X=100
Y=12 Y=12
W=190 W=190
H=18 H=18
Text="Recycle Bin" Text="Recycle Bin"
; Even though the text is set to Recycle Bin, Rainmeter will display ; Even though the text is set to Recycle Bin, Rainmeter will display
; it as RECYCLE BIN, because styleTitle contains StringCase=UPPER. ; it as RECYCLE BIN, because styleTitle contains StringCase=UPPER.
LeftMouseUpAction=!Execute [!PluginBang "measureBinItems OpenBin"] LeftMouseUpAction=!Execute [!PluginBang "measureBinItems OpenBin"]
RightMouseUpAction=!Execute [!PluginBang "measureBinItems EmptyBin"] RightMouseUpAction=!Execute [!PluginBang "measureBinItems EmptyBin"]
ToolTipText="Left-click to open Recycle Bin#CRLF#Right-click to empty" ToolTipText="Left-click to open Recycle Bin#CRLF#Right-click to empty"
; Hovering over this meter will display a tooltip with the text above. ; Hovering over this meter will display a tooltip with the text above.
; The #CRLF# variable creates a new line. ; The #CRLF# variable creates a new line.
[meterBinItems] [meterBinItems]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
MeasureName=measureBinItems MeasureName=measureBinItems
X=10 X=10
Y=40 Y=40
W=190 W=190
H=14 H=14
Text="%1 items" Text="%1 items"
; %1 stands for the value of MeasureName (measureBinItems in this case). ; %1 stands for the value of MeasureName (measureBinItems in this case).
[meterBinSize] [meterBinSize]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureBinSize MeasureName=measureBinSize
X=200 X=200
Y=0r Y=0r
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels ; 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). ; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
W=190 W=190
H=14 H=14
Text="%1B" Text="%1B"
AutoScale=1 AutoScale=1
; Because measureBinSize returns the size in bytes, we must use AutoScale=1 to ; Because measureBinSize returns the size in bytes, we must use AutoScale=1 to
; automatically scale the value into a more readable figure. ; automatically scale the value into a more readable figure.
[meterSeperator] [meterSeperator]
Meter=IMAGE Meter=IMAGE
MeterStyle=styleSeperator MeterStyle=styleSeperator
X=10 X=10
Y=52 Y=52
W=190 W=190
H=1 H=1

View File

@@ -1,206 +1,206 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; That is, they do not affect the code and are here for demonstration purposes only.
; ---------------------------------- ; ----------------------------------
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
Background=#@#Background.png Background=#@#Background.png
; #@# is equal to Rainmeter\Skins\illustro\@Resources ; #@# is equal to Rainmeter\Skins\illustro\@Resources
BackgroundMode=3 BackgroundMode=3
BackgroundMargins=0,34,0,14 BackgroundMargins=0,34,0,14
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=Displays basic system stats. Description=Displays basic system stats.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=8 textSize=8
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
; ---------------------------------- ; ----------------------------------
; MEASURES return some kind of value ; MEASURES return some kind of value
; ---------------------------------- ; ----------------------------------
[measureCPU] [measureCPU]
; This measure returns the average CPU load between all cores. ; This measure returns the average CPU load between all cores.
Measure=CPU Measure=CPU
Processor=0 Processor=0
[measureRAM] [measureRAM]
; Returns the amount of RAM used in bytes. ; Returns the amount of RAM used in bytes.
Measure=PhysicalMemory Measure=PhysicalMemory
UpdateDivider=20 UpdateDivider=20
; UpdateDivider sets the rate at which the value of the measure is updated. It is ; 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 ; 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. ; 1000 milliseconds (in the [Rainmeter] section). 1000 x 20 = 20000 ms or 20 seconds.
[measureSWAP] [measureSWAP]
; Returns the amount of SWAP (pagefile) used in bytes. ; Returns the amount of SWAP (pagefile) used in bytes.
Measure=SWAPMemory Measure=SWAPMemory
UpdateDivider=20 UpdateDivider=20
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=CENTER StringAlign=CENTER
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleRightText] [styleRightText]
StringAlign=RIGHT StringAlign=RIGHT
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleBar] [styleBar]
BarColor=#colorBar# BarColor=#colorBar#
BarOrientation=HORIZONTAL BarOrientation=HORIZONTAL
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
X=100 X=100
Y=12 Y=12
W=190 W=190
H=18 H=18
Text="System" Text="System"
; Even though the text is set to System, Rainmeter will display ; Even though the text is set to System, Rainmeter will display
; it as SYSTEM, because styleTitle contains StringCase=UPPER. ; it as SYSTEM, because styleTitle contains StringCase=UPPER.
LeftMouseUpAction=!Execute ["taskmgr.exe"] LeftMouseUpAction=!Execute ["taskmgr.exe"]
; Left-clicking this meter will launch taskmgr.exe (the Task Manager). ; Left-clicking this meter will launch taskmgr.exe (the Task Manager).
ToolTipText="Open Task Manager" ToolTipText="Open Task Manager"
; Hovering over this meter will display a tooltip with the text above. ; Hovering over this meter will display a tooltip with the text above.
[meterLabelCPU] [meterLabelCPU]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=40 Y=40
W=190 W=190
H=14 H=14
Text="CPU Usage" Text="CPU Usage"
[meterValueCPU] [meterValueCPU]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureCPU MeasureName=measureCPU
X=200 X=200
Y=0r Y=0r
; r stands for relative. In this case, the Y postition of meterValueCPU is 0 pixels ; 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). ; below the Y value of the previous meter (i.e it's the same as in meterLabelCPU).
W=190 W=190
H=14 H=14
Text="%1%" Text="%1%"
; %1 stands for the value of MeasureName (measureCPU in this case). ; %1 stands for the value of MeasureName (measureCPU in this case).
[meterBarCPU] [meterBarCPU]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureCPU MeasureName=measureCPU
X=10 X=10
Y=52 Y=52
W=190 W=190
H=1 H=1
[meterLabelRAM] [meterLabelRAM]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=60 Y=60
W=190 W=190
H=14 H=14
Text="RAM Usage" Text="RAM Usage"
[meterValueRAM] [meterValueRAM]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureRAM MeasureName=measureRAM
X=200 X=200
Y=0r Y=0r
W=190 W=190
H=14 H=14
Text="%1%" Text="%1%"
Percentual=1 Percentual=1
; Percentual=1 needs to be added her because measureRAM returns the amount ; 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. ; of RAM used in bytes. Using Percentual=1 will convert that into a percentual value.
[meterBarRAM] [meterBarRAM]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureRAM MeasureName=measureRAM
X=10 X=10
Y=72 Y=72
W=190 W=190
H=1 H=1
[meterLabelSWAP] [meterLabelSWAP]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=10 X=10
Y=80 Y=80
W=190 W=190
H=14 H=14
Text="SWAP Usage" Text="SWAP Usage"
[meterValueSWAP] [meterValueSWAP]
Meter=STRING Meter=STRING
MeterStyle=styleRightText MeterStyle=styleRightText
MeasureName=measureSWAP MeasureName=measureSWAP
X=200 X=200
Y=0r Y=0r
W=190 W=190
H=14 H=14
Text="%1%" Text="%1%"
Percentual=1 Percentual=1
[meterBarSWAP] [meterBarSWAP]
Meter=BAR Meter=BAR
MeterStyle=styleBar MeterStyle=styleBar
MeasureName=measureSWAP MeasureName=measureSWAP
X=10 X=10
Y=92 Y=92
W=190 W=190
H=1 H=1

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,173 +1,173 @@
; Lines starting ; (semicolons) are commented out. ; Lines starting ; (semicolons) are commented out.
; That is, they do not affect the code and are here for demonstration purposes only. ; That is, they do not affect the code and are here for demonstration purposes only.
; ---------------------------------- ; ----------------------------------
[Rainmeter] [Rainmeter]
; This section contains general settings that can be used to change how Rainmeter behaves. ; This section contains general settings that can be used to change how Rainmeter behaves.
Author=poiru Author=poiru
AppVersion=2003000 AppVersion=2003000
Update=1000 Update=1000
[Metadata] [Metadata]
; Contains basic information of the skin. ; Contains basic information of the skin.
Description=The welcome skin for illustro. Description=The welcome skin for illustro.
License=Creative Commons BY-NC-SA 3.0 License=Creative Commons BY-NC-SA 3.0
Version=1.0.0 Version=1.0.0
[Variables] [Variables]
; Variables declared here can be used later on between two # characters (e.g. #MyVariable#). ; Variables declared here can be used later on between two # characters (e.g. #MyVariable#).
fontName=Trebuchet MS fontName=Trebuchet MS
textSize=9 textSize=9
colorBar=235,170,0,255 colorBar=235,170,0,255
colorText=255,255,255,205 colorText=255,255,255,205
; ---------------------------------- ; ----------------------------------
; STYLES are used to "centralize" options ; STYLES are used to "centralize" options
; ---------------------------------- ; ----------------------------------
[styleTitle] [styleTitle]
StringAlign=LEFT StringAlign=LEFT
StringCase=UPPER StringCase=UPPER
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,50 FontEffectColor=0,0,0,50
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=10 FontSize=10
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleLeftText] [styleLeftText]
StringAlign=LEFT StringAlign=LEFT
; Meters using styleLeftText will be left-aligned. ; Meters using styleLeftText will be left-aligned.
StringCase=NONE StringCase=NONE
StringStyle=BOLD StringStyle=BOLD
StringEffect=SHADOW StringEffect=SHADOW
FontEffectColor=0,0,0,20 FontEffectColor=0,0,0,20
FontColor=#colorText# FontColor=#colorText#
FontFace=#fontName# FontFace=#fontName#
FontSize=#textSize# FontSize=#textSize#
AntiAlias=1 AntiAlias=1
ClipString=1 ClipString=1
[styleSeperator] [styleSeperator]
SolidColor=255,255,255,15 SolidColor=255,255,255,15
; ---------------------------------- ; ----------------------------------
; METERS display images, text, bars, etc. ; METERS display images, text, bars, etc.
; ---------------------------------- ; ----------------------------------
[meterBackground] [meterBackground]
Meter=IMAGE Meter=IMAGE
ImageName=Background.png ImageName=Background.png
X=0 X=0
Y=0 Y=0
[meterMidLine] [meterMidLine]
Meter=IMAGE Meter=IMAGE
SolidColor=255,255,255,80 SolidColor=255,255,255,80
W=1 W=1
H=200 H=200
X=245 X=245
Y=60 Y=60
[meterTitle] [meterTitle]
Meter=STRING Meter=STRING
MeterStyle=styleTitle MeterStyle=styleTitle
; Using MeterStyle=styleTitle will basically "copy" the ; Using MeterStyle=styleTitle will basically "copy" the
; contents of the [styleTitle] section here during runtime. ; contents of the [styleTitle] section here during runtime.
X=20 X=20
Y=18 Y=18
W=400 W=400
H=18 H=18
FontSize=11 FontSize=11
Text="Welcome to Rainmeter!" Text="Welcome to Rainmeter!"
[meterIllustroTitle] [meterIllustroTitle]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=20 X=20
Y=55 Y=55
W=240 W=240
H=30 H=30
FontColor=255,217,120,255 FontColor=255,217,120,255
FontSize=10 FontSize=10
Text="illustro: Getting started with Rainmeter skinning" Text="illustro: Getting started with Rainmeter skinning"
[meterIllustroLine] [meterIllustroLine]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=20 X=20
Y=95 Y=95
W=225 W=225
H=175 H=175
FontColor=#colorText# FontColor=#colorText#
FontSize=9 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." 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. ; #CRLF# is a pre-defined varaible for newline.
[meterLinksTitle] [meterLinksTitle]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=260 X=260
Y=55 Y=55
W=235 W=235
H=30 H=30
FontColor=255,217,120,255 FontColor=255,217,120,255
FontSize=10 FontSize=10
Text=Recommended skin suites: Start using Rainmeter now! Text=Recommended skin suites: Start using Rainmeter now!
[meterLinksLine] [meterLinksLine]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=260 X=260
Y=95 Y=95
W=225 W=225
H=80 H=80
FontColor=#colorText# FontColor=#colorText#
FontSize=9 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. 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] [meterLink1]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=260 X=260
Y=175 Y=175
W=225 W=225
H=14 H=14
FontColor=255,217,120,255 FontColor=255,217,120,255
Text="» Recommended Skin Suites" Text="» Recommended Skin Suites"
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Discover"] LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Discover"]
[meterLink2] [meterLink2]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=260 X=260
Y=195 Y=195
W=225 W=225
H=14 H=14
FontColor=255,174,69,255 FontColor=255,174,69,255
Text="» Rainmeter 101" Text="» Rainmeter 101"
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Rainmeter101"] LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Rainmeter101"]
[meterLink3] [meterLink3]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=260 X=260
Y=215 Y=215
W=225 W=225
H=14 H=14
FontColor=255,174,69,255 FontColor=255,174,69,255
Text="» Rainmeter Manual" Text="» Rainmeter Manual"
LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Support"] LeftMouseUpAction=!Execute ["http://rainmeter.net/cms/Support"]
[meterLink4] [meterLink4]
Meter=STRING Meter=STRING
MeterStyle=styleLeftText MeterStyle=styleLeftText
X=260 X=260
Y=235 Y=235
W=225 W=225
H=14 H=14
FontColor=255,174,69,255 FontColor=255,174,69,255
Text="» Rainmeter Forums" Text="» Rainmeter Forums"
LeftMouseUpAction=!Execute ["http://rainmeter.net/forums"] LeftMouseUpAction=!Execute ["http://rainmeter.net/forums"]

View File

@@ -1,31 +1,31 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Visual C++ project options meant to applied before the default Microsoft property sheets. --> <!-- 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"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros"> <PropertyGroup Label="UserMacros">
<WinDDK71Dir>$(SolutionDir)..\WinDDK\7600.16385.1\</WinDDK71Dir> <WinDDK71Dir>$(SolutionDir)..\WinDDK\7600.16385.1\</WinDDK71Dir>
</PropertyGroup> </PropertyGroup>
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"> <ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"> <ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120_xp</PlatformToolset> <PlatformToolset>v120_xp</PlatformToolset>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -1,129 +1,129 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Visual C++ project options meant to applied after the default Microsoft property sheets. --> <!-- 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"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<!-- Use the Win8 SDK headers even though we are using the v120_xp toolset. --> <!-- Use the Win8 SDK headers even though we are using the v120_xp toolset. -->
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath> <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- This is overridden by Build.bat during full build. --> <!-- This is overridden by Build.bat during full build. -->
<RmOutDirRoot Condition=" '$(Platform)' == 'Win32' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot> <RmOutDirRoot Condition=" '$(Platform)' == 'Win32' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot>
<RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot> <RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot>
<OutDir>$(RmOutDirRoot)</OutDir> <OutDir>$(RmOutDirRoot)</OutDir>
<IntDir>$(OutDir)\Obj\$(ProjectName)\</IntDir> <IntDir>$(OutDir)\Obj\$(ProjectName)\</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Avoid .lib files in TestBench. --> <!-- Avoid .lib files in TestBench. -->
<OutDir Condition="'$(ConfigurationType)'=='StaticLibrary'">$(IntDir)</OutDir> <OutDir Condition="'$(ConfigurationType)'=='StaticLibrary'">$(IntDir)</OutDir>
</PropertyGroup> </PropertyGroup>
<!-- Macros for unit testing. --> <!-- Macros for unit testing. -->
<PropertyGroup Label="UserMacros"> <PropertyGroup Label="UserMacros">
<!-- This is set to true by Build.bat when building full builds. --> <!-- This is set to true by Build.bat when building full builds. -->
<ExcludeTests>false</ExcludeTests> <ExcludeTests>false</ExcludeTests>
<!-- Non-static projects must delayload CppUnitTestFramework.dll to avoid the "module not found" <!-- Non-static projects must delayload CppUnitTestFramework.dll to avoid the "module not found"
errors (since CppUnitTestFramework.dll is available only when running tests). --> errors (since CppUnitTestFramework.dll is available only when running tests). -->
<DelayLoadTestDLL>Microsoft.VisualStudio.TestTools.CppUnitTestFramework.dll</DelayLoadTestDLL> <DelayLoadTestDLL>Microsoft.VisualStudio.TestTools.CppUnitTestFramework.dll</DelayLoadTestDLL>
<DelayLoadTestDLL Condition="'$(Platform)'=='x64'">Microsoft.VisualStudio.TestTools.CppUnitTestFramework.x64.dll</DelayLoadTestDLL> <DelayLoadTestDLL Condition="'$(Platform)'=='x64'">Microsoft.VisualStudio.TestTools.CppUnitTestFramework.x64.dll</DelayLoadTestDLL>
<DelayLoadTestDLL Condition="'$(ConfigurationType)'=='StaticLibrary'"></DelayLoadTestDLL> <DelayLoadTestDLL Condition="'$(ConfigurationType)'=='StaticLibrary'"></DelayLoadTestDLL>
<DelayLoadTestDLL Condition="'$(ExcludeTests)'=='true'"></DelayLoadTestDLL> <DelayLoadTestDLL Condition="'$(ExcludeTests)'=='true'"></DelayLoadTestDLL>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(ExcludeTests)'=='false'"> <ItemDefinitionGroup Condition="'$(ExcludeTests)'=='false'">
<ClCompile> <ClCompile>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>
<!-- Ignore C4351 to get rid of "new behavior: elements of array 'array' will be default initialized" --> <!-- Ignore C4351 to get rid of "new behavior: elements of array 'array' will be default initialized" -->
<DisableSpecificWarnings>4351;%(DisableSpecificWarnings)</DisableSpecificWarnings> <DisableSpecificWarnings>4351;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>false</ExceptionHandling> <ExceptionHandling>false</ExceptionHandling>
<!-- Set WINVER=0x0601 and friends (Win7) to avoid using Win8 specific features in the Win8 SDK. --> <!-- 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. --> <!-- 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> <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> <WarningLevel>Level3</WarningLevel>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
<RuntimeTypeInfo>false</RuntimeTypeInfo> <RuntimeTypeInfo>false</RuntimeTypeInfo>
</Link> </Link>
<ResourceCompile> <ResourceCompile>
<Culture>0x0409</Culture> <Culture>0x0409</Culture>
</ResourceCompile> </ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
<ResourceCompile> <ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile> </ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile> <ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<AdditionalOptions>/Gw %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Gw %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>false</GenerateDebugInformation> <GenerateDebugInformation>false</GenerateDebugInformation>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<MergeSections>.rdata=.text</MergeSections> <MergeSections>.rdata=.text</MergeSections>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link> </Link>
<ResourceCompile> <ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile> </ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile> <ClCompile>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet> <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
</ClCompile> </ClCompile>
<Link> <Link>
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'"> <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
<ResourceCompile> <ResourceCompile>
<PreprocessorDefinitions>_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile> </ResourceCompile>
<Link> <Link>
<TargetMachine>MachineX64</TargetMachine> <TargetMachine>MachineX64</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
</Project> </Project>

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<GenerateManifest>false</GenerateManifest> <GenerateManifest>false</GenerateManifest>
<OutDir>$(OutDir)Plugins\</OutDir> <OutDir>$(OutDir)Plugins\</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<Link> <Link>
<AdditionalDependencies>$(SolutionDir)Plugins\API\x32\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>$(SolutionDir)Plugins\API\x32\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'"> <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
<Link> <Link>
<AdditionalDependencies>$(SolutionDir)Plugins\API\x64\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>$(SolutionDir)Plugins\API\x64\Rainmeter.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
</Project> </Project>

View File

@@ -1,9 +1,9 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<!-- This is overridden by Build.bat during full build. --> <!-- This is overridden by Build.bat during full build. -->
<RmOutDirRoot Condition=" '$(Platform)' == 'x86' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot> <RmOutDirRoot Condition=" '$(Platform)' == 'x86' ">$(SolutionDir)x32-$(Configuration)\</RmOutDirRoot>
<RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot> <RmOutDirRoot Condition=" '$(Platform)' == 'x64' ">$(SolutionDir)x64-$(Configuration)\</RmOutDirRoot>
<OutputPath>$(RmOutDirRoot)Plugins\</OutputPath> <OutputPath>$(RmOutDirRoot)Plugins\</OutputPath>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -1,96 +1,96 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{845F4BD4-6822-4D92-9DDB-15FD18A47E5A}</ProjectGuid> <ProjectGuid>{845F4BD4-6822-4D92-9DDB-15FD18A47E5A}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RainmeterStudio.Tests</RootNamespace> <RootNamespace>RainmeterStudio.Tests</RootNamespace>
<AssemblyName>RainmeterStudio.Tests</AssemblyName> <AssemblyName>RainmeterStudio.Tests</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath> <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest> <IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType> <TestProjectType>UnitTest</TestProjectType>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath> <OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath> <OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants> <DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core"> <Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework> <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<Choose> <Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'"> <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup> </ItemGroup>
</When> </When>
<Otherwise> <Otherwise>
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" /> <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
</ItemGroup> </ItemGroup>
</Otherwise> </Otherwise>
</Choose> </Choose>
<ItemGroup> <ItemGroup>
<Compile Include="Storage\ProjectStorageTest.cs" /> <Compile Include="Storage\ProjectStorageTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<WCFMetadata Include="Service References\" /> <WCFMetadata Include="Service References\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\RainmeterEditor\RainmeterStudio.csproj"> <ProjectReference Include="..\RainmeterStudio\RainmeterStudio.csproj">
<Project>{438d0136-4a27-4e4d-a617-fface4554236}</Project> <Project>{438d0136-4a27-4e4d-a617-fface4554236}</Project>
<Name>RainmeterStudio</Name> <Name>RainmeterStudio</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Choose> <Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'"> <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
</When> </When>
</Choose> </Choose>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" /> <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
</Target> </Target>
<Target Name="AfterBuild"> <Target Name="AfterBuild">
</Target> </Target>
--> -->
</Project> </Project>

View File

@@ -1,110 +1,110 @@
using System; using System;
using System.Text; using System.Text;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
using RainmeterEditor.Storage; using RainmeterStudio.Storage;
using RainmeterEditor.Model; using RainmeterStudio.Model;
using System.IO; using System.IO;
namespace RainmeterStudio.Tests.Storage namespace RainmeterStudio.Tests.Storage
{ {
/// <summary> /// <summary>
/// Tests the ProjectStorage class /// Tests the ProjectStorage class
/// </summary> /// </summary>
[TestClass] [TestClass]
public class ProjectStorageTest public class ProjectStorageTest
{ {
private ProjectStorage ProjectStorage = new ProjectStorage(); private ProjectStorage ProjectStorage = new ProjectStorage();
public TestContext TestContext { get; set; } public TestContext TestContext { get; set; }
[TestInitialize] [TestInitialize]
public void Initialize() public void Initialize()
{ {
Directory.SetCurrentDirectory(TestContext.DeploymentDirectory); Directory.SetCurrentDirectory(TestContext.DeploymentDirectory);
} }
[TestMethod] [TestMethod]
public void ProjectStorageSmokeTest() public void ProjectStorageSmokeTest()
{ {
string filename = TestContext.TestName + ".rsproj"; string filename = TestContext.TestName + ".rsproj";
// Create project // Create project
Project project = CreateProject(); Project project = CreateProject();
// Save and load // Save and load
ProjectStorage.Save(filename, project); ProjectStorage.Save(filename, project);
Project res = ProjectStorage.Load(filename); Project res = ProjectStorage.Load(filename);
// Verify results // Verify results
Assert.IsNotNull(res); Assert.IsNotNull(res);
Assert.AreEqual(project, res); Assert.AreEqual(project, res);
Assert.AreEqual(project.GetHashCode(), res.GetHashCode()); Assert.AreEqual(project.GetHashCode(), res.GetHashCode());
Assert.AreEqual(project.Author, res.Author); Assert.AreEqual(project.Author, res.Author);
Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile); Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile);
Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter); Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter);
Assert.AreEqual(project.MinimumWindows, res.MinimumWindows); Assert.AreEqual(project.MinimumWindows, res.MinimumWindows);
Assert.AreEqual(project.Name, res.Name); Assert.AreEqual(project.Name, res.Name);
Assert.AreEqual(project.Root, res.Root); Assert.AreEqual(project.Root, res.Root);
Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles)); Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles));
Assert.AreEqual(project.Version, res.Version); Assert.AreEqual(project.Version, res.Version);
} }
[TestMethod] [TestMethod]
public void ProjectStorageEmptyProjectSmokeTest() public void ProjectStorageEmptyProjectSmokeTest()
{ {
string filename = TestContext.TestName + ".rsproj"; string filename = TestContext.TestName + ".rsproj";
// Create a project // Create a project
Project project = new Project(); Project project = new Project();
// Save and load project // Save and load project
ProjectStorage.Save(filename, project); ProjectStorage.Save(filename, project);
Project res = ProjectStorage.Load(filename); Project res = ProjectStorage.Load(filename);
// Test results // Test results
Assert.IsNotNull(res); Assert.IsNotNull(res);
Assert.AreEqual(project, res); Assert.AreEqual(project, res);
Assert.AreEqual(project.GetHashCode(), res.GetHashCode()); Assert.AreEqual(project.GetHashCode(), res.GetHashCode());
Assert.AreEqual(project.Author, res.Author); Assert.AreEqual(project.Author, res.Author);
Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile); Assert.AreEqual(project.AutoLoadFile, res.AutoLoadFile);
Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter); Assert.AreEqual(project.MinimumRainmeter, res.MinimumRainmeter);
Assert.AreEqual(project.MinimumWindows, res.MinimumWindows); Assert.AreEqual(project.MinimumWindows, res.MinimumWindows);
Assert.AreEqual(project.Name, res.Name); Assert.AreEqual(project.Name, res.Name);
Assert.AreEqual(project.Root, res.Root); Assert.AreEqual(project.Root, res.Root);
Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles)); Assert.IsTrue(project.VariableFiles.SequenceEqual(res.VariableFiles));
Assert.AreEqual(project.Version, res.Version); Assert.AreEqual(project.Version, res.Version);
} }
private Project CreateProject() private Project CreateProject()
{ {
// Create some file references // Create some file references
Reference folder1 = new Reference("folder1"); Reference folder1 = new Reference("folder1");
Reference folder2 = new Reference("folder2"); Reference folder2 = new Reference("folder2");
Reference file1 = new Reference("file1.txt"); Reference file1 = new Reference("file1.txt");
Reference file2 = new Reference("file2.ini"); Reference file2 = new Reference("file2.ini");
Reference file3 = new Reference("file3.bmp"); Reference file3 = new Reference("file3.bmp");
// Create a project // Create a project
Project project = new Project(); Project project = new Project();
project.Author = "Tiberiu Chibici"; project.Author = "Tiberiu Chibici";
project.MinimumRainmeter = new Version("3.1"); project.MinimumRainmeter = new Version("3.1");
project.MinimumWindows = new Version("5.1"); project.MinimumWindows = new Version("5.1");
project.Name = "My project"; project.Name = "My project";
project.Version = new Version("1.0.1"); project.Version = new Version("1.0.1");
project.AutoLoadFile = file2; project.AutoLoadFile = file2;
project.VariableFiles.Add(file1); project.VariableFiles.Add(file1);
// Set project references // Set project references
project.Root.Add(folder1); project.Root.Add(folder1);
project.Root.Add(folder2); project.Root.Add(folder2);
project.Root[0].Add(file1); project.Root[0].Add(file1);
project.Root[1].Add(file2); project.Root[1].Add(file2);
project.Root.Add(file3); project.Root.Add(file3);
return project; return project;
} }
} }
} }

View File

@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

View File

@@ -1,13 +1,13 @@
<Application x:Class="RainmeterEditor.App" <Application x:Class="RainmeterStudio.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="UI/MainWindow.xaml" StartupUri="UI/MainWindow.xaml"
Startup="Application_Startup"> Startup="Application_Startup">
<Application.Resources> <Application.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="UI/Styles/Common.xaml" /> <ResourceDictionary Source="UI/Styles/Common.xaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>
</Application.Resources> </Application.Resources>
</Application> </Application>

View File

@@ -1,22 +1,22 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration; using System.Configuration;
using System.Data; using System.Data;
using System.Linq; using System.Linq;
using System.Windows; using System.Windows;
using RainmeterEditor.Business; using RainmeterStudio.Business;
using RainmeterEditor.Documents.Text; using RainmeterStudio.Documents.Text;
namespace RainmeterEditor namespace RainmeterStudio
{ {
/// <summary> /// <summary>
/// Interaction logic for App.xaml /// Interaction logic for App.xaml
/// </summary> /// </summary>
public partial class App : Application public partial class App : Application
{ {
private void Application_Startup(object sender, StartupEventArgs e) private void Application_Startup(object sender, StartupEventArgs e)
{ {
DocumentManager.Instance.RegisterEditorFactory(new TextEditorFactory()); DocumentManager.Instance.RegisterEditorFactory(new TextEditorFactory());
} }
} }
} }

View File

@@ -1,78 +1,78 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Model; using RainmeterStudio.Model;
using RainmeterEditor.Model.Events; using RainmeterStudio.Model.Events;
namespace RainmeterEditor.Business namespace RainmeterStudio.Business
{ {
public class DocumentManager public class DocumentManager
{ {
#region Singleton instance #region Singleton instance
private static DocumentManager _instance = null; private static DocumentManager _instance = null;
/// <summary> /// <summary>
/// Gets the instance of DocumentManager /// Gets the instance of DocumentManager
/// </summary> /// </summary>
public static DocumentManager Instance public static DocumentManager Instance
{ {
get get
{ {
if (_instance == null) if (_instance == null)
_instance = new DocumentManager(); _instance = new DocumentManager();
return _instance; return _instance;
} }
} }
#endregion #endregion
private DocumentManager() private DocumentManager()
{ {
} }
List<IDocumentEditorFactory> _factories = new List<IDocumentEditorFactory>(); List<IDocumentEditorFactory> _factories = new List<IDocumentEditorFactory>();
List<IDocumentEditor> _editors = new List<IDocumentEditor>(); List<IDocumentEditor> _editors = new List<IDocumentEditor>();
public event EventHandler<DocumentOpenedEventArgs> DocumentOpened; public event EventHandler<DocumentOpenedEventArgs> DocumentOpened;
/// <summary> /// <summary>
/// Registers a document editor factory /// Registers a document editor factory
/// </summary> /// </summary>
/// <param name="factory">Document editor factory</param> /// <param name="factory">Document editor factory</param>
public void RegisterEditorFactory(IDocumentEditorFactory factory) public void RegisterEditorFactory(IDocumentEditorFactory factory)
{ {
_factories.Add(factory); _factories.Add(factory);
} }
/// <summary> /// <summary>
/// Creates a new document in the specified path, with the specified format, and opens it /// Creates a new document in the specified path, with the specified format, and opens it
/// </summary> /// </summary>
/// <param name="format"></param> /// <param name="format"></param>
/// <param name="path"></param> /// <param name="path"></param>
public void Create(DocumentFormat format, string path) public void Create(DocumentFormat format, string path)
{ {
// Create document // Create document
var document = format.Factory.CreateDocument(format, path); var document = format.Factory.CreateDocument(format, path);
// Create editor // Create editor
var editor = format.Factory.CreateEditor(document); var editor = format.Factory.CreateEditor(document);
_editors.Add(editor); _editors.Add(editor);
// Trigger event // Trigger event
if (DocumentOpened != null) if (DocumentOpened != null)
DocumentOpened(this, new DocumentOpenedEventArgs(editor)); DocumentOpened(this, new DocumentOpenedEventArgs(editor));
} }
public IEnumerable<DocumentFormat> DocumentFormats public IEnumerable<DocumentFormat> DocumentFormats
{ {
get get
{ {
foreach (var f in _factories) foreach (var f in _factories)
foreach (var df in f.CreateDocumentFormats) foreach (var df in f.CreateDocumentFormats)
yield return df; yield return df;
} }
} }
} }
} }

View File

@@ -1,16 +1,16 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Business namespace RainmeterStudio.Business
{ {
public class ProjectManager public class ProjectManager
{ {
public Project ActiveProject { get; protected set; } public Project ActiveProject { get; protected set; }
public void Open() { } public void Open() { }
public void Close() { } public void Close() { }
} }
} }

View File

@@ -1,12 +1,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Documents.Ini namespace RainmeterStudio.Documents.Ini
{ {
/*public class IniDocument : IDocument /*public class IniDocument : IDocument
{ {
}*/ }*/
} }

View File

@@ -1,31 +1,31 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Documents.Ini namespace RainmeterStudio.Documents.Ini
{ {
/*public class IniSkinDesigner : IDocumentEditor /*public class IniSkinDesigner : IDocumentEditor
{ {
public override IDocument Document public override IDocument Document
{ {
get { throw new NotImplementedException(); } get { throw new NotImplementedException(); }
} }
public override string Title public override string Title
{ {
get { throw new NotImplementedException(); } get { throw new NotImplementedException(); }
} }
public override System.Windows.UIElement EditorUI public override System.Windows.UIElement EditorUI
{ {
get { throw new NotImplementedException(); } get { throw new NotImplementedException(); }
} }
public override EventHandler SelectionChanged public override EventHandler SelectionChanged
{ {
get { throw new NotImplementedException(); } get { throw new NotImplementedException(); }
} }
}*/ }*/
} }

View File

@@ -1,11 +1,11 @@
<UserControl x:Class="RainmeterEditor.Documents.Ini.IniSkinDesignerControl" <UserControl x:Class="RainmeterStudio.Documents.Ini.IniSkinDesignerControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"> d:DesignHeight="300" d:DesignWidth="300">
<Grid> <Grid>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@@ -1,27 +1,27 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Documents; using System.Windows.Documents;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
namespace RainmeterEditor.Documents.Ini namespace RainmeterStudio.Documents.Ini
{ {
/// <summary> /// <summary>
/// Interaction logic for IniSkinDesignerControl.xaml /// Interaction logic for IniSkinDesignerControl.xaml
/// </summary> /// </summary>
public partial class IniSkinDesignerControl : UserControl public partial class IniSkinDesignerControl : UserControl
{ {
public IniSkinDesignerControl() public IniSkinDesignerControl()
{ {
InitializeComponent(); InitializeComponent();
} }
} }
} }

View File

@@ -1,14 +1,14 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Documents.Ini namespace RainmeterStudio.Documents.Ini
{ {
/*public class IniSkinDesignerFactory : IDocumentEditorFactory /*public class IniSkinDesignerFactory : IDocumentEditorFactory
{ {
}*/ }*/
} }

View File

@@ -1,35 +1,35 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Documents.Text namespace RainmeterStudio.Documents.Text
{ {
public class TextDocument : IDocument public class TextDocument : IDocument
{ {
public string Name public string Name
{ {
get get
{ {
return Path.GetFileName(FilePath); return Path.GetFileName(FilePath);
} }
} }
public string FilePath public string FilePath
{ {
get; set; get; set;
} }
public string Text public string Text
{ {
get; set; get; set;
} }
public TextDocument() public TextDocument()
{ {
Text = String.Empty; Text = String.Empty;
} }
} }
} }

View File

@@ -1,27 +1,27 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Documents.Text namespace RainmeterStudio.Documents.Text
{ {
public class TextEditor : IDocumentEditor public class TextEditor : IDocumentEditor
{ {
private TextDocument _document; private TextDocument _document;
private TextEditorControl _control; private TextEditorControl _control;
public TextEditor(TextDocument document) public TextEditor(TextDocument document)
{ {
_document = document; _document = document;
_control = new TextEditorControl(document); _control = new TextEditorControl(document);
} }
public override IDocument Document { get { return _document; } } public override IDocument Document { get { return _document; } }
public override string Title { get { return _document.Name; } } public override string Title { get { return _document.Name; } }
public override System.Windows.UIElement EditorUI { get { return _control; } } public override System.Windows.UIElement EditorUI { get { return _control; } }
} }
} }

View File

@@ -1,11 +1,11 @@
<UserControl x:Class="RainmeterEditor.Documents.Text.TextEditorControl" <UserControl x:Class="RainmeterStudio.Documents.Text.TextEditorControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"> d:DesignHeight="300" d:DesignWidth="300">
<Grid> <Grid>
<TextBox Name="text" AcceptsReturn="True" /> <TextBox Name="text" AcceptsReturn="True" />
</Grid> </Grid>
</UserControl> </UserControl>

View File

@@ -1,32 +1,32 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Documents; using System.Windows.Documents;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
namespace RainmeterEditor.Documents.Text namespace RainmeterStudio.Documents.Text
{ {
/// <summary> /// <summary>
/// Interaction logic for TextEditorControl.xaml /// Interaction logic for TextEditorControl.xaml
/// </summary> /// </summary>
public partial class TextEditorControl : UserControl public partial class TextEditorControl : UserControl
{ {
private TextDocument _document; private TextDocument _document;
public TextEditorControl(TextDocument document) public TextEditorControl(TextDocument document)
{ {
InitializeComponent(); InitializeComponent();
_document = document; _document = document;
text.Text = document.Text; text.Text = document.Text;
} }
} }
} }

View File

@@ -1,59 +1,59 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Business; using RainmeterStudio.Business;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Documents.Text namespace RainmeterStudio.Documents.Text
{ {
public class TextEditorFactory : IDocumentEditorFactory public class TextEditorFactory : IDocumentEditorFactory
{ {
private TextStorage _storage = new TextStorage(); private TextStorage _storage = new TextStorage();
/// <inheritdoc /> /// <inheritdoc />
public string EditorName public string EditorName
{ {
get { return Resources.Strings.DocumentEditor_Text_Name; } get { return Resources.Strings.DocumentEditor_Text_Name; }
} }
/// <inheritdoc /> /// <inheritdoc />
public IEnumerable<DocumentFormat> CreateDocumentFormats public IEnumerable<DocumentFormat> CreateDocumentFormats
{ {
get get
{ {
yield return new DocumentFormat() yield return new DocumentFormat()
{ {
Name = Resources.Strings.DocumentFormat_TextFile_Name, Name = Resources.Strings.DocumentFormat_TextFile_Name,
Category = Resources.Strings.Category_Utility, Category = Resources.Strings.Category_Utility,
DefaultExtension = ".txt", DefaultExtension = ".txt",
Description = Resources.Strings.DocumentFormat_TextFile_Description, Description = Resources.Strings.DocumentFormat_TextFile_Description,
Icon = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Resources/Icons/text_file_32.png", UriKind.RelativeOrAbsolute)), Icon = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Resources/Icons/text_file_32.png", UriKind.RelativeOrAbsolute)),
Factory = this Factory = this
}; };
} }
} }
public IDocumentEditor CreateEditor(IDocument document) public IDocumentEditor CreateEditor(IDocument document)
{ {
TextDocument textDocument = document as TextDocument; TextDocument textDocument = document as TextDocument;
if (textDocument == null) if (textDocument == null)
throw new ArgumentException("Cannot edit provided document."); throw new ArgumentException("Cannot edit provided document.");
return new TextEditor(textDocument); return new TextEditor(textDocument);
} }
public IDocumentStorage Storage { get { return _storage; } } public IDocumentStorage Storage { get { return _storage; } }
public IDocument CreateDocument(DocumentFormat format, string path) public IDocument CreateDocument(DocumentFormat format, string path)
{ {
var document = new TextDocument(); var document = new TextDocument();
document.FilePath = path; document.FilePath = path;
return document; return document;
} }
} }
} }

View File

@@ -1,64 +1,64 @@
using System; using System;
using System.IO; using System.IO;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Documents.Text namespace RainmeterStudio.Documents.Text
{ {
/// <summary> /// <summary>
/// Storage for text files /// Storage for text files
/// </summary> /// </summary>
public class TextStorage : IDocumentStorage public class TextStorage : IDocumentStorage
{ {
/// <inheritdoc /> /// <inheritdoc />
IDocument IDocumentStorage.Read(string path) IDocument IDocumentStorage.Read(string path)
{ {
TextDocument document = new TextDocument(); TextDocument document = new TextDocument();
document.FilePath = path; document.FilePath = path;
document.Text = File.ReadAllText(path); document.Text = File.ReadAllText(path);
return document; return document;
} }
/// <inheritdoc /> /// <inheritdoc />
public void Write(string path, IDocument document) public void Write(string path, IDocument document)
{ {
TextDocument textDocument = document as TextDocument; TextDocument textDocument = document as TextDocument;
if (textDocument == null) if (textDocument == null)
throw new ArgumentException("Provided document is not supported by this storage."); throw new ArgumentException("Provided document is not supported by this storage.");
File.WriteAllText(path, textDocument.Text); File.WriteAllText(path, textDocument.Text);
} }
/// <inheritdoc /> /// <inheritdoc />
public bool CanRead(string path) public bool CanRead(string path)
{ {
// Open the file // Open the file
FileStream file = File.OpenRead(path); FileStream file = File.OpenRead(path);
// Read a small chunk (1kb should be enough) // Read a small chunk (1kb should be enough)
byte[] buffer = new byte[1024]; byte[] buffer = new byte[1024];
int read = file.Read(buffer, 0, buffer.Length); int read = file.Read(buffer, 0, buffer.Length);
// Close file // Close file
file.Close(); file.Close();
// Find 4 consecutive zero bytes // Find 4 consecutive zero bytes
int cnt = 0; int cnt = 0;
for (int i = 0; i < read; i++) for (int i = 0; i < read; i++)
{ {
// Count zero bytes // Count zero bytes
if (buffer[i] == 0) if (buffer[i] == 0)
++cnt; ++cnt;
else cnt = 0; else cnt = 0;
// Found > 4? Most likely binary file // Found > 4? Most likely binary file
if (cnt >= 4) if (cnt >= 4)
return false; return false;
} }
// Not found, probably text file // Not found, probably text file
return true; return true;
} }
} }
} }

View File

@@ -1,53 +1,53 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
namespace RainmeterEditor.Interop namespace RainmeterStudio.Interop
{ {
public class NativeLibrary : IDisposable public class NativeLibrary : IDisposable
{ {
#region Imports #region Imports
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr LoadLibrary(string libname); private static extern IntPtr LoadLibrary(string libname);
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)] [DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
private static extern bool FreeLibrary(IntPtr hModule); private static extern bool FreeLibrary(IntPtr hModule);
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)] [DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
private static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName); private static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
#endregion #endregion
public string DllName { get; private set; } public string DllName { get; private set; }
private IntPtr _handle; private IntPtr _handle;
public NativeLibrary(string dllName) public NativeLibrary(string dllName)
{ {
// Set properties // Set properties
DllName = dllName; DllName = dllName;
// Load library // Load library
_handle = LoadLibrary(DllName); _handle = LoadLibrary(DllName);
if (_handle == IntPtr.Zero) if (_handle == IntPtr.Zero)
{ {
int errorCode = Marshal.GetLastWin32Error(); int errorCode = Marshal.GetLastWin32Error();
throw new BadImageFormatException(string.Format("Failed to load library (ErrorCode: {0})", errorCode)); throw new BadImageFormatException(string.Format("Failed to load library (ErrorCode: {0})", errorCode));
} }
} }
public void Dispose() public void Dispose()
{ {
if (_handle != IntPtr.Zero) if (_handle != IntPtr.Zero)
FreeLibrary(_handle); FreeLibrary(_handle);
} }
public Delegate GetFunctionByName(string name, Type delegateType) public Delegate GetFunctionByName(string name, Type delegateType)
{ {
IntPtr addr = GetProcAddress(_handle, name); IntPtr addr = GetProcAddress(_handle, name);
return Marshal.GetDelegateForFunctionPointer(addr, delegateType); return Marshal.GetDelegateForFunctionPointer(addr, delegateType);
} }
} }
} }

View File

@@ -1,20 +1,20 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2008 Ricardo Amores Hernández Copyright (c) 2008 Ricardo Amores Hernández
Permission is hereby granted, free of charge, to any person obtaining a copy of 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 this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 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, the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions: subject to the following conditions:
The above copyright notice and this permission notice shall be included in all The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software. copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 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 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 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. CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,14 +1,14 @@
using System.Windows.Media; using System.Windows.Media;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public class DocumentFormat public class DocumentFormat
{ {
public string Name { get; set; } public string Name { get; set; }
public ImageSource Icon { get; set; } public ImageSource Icon { get; set; }
public string Description { get; set; } public string Description { get; set; }
public string DefaultExtension { get; set; } public string DefaultExtension { get; set; }
public IDocumentEditorFactory Factory { get; set; } public IDocumentEditorFactory Factory { get; set; }
public string Category { get; set; } public string Category { get; set; }
} }
} }

View File

@@ -1,17 +1,17 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
namespace RainmeterEditor.Model.Events namespace RainmeterStudio.Model.Events
{ {
public class DocumentOpenedEventArgs : EventArgs public class DocumentOpenedEventArgs : EventArgs
{ {
public IDocumentEditor Editor { get; private set; } public IDocumentEditor Editor { get; private set; }
public DocumentOpenedEventArgs(IDocumentEditor editor) public DocumentOpenedEventArgs(IDocumentEditor editor)
{ {
Editor = editor; Editor = editor;
} }
} }
} }

View File

@@ -1,13 +1,13 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public interface IDocument public interface IDocument
{ {
string Name { get; } string Name { get; }
string FilePath { get; } string FilePath { get; }
} }
} }

View File

@@ -1,136 +1,136 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public abstract class IDocumentEditor : IDisposable public abstract class IDocumentEditor : IDisposable
{ {
#region Dirty flag #region Dirty flag
private bool _dirty = false; private bool _dirty = false;
/// <summary> /// <summary>
/// Gets a flag indicating if the active document is dirty (modified and not saved) /// Gets a flag indicating if the active document is dirty (modified and not saved)
/// </summary> /// </summary>
public virtual bool Dirty public virtual bool Dirty
{ {
get get
{ {
return _dirty; return _dirty;
} }
protected set protected set
{ {
_dirty = value; _dirty = value;
if (DirtyChanged != null) if (DirtyChanged != null)
DirtyChanged(this, new EventArgs()); DirtyChanged(this, new EventArgs());
} }
} }
/// <summary> /// <summary>
/// Triggered when the dirty flag changes /// Triggered when the dirty flag changes
/// </summary> /// </summary>
public event EventHandler DirtyChanged; public event EventHandler DirtyChanged;
#endregion #endregion
#region Document #region Document
/// <summary> /// <summary>
/// Gets the opened document /// Gets the opened document
/// </summary> /// </summary>
public abstract IDocument Document { get; } public abstract IDocument Document { get; }
/// <summary> /// <summary>
/// Gets the title to be displayed in the title bar /// Gets the title to be displayed in the title bar
/// </summary> /// </summary>
public abstract string Title { get; } public abstract string Title { get; }
/// <summary> /// <summary>
/// Triggered when the title changes /// Triggered when the title changes
/// </summary> /// </summary>
public event EventHandler TitleChanged; public event EventHandler TitleChanged;
#endregion #endregion
#region EditorUI #region EditorUI
/// <summary> /// <summary>
/// Gets the editor UI /// Gets the editor UI
/// </summary> /// </summary>
public abstract UIElement EditorUI { get; } public abstract UIElement EditorUI { get; }
#endregion #endregion
#region Selection properties #region Selection properties
/// <summary> /// <summary>
/// Gets a value indicating if this editor uses the selection properties window /// Gets a value indicating if this editor uses the selection properties window
/// </summary> /// </summary>
public virtual bool UsesSelectionProperties public virtual bool UsesSelectionProperties
{ {
get get
{ {
return false; return false;
} }
} }
/// <summary> /// <summary>
/// Gets the name of the selected object /// Gets the name of the selected object
/// </summary> /// </summary>
public virtual string SelectionName public virtual string SelectionName
{ {
get get
{ {
return String.Empty; return String.Empty;
} }
} }
/// <summary> /// <summary>
/// Gets a list of properties for the currently selected object /// Gets a list of properties for the currently selected object
/// </summary> /// </summary>
public virtual IEnumerable<string> SelectionProperties public virtual IEnumerable<string> SelectionProperties
{ {
get get
{ {
yield break; yield break;
} }
} }
/// <summary> /// <summary>
/// Triggered when the selected object changes (used to update properties) /// Triggered when the selected object changes (used to update properties)
/// </summary> /// </summary>
public event EventHandler SelectionChanged; public event EventHandler SelectionChanged;
#endregion #endregion
#region Toolbox #region Toolbox
/// <summary> /// <summary>
/// Gets a list of items to populate the toolbox /// Gets a list of items to populate the toolbox
/// </summary> /// </summary>
public virtual IEnumerable<string> ToolboxItems public virtual IEnumerable<string> ToolboxItems
{ {
get get
{ {
yield break; yield break;
} }
} }
public event EventHandler ToolboxChanged; public event EventHandler ToolboxChanged;
#endregion #endregion
#region Dispose #region Dispose
/// <summary> /// <summary>
/// Dispose /// Dispose
/// </summary> /// </summary>
public virtual void Dispose() public virtual void Dispose()
{ {
} }
#endregion #endregion
} }
} }

View File

@@ -1,39 +1,39 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Storage; using RainmeterStudio.Storage;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public interface IDocumentEditorFactory public interface IDocumentEditorFactory
{ {
/// <summary> /// <summary>
/// Name of the editor /// Name of the editor
/// </summary> /// </summary>
string EditorName { get; } string EditorName { get; }
/// <summary> /// <summary>
/// Formats that will be used to populate the 'create document' dialog /// Formats that will be used to populate the 'create document' dialog
/// </summary> /// </summary>
IEnumerable<DocumentFormat> CreateDocumentFormats { get; } IEnumerable<DocumentFormat> CreateDocumentFormats { get; }
/// <summary> /// <summary>
/// Creates a new editor object /// Creates a new editor object
/// </summary> /// </summary>
/// <param name="document">Document to be edited by the editor</param> /// <param name="document">Document to be edited by the editor</param>
/// <returns>A new document editor</returns> /// <returns>A new document editor</returns>
IDocumentEditor CreateEditor(IDocument document); IDocumentEditor CreateEditor(IDocument document);
/// <summary> /// <summary>
/// Creates a new document /// Creates a new document
/// </summary> /// </summary>
/// <returns>A new document</returns> /// <returns>A new document</returns>
IDocument CreateDocument(DocumentFormat format, string path); IDocument CreateDocument(DocumentFormat format, string path);
/// <summary> /// <summary>
/// Gets the storage of this factory /// Gets the storage of this factory
/// </summary> /// </summary>
IDocumentStorage Storage { get; } IDocumentStorage Storage { get; }
} }
} }

View File

@@ -1,26 +1,26 @@
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public interface IDocumentStorage public interface IDocumentStorage
{ {
/// <summary> /// <summary>
/// Reads a document from file /// Reads a document from file
/// </summary> /// </summary>
/// <param name="path">Path to file</param> /// <param name="path">Path to file</param>
/// <returns>Read document</returns> /// <returns>Read document</returns>
IDocument Read(string path); IDocument Read(string path);
/// <summary> /// <summary>
/// Writes a document to a file /// Writes a document to a file
/// </summary> /// </summary>
/// <param name="path">Path to file</param> /// <param name="path">Path to file</param>
/// <param name="document">Document to write</param> /// <param name="document">Document to write</param>
void Write(string path, IDocument document); void Write(string path, IDocument document);
/// <summary> /// <summary>
/// Tests if the file can be read by this storage /// Tests if the file can be read by this storage
/// </summary> /// </summary>
/// <param name="path">Path to file</param> /// <param name="path">Path to file</param>
/// <returns>True if file can be read</returns> /// <returns>True if file can be read</returns>
bool CanRead(string path); bool CanRead(string path);
} }
} }

View File

@@ -1,114 +1,114 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public class Project public class Project
{ {
[XmlElement("name")] [XmlElement("name")]
public string Name { get; set; } public string Name { get; set; }
[XmlElement("author")] [XmlElement("author")]
public string Author { get; set; } public string Author { get; set; }
[XmlIgnore] [XmlIgnore]
public Version Version { get; set; } public Version Version { get; set; }
[XmlElement("version")] [XmlElement("version")]
public string VersionString public string VersionString
{ {
get get
{ {
return Version.ToString(); return Version.ToString();
} }
set set
{ {
Version = new Version(value); Version = new Version(value);
} }
} }
[XmlElement("autoLoadFile")] [XmlElement("autoLoadFile")]
public Reference AutoLoadFile { get; set; } public Reference AutoLoadFile { get; set; }
[XmlArray("variableFiles")] [XmlArray("variableFiles")]
public List<Reference> VariableFiles { get; set; } public List<Reference> VariableFiles { get; set; }
[XmlIgnore] [XmlIgnore]
public Version MinimumRainmeter { get; set; } public Version MinimumRainmeter { get; set; }
[XmlElement("minimumRainmeter")] [XmlElement("minimumRainmeter")]
public string MinimumRainmeterString public string MinimumRainmeterString
{ {
get get
{ {
return MinimumRainmeter.ToString(); return MinimumRainmeter.ToString();
} }
set set
{ {
MinimumRainmeter = new Version(value); MinimumRainmeter = new Version(value);
} }
} }
[XmlIgnore] [XmlIgnore]
public Version MinimumWindows { get; set; } public Version MinimumWindows { get; set; }
[XmlElement("minimumWindows")] [XmlElement("minimumWindows")]
public string MinimumWindowsString public string MinimumWindowsString
{ {
get get
{ {
return MinimumWindows.ToString(); return MinimumWindows.ToString();
} }
set set
{ {
MinimumWindows = new Version(value); MinimumWindows = new Version(value);
} }
} }
[XmlElement("root")] [XmlElement("root")]
public Tree<Reference> Root { get; set; } public Tree<Reference> Root { get; set; }
public Project() public Project()
{ {
Root = new Tree<Reference>(); Root = new Tree<Reference>();
VariableFiles = new List<Reference>(); VariableFiles = new List<Reference>();
Version = new Version(); Version = new Version();
MinimumRainmeter = new Version("3.1"); MinimumRainmeter = new Version("3.1");
MinimumWindows = new Version("5.1"); MinimumWindows = new Version("5.1");
} }
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
Project other = obj as Project; Project other = obj as Project;
if (other == null) if (other == null)
return false; return false;
bool res = String.Equals(Author, other.Author); bool res = String.Equals(Author, other.Author);
res &= Reference.Equals(AutoLoadFile, other.AutoLoadFile); res &= Reference.Equals(AutoLoadFile, other.AutoLoadFile);
res &= Version.Equals(MinimumRainmeter, other.MinimumRainmeter); res &= Version.Equals(MinimumRainmeter, other.MinimumRainmeter);
res &= Version.Equals(MinimumWindows, other.MinimumWindows); res &= Version.Equals(MinimumWindows, other.MinimumWindows);
res &= String.Equals(Name, other.Name); res &= String.Equals(Name, other.Name);
res &= Tree<Reference>.Equals(Root, other.Root); res &= Tree<Reference>.Equals(Root, other.Root);
res &= Version.Equals(Version, other.Version); res &= Version.Equals(Version, other.Version);
return res; return res;
} }
public override int GetHashCode() public override int GetHashCode()
{ {
int hash = (Author == null) ? 0 : Author.GetHashCode(); int hash = (Author == null) ? 0 : Author.GetHashCode();
hash = hash * 7 + ((AutoLoadFile == null) ? 0 : AutoLoadFile.GetHashCode()); hash = hash * 7 + ((AutoLoadFile == null) ? 0 : AutoLoadFile.GetHashCode());
hash = hash * 7 + ((MinimumRainmeter == null) ? 0 : MinimumRainmeter.GetHashCode()); hash = hash * 7 + ((MinimumRainmeter == null) ? 0 : MinimumRainmeter.GetHashCode());
hash = hash * 7 + ((MinimumWindows == null) ? 0 : MinimumWindows.GetHashCode()); hash = hash * 7 + ((MinimumWindows == null) ? 0 : MinimumWindows.GetHashCode());
hash = hash * 7 + ((Name == null) ? 0 : Name.GetHashCode()); hash = hash * 7 + ((Name == null) ? 0 : Name.GetHashCode());
hash = hash * 7 + ((Root == null) ? 0 : Root.GetHashCode()); hash = hash * 7 + ((Root == null) ? 0 : Root.GetHashCode());
hash = hash * 7 + ((Version == null) ? 0 : Version.GetHashCode()); hash = hash * 7 + ((Version == null) ? 0 : Version.GetHashCode());
return hash; return hash;
} }
} }
} }

View File

@@ -1,30 +1,30 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public class Property public class Property
{ {
public string Name { get; set; } public string Name { get; set; }
private object _value; private object _value;
public object Value public object Value
{ {
get get
{ {
return _value; return _value;
} }
set set
{ {
_value = value; _value = value;
if (ValueChanged != null) if (ValueChanged != null)
ValueChanged(this, new EventArgs()); ValueChanged(this, new EventArgs());
} }
} }
public event EventHandler ValueChanged; public event EventHandler ValueChanged;
} }
} }

View File

@@ -1,11 +1,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public class RainmeterConfig public class RainmeterConfig
{ {
} }
} }

View File

@@ -1,50 +1,50 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
/// <summary> /// <summary>
/// Reference to a file or folder /// Reference to a file or folder
/// </summary> /// </summary>
public class Reference public class Reference
{ {
[XmlAttribute("name")] [XmlAttribute("name")]
public string Name { get; set; } public string Name { get; set; }
[XmlAttribute("path")] [XmlAttribute("path")]
public string Path { get; set; } public string Path { get; set; }
public Reference() public Reference()
{ {
} }
public Reference(string name, string path = null) public Reference(string name, string path = null)
{ {
Name = name; Name = name;
Path = path; Path = path;
} }
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
var other = obj as Reference; var other = obj as Reference;
// Types are different, so not equal // Types are different, so not equal
if (other == null) if (other == null)
return false; return false;
// Compare using string equals // Compare using string equals
return String.Equals(Name, other.Name) && String.Equals(Path, other.Path); return String.Equals(Name, other.Name) && String.Equals(Path, other.Path);
} }
public override int GetHashCode() public override int GetHashCode()
{ {
int hash = (Name == null) ? 0 : Name.GetHashCode(); int hash = (Name == null) ? 0 : Name.GetHashCode();
hash = hash * 7 + ((Path == null) ? 0 : Path.GetHashCode()); hash = hash * 7 + ((Path == null) ? 0 : Path.GetHashCode());
return hash; return hash;
} }
} }
} }

View File

@@ -1,153 +1,153 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace RainmeterEditor.Model namespace RainmeterStudio.Model
{ {
public class Tree<T> public class Tree<T>
{ {
[XmlElement("data")] [XmlElement("data")]
public T Data { get; set; } public T Data { get; set; }
[XmlArray("children"), XmlArrayItem("child")] [XmlArray("children"), XmlArrayItem("child")]
public List<Tree<T>> Children { get; set; } public List<Tree<T>> Children { get; set; }
public Tree() public Tree()
{ {
Children = new List<Tree<T>>(); Children = new List<Tree<T>>();
Data = default(T); Data = default(T);
} }
public Tree(T data) public Tree(T data)
{ {
Children = new List<Tree<T>>(); Children = new List<Tree<T>>();
Data = data; Data = data;
} }
public int IndexOf(Tree<T> item) public int IndexOf(Tree<T> item)
{ {
return Children.IndexOf(item); return Children.IndexOf(item);
} }
public void Insert(int index, Tree<T> item) public void Insert(int index, Tree<T> item)
{ {
Children.Insert(index, item); Children.Insert(index, item);
} }
public void RemoveAt(int index) public void RemoveAt(int index)
{ {
Children.RemoveAt(index); Children.RemoveAt(index);
} }
public Tree<T> this[int index] public Tree<T> this[int index]
{ {
get get
{ {
return Children[index]; return Children[index];
} }
set set
{ {
Children[index] = value; Children[index] = value;
} }
} }
public void Add(Tree<T> item) public void Add(Tree<T> item)
{ {
Children.Add(item); Children.Add(item);
} }
public void Clear() public void Clear()
{ {
Children.Clear(); Children.Clear();
} }
public bool Contains(Tree<T> item) public bool Contains(Tree<T> item)
{ {
return Children.Contains(item); return Children.Contains(item);
} }
public void CopyTo(Tree<T>[] array, int arrayIndex) public void CopyTo(Tree<T>[] array, int arrayIndex)
{ {
Children.CopyTo(array, arrayIndex); Children.CopyTo(array, arrayIndex);
} }
public int Count public int Count
{ {
get { return Children.Count; } get { return Children.Count; }
} }
public bool IsReadOnly public bool IsReadOnly
{ {
get { return false; } get { return false; }
} }
public bool Remove(Tree<T> item) public bool Remove(Tree<T> item)
{ {
return Children.Remove(item); return Children.Remove(item);
} }
public IEnumerator<Tree<T>> GetEnumerator() public IEnumerator<Tree<T>> GetEnumerator()
{ {
return Children.GetEnumerator(); return Children.GetEnumerator();
} }
public int IndexOf(T item) public int IndexOf(T item)
{ {
return Children.IndexOf(new Tree<T>(item)); return Children.IndexOf(new Tree<T>(item));
} }
public void Insert(int index, T item) public void Insert(int index, T item)
{ {
Children.Insert(index, new Tree<T>(item)); Children.Insert(index, new Tree<T>(item));
} }
public void Add(T item) public void Add(T item)
{ {
Children.Add(new Tree<T>(item)); Children.Add(new Tree<T>(item));
} }
public bool Contains(T item) public bool Contains(T item)
{ {
return Children.Contains(new Tree<T>(item)); return Children.Contains(new Tree<T>(item));
} }
public void CopyTo(T[] array, int arrayIndex) public void CopyTo(T[] array, int arrayIndex)
{ {
foreach (var node in Children) foreach (var node in Children)
array[arrayIndex++] = node.Data; array[arrayIndex++] = node.Data;
} }
public bool Remove(T item) public bool Remove(T item)
{ {
return Children.Remove(new Tree<T>(item)); return Children.Remove(new Tree<T>(item));
} }
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
Tree<T> other = obj as Tree<T>; Tree<T> other = obj as Tree<T>;
// Types are different, so not equal // Types are different, so not equal
if (other == null) if (other == null)
return false; return false;
// Compare data // Compare data
if (!object.Equals(Data, other.Data)) if (!object.Equals(Data, other.Data))
return false; return false;
// Compare children array // Compare children array
return Children.SequenceEqual(other.Children); return Children.SequenceEqual(other.Children);
} }
public override int GetHashCode() public override int GetHashCode()
{ {
int hash = ((Data == null) ? 0 : Data.GetHashCode()); int hash = ((Data == null) ? 0 : Data.GetHashCode());
foreach (var c in Children) foreach (var c in Children)
hash = hash * 7 + c.GetHashCode(); hash = hash * 7 + c.GetHashCode();
return hash; return hash;
} }
} }
} }

View File

@@ -1,55 +1,55 @@
using System.Reflection; using System.Reflection;
using System.Resources; using System.Resources;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Windows; using System.Windows;
// General Information about an assembly is controlled through the following // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
// associated with an assembly. // associated with an assembly.
[assembly: AssemblyTitle("RainmeterEditor")] [assembly: AssemblyTitle("RainmeterStudio")]
[assembly: AssemblyDescription("")] [assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RainmeterEditor")] [assembly: AssemblyProduct("RainmeterStudio")]
[assembly: AssemblyCopyright("Copyright © 2014")] [assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible // 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 // to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type. // COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)] [assembly: ComVisible(false)]
//In order to begin building localizable applications, set //In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file //<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english //inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment //in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in //the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file. //the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo( [assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page, //(used if a resource is not found in the page,
// or application resource dictionaries) // or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page, //(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries) // app, or any theme specific resource dictionaries)
)] )]
// Version information for an assembly consists of the following four values: // Version information for an assembly consists of the following four values:
// //
// Major Version // Major Version
// Minor Version // Minor Version
// Build Number // Build Number
// Revision // Revision
// //
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -1,63 +1,63 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:4.0.30319.34014 // Runtime Version:4.0.30319.34014
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace RainmeterEditor.Properties { namespace RainmeterStudio.Properties {
using System; using System;
/// <summary> /// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc. /// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary> /// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder // This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio. // class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen // To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project. // with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources { internal class Resources {
private static global::System.Resources.ResourceManager resourceMan; private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture; private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() { internal Resources() {
} }
/// <summary> /// <summary>
/// Returns the cached ResourceManager instance used by this class. /// Returns the cached ResourceManager instance used by this class.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager { internal static global::System.Resources.ResourceManager ResourceManager {
get { get {
if (object.ReferenceEquals(resourceMan, null)) { if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterEditor.Properties.Resources", typeof(Resources).Assembly); global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterStudio.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp; resourceMan = temp;
} }
return resourceMan; return resourceMan;
} }
} }
/// <summary> /// <summary>
/// Overrides the current thread's CurrentUICulture property for all /// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class. /// resource lookups using this strongly typed resource class.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture { internal static global::System.Globalization.CultureInfo Culture {
get { get {
return resourceCulture; return resourceCulture;
} }
set { set {
resourceCulture = value; resourceCulture = value;
} }
} }
} }
} }

View File

@@ -1,117 +1,117 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, 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="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="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <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> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter : System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : 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: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:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <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:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
</root> </root>

View File

@@ -1,26 +1,26 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:4.0.30319.34014 // Runtime Version:4.0.30319.34014
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace RainmeterEditor.Properties { namespace RainmeterStudio.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default { public static Settings Default {
get { get {
return defaultInstance; return defaultInstance;
} }
} }
} }
} }

View File

@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> <SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles> <Profiles>
<Profile Name="(Default)" /> <Profile Name="(Default)" />
</Profiles> </Profiles>
<Settings /> <Settings />
</SettingsFile> </SettingsFile>

View File

@@ -1,59 +1,59 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
using RainmeterEditor.Interop; using RainmeterStudio.Interop;
namespace RainmeterEditor namespace RainmeterStudio
{ {
class Rainmeter class Rainmeter
{ {
#region Imports #region Imports
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)] [DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr Rainmeter_Initialize(); private static extern IntPtr Rainmeter_Initialize();
[DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)] [DllImport("Rainmeter.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern void Rainmeter_Finalize(IntPtr handle); private static extern void Rainmeter_Finalize(IntPtr handle);
#endregion #endregion
private static Rainmeter _instance = null; private static Rainmeter _instance = null;
/// <summary> /// <summary>
/// Gets the single instance of this class /// Gets the single instance of this class
/// </summary> /// </summary>
public static Rainmeter Instance public static Rainmeter Instance
{ {
get get
{ {
if (_instance == null) if (_instance == null)
_instance = new Rainmeter(); _instance = new Rainmeter();
return _instance; return _instance;
} }
} }
private IntPtr _handle; private IntPtr _handle;
#region Constructor, finalizer #region Constructor, finalizer
private Rainmeter() private Rainmeter()
{ {
_handle = Rainmeter_Initialize(); _handle = Rainmeter_Initialize();
if (_handle == IntPtr.Zero) if (_handle == IntPtr.Zero)
throw new Exception("Failed to initialize native library."); throw new Exception("Failed to initialize native library.");
} }
~Rainmeter() ~Rainmeter()
{ {
Rainmeter_Finalize(_handle); Rainmeter_Finalize(_handle);
} }
#endregion #endregion
public IntPtr Handle { get { return _handle; } } public IntPtr Handle { get { return _handle; } }
} }
} }

View File

@@ -1,214 +1,214 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <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')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{438D0136-4A27-4E4D-A617-FFACE4554236}</ProjectGuid> <ProjectGuid>{438D0136-4A27-4E4D-A617-FFACE4554236}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RainmeterEditor</RootNamespace> <RootNamespace>RainmeterStudio</RootNamespace>
<AssemblyName>RainmeterEditor</AssemblyName> <AssemblyName>RainmeterEditor</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<TargetFrameworkProfile /> <TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>..\x32-Debug\</OutputPath> <OutputPath>..\x32-Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath> <OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants> <DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="INIFileParser"> <Reference Include="INIFileParser">
<HintPath>..\packages\ini-parser.2.1.1\lib\INIFileParser.dll</HintPath> <HintPath>..\packages\ini-parser.2.1.1\lib\INIFileParser.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Xaml" /> <Reference Include="System.Xaml" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
<Reference Include="PresentationCore" /> <Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" /> <Reference Include="PresentationFramework" />
<Reference Include="Xceed.Wpf.AvalonDock"> <Reference Include="Xceed.Wpf.AvalonDock">
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath> <HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero"> <Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero">
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath> <HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Expression"> <Reference Include="Xceed.Wpf.AvalonDock.Themes.Expression">
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Expression.dll</HintPath> <HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Expression.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro"> <Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro">
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath> <HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010"> <Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010">
<HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath> <HintPath>..\packages\AvalonDock.2.0.2000\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ApplicationDefinition Include="App.xaml"> <ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</ApplicationDefinition> </ApplicationDefinition>
<Compile Include="Business\DocumentManager.cs" /> <Compile Include="Business\DocumentManager.cs" />
<Compile Include="Business\ProjectManager.cs" /> <Compile Include="Business\ProjectManager.cs" />
<Compile Include="Documents\Text\TextDocument.cs" /> <Compile Include="Documents\Text\TextDocument.cs" />
<Compile Include="Documents\Text\TextEditorControl.xaml.cs"> <Compile Include="Documents\Text\TextEditorControl.xaml.cs">
<DependentUpon>TextEditorControl.xaml</DependentUpon> <DependentUpon>TextEditorControl.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Documents\Text\TextStorage.cs" /> <Compile Include="Documents\Text\TextStorage.cs" />
<Compile Include="Model\DocumentFormat.cs" /> <Compile Include="Model\DocumentFormat.cs" />
<Compile Include="Model\IDocument.cs" /> <Compile Include="Model\IDocument.cs" />
<Compile Include="Model\IDocumentEditor.cs" /> <Compile Include="Model\IDocumentEditor.cs" />
<Compile Include="Model\IDocumentEditorFactory.cs" /> <Compile Include="Model\IDocumentEditorFactory.cs" />
<Compile Include="Documents\Ini\IniDocument.cs" /> <Compile Include="Documents\Ini\IniDocument.cs" />
<Compile Include="Documents\Ini\IniSkinDesigner.cs" /> <Compile Include="Documents\Ini\IniSkinDesigner.cs" />
<Compile Include="Documents\Ini\IniSkinDesignerControl.xaml.cs"> <Compile Include="Documents\Ini\IniSkinDesignerControl.xaml.cs">
<DependentUpon>IniSkinDesignerControl.xaml</DependentUpon> <DependentUpon>IniSkinDesignerControl.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Documents\Ini\IniSkinDesignerFactory.cs" /> <Compile Include="Documents\Ini\IniSkinDesignerFactory.cs" />
<Compile Include="Documents\Text\TextEditor.cs" /> <Compile Include="Documents\Text\TextEditor.cs" />
<Compile Include="Documents\Text\TextEditorFactory.cs" /> <Compile Include="Documents\Text\TextEditorFactory.cs" />
<Compile Include="Interop\NativeLibrary.cs" /> <Compile Include="Interop\NativeLibrary.cs" />
<Compile Include="Model\Project.cs" /> <Compile Include="Model\Project.cs" />
<Compile Include="Model\Property.cs" /> <Compile Include="Model\Property.cs" />
<Compile Include="Model\RainmeterConfig.cs" /> <Compile Include="Model\RainmeterConfig.cs" />
<Compile Include="Model\Reference.cs" /> <Compile Include="Model\Reference.cs" />
<Compile Include="Model\Tree.cs" /> <Compile Include="Model\Tree.cs" />
<Compile Include="Rainmeter.cs" /> <Compile Include="Rainmeter.cs" />
<Compile Include="Resources\Strings.Designer.cs"> <Compile Include="Resources\Strings.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
<DependentUpon>Strings.resx</DependentUpon> <DependentUpon>Strings.resx</DependentUpon>
</Compile> </Compile>
<Compile Include="Model\IDocumentStorage.cs" /> <Compile Include="Model\IDocumentStorage.cs" />
<Compile Include="Storage\ProjectStorage.cs" /> <Compile Include="Storage\ProjectStorage.cs" />
<Compile Include="Storage\SkinDirectory.cs" /> <Compile Include="Storage\SkinDirectory.cs" />
<Compile Include="UI\Command.cs" /> <Compile Include="UI\Command.cs" />
<Compile Include="UI\Dialogs\CreateDocumentDialog.xaml.cs"> <Compile Include="UI\Dialogs\CreateDocumentDialog.xaml.cs">
<DependentUpon>CreateDocumentDialog.xaml</DependentUpon> <DependentUpon>CreateDocumentDialog.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="UI\Controller\DocumentController.cs" /> <Compile Include="UI\Controller\DocumentController.cs" />
<Compile Include="Model\Events\DocumentOpenedEventArgs.cs" /> <Compile Include="Model\Events\DocumentOpenedEventArgs.cs" />
<Compile Include="UI\SkinsPanel.xaml.cs"> <Compile Include="UI\SkinsPanel.xaml.cs">
<DependentUpon>SkinsPanel.xaml</DependentUpon> <DependentUpon>SkinsPanel.xaml</DependentUpon>
</Compile> </Compile>
<Page Include="Documents\Ini\IniSkinDesignerControl.xaml"> <Page Include="Documents\Ini\IniSkinDesignerControl.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Documents\Text\TextEditorControl.xaml"> <Page Include="Documents\Text\TextEditorControl.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="UI\Dialogs\CreateDocumentDialog.xaml"> <Page Include="UI\Dialogs\CreateDocumentDialog.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="UI\MainWindow.xaml"> <Page Include="UI\MainWindow.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Compile Include="App.xaml.cs"> <Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon> <DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="UI\MainWindow.xaml.cs"> <Compile Include="UI\MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon> <DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Page Include="UI\SkinsPanel.xaml"> <Page Include="UI\SkinsPanel.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="UI\Styles\ButtonStyle.xaml"> <Page Include="UI\Styles\ButtonStyle.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="UI\Styles\Common.xaml"> <Page Include="UI\Styles\Common.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs"> <Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Properties\Resources.Designer.cs"> <Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon> <DependentUpon>Resources.resx</DependentUpon>
</Compile> </Compile>
<Compile Include="Properties\Settings.Designer.cs"> <Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon> <DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput> <DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile> </Compile>
<EmbeddedResource Include="Properties\Resources.resx"> <EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput> <LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Resources\Strings.resx"> <EmbeddedResource Include="Resources\Strings.resx">
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.Designer.cs</LastGenOutput> <LastGenOutput>Strings.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<None Include="app.config" /> <None Include="app.config" />
<None Include="LICENSE" /> <None Include="LICENSE" />
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None> </None>
<AppDesigner Include="Properties\" /> <AppDesigner Include="Properties\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Icons\text_file_32.png" /> <Resource Include="Resources\Icons\text_file_32.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<SplashScreen Include="Resources\splash.png" /> <SplashScreen Include="Resources\splash.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Icons\arrow_left_16.png" /> <Resource Include="Resources\Icons\arrow_left_16.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Icons\arrow_right_16.png" /> <Resource Include="Resources\Icons\arrow_right_16.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Icons\arrow_backward_16.png" /> <Resource Include="Resources\Icons\arrow_backward_16.png" />
<Resource Include="Resources\Icons\arrow_forward_16.png" /> <Resource Include="Resources\Icons\arrow_forward_16.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Icons\page_white_star_16.png" /> <Resource Include="Resources\Icons\page_white_star_16.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Icons\project_16.png" /> <Resource Include="Resources\Icons\project_16.png" />
<Resource Include="Resources\Icons\project_star_16.png" /> <Resource Include="Resources\Icons\project_star_16.png" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
</Target> </Target>
<Target Name="AfterBuild"> <Target Name="AfterBuild">
</Target> </Target>
--> -->
</Project> </Project>

View File

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 343 B

View File

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 375 B

View File

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 345 B

View File

Before

Width:  |  Height:  |  Size: 349 B

After

Width:  |  Height:  |  Size: 349 B

View File

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 565 B

View File

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 724 B

View File

Before

Width:  |  Height:  |  Size: 742 B

After

Width:  |  Height:  |  Size: 742 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,117 +1,117 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:4.0.30319.34014 // Runtime Version:4.0.30319.34014
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace RainmeterEditor.Resources { namespace RainmeterStudio.Resources {
using System; using System;
/// <summary> /// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc. /// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary> /// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder // This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio. // class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen // To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project. // with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Strings { internal class Strings {
private static global::System.Resources.ResourceManager resourceMan; private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture; private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Strings() { internal Strings() {
} }
/// <summary> /// <summary>
/// Returns the cached ResourceManager instance used by this class. /// Returns the cached ResourceManager instance used by this class.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager { internal static global::System.Resources.ResourceManager ResourceManager {
get { get {
if (object.ReferenceEquals(resourceMan, null)) { if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterEditor.Resources.Strings", typeof(Strings).Assembly); global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RainmeterStudio.Resources.Strings", typeof(Strings).Assembly);
resourceMan = temp; resourceMan = temp;
} }
return resourceMan; return resourceMan;
} }
} }
/// <summary> /// <summary>
/// Overrides the current thread's CurrentUICulture property for all /// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class. /// resource lookups using this strongly typed resource class.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture { internal static global::System.Globalization.CultureInfo Culture {
get { get {
return resourceCulture; return resourceCulture;
} }
set { set {
resourceCulture = value; resourceCulture = value;
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Utility. /// Looks up a localized string similar to Utility.
/// </summary> /// </summary>
internal static string Category_Utility { internal static string Category_Utility {
get { get {
return ResourceManager.GetString("Category_Utility", resourceCulture); return ResourceManager.GetString("Category_Utility", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to _File.... /// Looks up a localized string similar to _File....
/// </summary> /// </summary>
internal static string DocumentCreateCommand_DisplayText { internal static string DocumentCreateCommand_DisplayText {
get { get {
return ResourceManager.GetString("DocumentCreateCommand_DisplayText", resourceCulture); return ResourceManager.GetString("DocumentCreateCommand_DisplayText", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Creates a new file. /// Looks up a localized string similar to Creates a new file.
/// </summary> /// </summary>
internal static string DocumentCreateCommand_ToolTip { internal static string DocumentCreateCommand_ToolTip {
get { get {
return ResourceManager.GetString("DocumentCreateCommand_ToolTip", resourceCulture); return ResourceManager.GetString("DocumentCreateCommand_ToolTip", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Text Editor. /// Looks up a localized string similar to Text Editor.
/// </summary> /// </summary>
internal static string DocumentEditor_Text_Name { internal static string DocumentEditor_Text_Name {
get { get {
return ResourceManager.GetString("DocumentEditor_Text_Name", resourceCulture); return ResourceManager.GetString("DocumentEditor_Text_Name", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Blank text file. /// Looks up a localized string similar to Blank text file.
/// </summary> /// </summary>
internal static string DocumentFormat_TextFile_Description { internal static string DocumentFormat_TextFile_Description {
get { get {
return ResourceManager.GetString("DocumentFormat_TextFile_Description", resourceCulture); return ResourceManager.GetString("DocumentFormat_TextFile_Description", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Text file. /// Looks up a localized string similar to Text file.
/// </summary> /// </summary>
internal static string DocumentFormat_TextFile_Name { internal static string DocumentFormat_TextFile_Name {
get { get {
return ResourceManager.GetString("DocumentFormat_TextFile_Name", resourceCulture); return ResourceManager.GetString("DocumentFormat_TextFile_Name", resourceCulture);
} }
} }
} }
} }

View File

@@ -1,138 +1,138 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, 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="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="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <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> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : 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: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:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <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:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <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="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="Category_Utility" xml:space="preserve"> <data name="Category_Utility" xml:space="preserve">
<value>Utility</value> <value>Utility</value>
</data> </data>
<data name="DocumentCreateCommand_DisplayText" xml:space="preserve"> <data name="DocumentCreateCommand_DisplayText" xml:space="preserve">
<value>_File...</value> <value>_File...</value>
</data> </data>
<data name="DocumentCreateCommand_ToolTip" xml:space="preserve"> <data name="DocumentCreateCommand_ToolTip" xml:space="preserve">
<value>Creates a new file</value> <value>Creates a new file</value>
</data> </data>
<data name="DocumentEditor_Text_Name" xml:space="preserve"> <data name="DocumentEditor_Text_Name" xml:space="preserve">
<value>Text Editor</value> <value>Text Editor</value>
</data> </data>
<data name="DocumentFormat_TextFile_Description" xml:space="preserve"> <data name="DocumentFormat_TextFile_Description" xml:space="preserve">
<value>Blank text file</value> <value>Blank text file</value>
</data> </data>
<data name="DocumentFormat_TextFile_Name" xml:space="preserve"> <data name="DocumentFormat_TextFile_Name" xml:space="preserve">
<value>Text file</value> <value>Text file</value>
</data> </data>
</root> </root>

View File

Before

Width:  |  Height:  |  Size: 317 KiB

After

Width:  |  Height:  |  Size: 317 KiB

View File

@@ -1,40 +1,40 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Xml.Serialization; using System.Xml.Serialization;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.Storage namespace RainmeterStudio.Storage
{ {
public class ProjectStorage public class ProjectStorage
{ {
public Project Load(string path) public Project Load(string path)
{ {
// Open file // Open file
var file = File.OpenText(path); var file = File.OpenText(path);
// Deserialize file // Deserialize file
var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project")); var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project"));
Project project = serializer.Deserialize(file) as Project; Project project = serializer.Deserialize(file) as Project;
// Clean up // Clean up
file.Close(); file.Close();
return project; return project;
} }
public void Save(string path, Project project) public void Save(string path, Project project)
{ {
// Open file // Open file
var file = File.OpenWrite(path); var file = File.OpenWrite(path);
// Deserialize file // Deserialize file
var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project")); var serializer = new XmlSerializer(typeof(Project), new XmlRootAttribute("project"));
serializer.Serialize(file, project); serializer.Serialize(file, project);
// Clean up // Clean up
file.Close(); file.Close();
} }
} }
} }

View File

@@ -1,25 +1,25 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
namespace RainmeterEditor.Storage namespace RainmeterStudio.Storage
{ {
public static class SkinDirectory public static class SkinDirectory
{ {
private static string _path = null; private static string _path = null;
public static string Path public static string Path
{ {
get get
{ {
return ""; return "";
} }
set set
{ {
} }
} }
} }
} }

View File

@@ -1,88 +1,88 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
namespace RainmeterEditor.UI namespace RainmeterStudio.UI
{ {
public class Command : ICommand public class Command : ICommand
{ {
#region Private members #region Private members
private Action<object> _execute; private Action<object> _execute;
private Func<object, bool> _canExecute; private Func<object, bool> _canExecute;
private Action _executeNoParam; private Action _executeNoParam;
private Func<bool> _canExecuteNoParam; private Func<bool> _canExecuteNoParam;
#endregion #endregion
#region Public properties #region Public properties
public string Name { get; set; } public string Name { get; set; }
public string DisplayText { get; set; } public string DisplayText { get; set; }
public string Tooltip { get; set; } public string Tooltip { get; set; }
public ImageSource Icon { get; set; } public ImageSource Icon { get; set; }
public KeyGesture Shortcut { get; set; } public KeyGesture Shortcut { get; set; }
public string ShortcutText public string ShortcutText
{ {
get get
{ {
string text = String.Empty; string text = String.Empty;
if ((Shortcut.Modifiers & ModifierKeys.Windows) != 0) if ((Shortcut.Modifiers & ModifierKeys.Windows) != 0)
text += "Win+"; text += "Win+";
if ((Shortcut.Modifiers & ModifierKeys.Control) != 0) if ((Shortcut.Modifiers & ModifierKeys.Control) != 0)
text += "Ctrl+"; text += "Ctrl+";
if ((Shortcut.Modifiers & ModifierKeys.Alt) != 0) if ((Shortcut.Modifiers & ModifierKeys.Alt) != 0)
text += "Alt+"; text += "Alt+";
if ((Shortcut.Modifiers & ModifierKeys.Shift) != 0) if ((Shortcut.Modifiers & ModifierKeys.Shift) != 0)
text += "Shift+"; text += "Shift+";
text += Enum.GetName(typeof(Key), Shortcut.Key); text += Enum.GetName(typeof(Key), Shortcut.Key);
return text; return text;
} }
} }
#endregion #endregion
public event EventHandler CanExecuteChanged; public event EventHandler CanExecuteChanged;
public Command(string name = null, Action<object> execute = null, Func<object, bool> canExecute = null) public Command(string name = null, Action<object> execute = null, Func<object, bool> canExecute = null)
{ {
Name = name; Name = name;
_execute = execute; _execute = execute;
_canExecute = canExecute; _canExecute = canExecute;
} }
public Command(string name = null, Action execute = null, Func<bool> canExecute = null) public Command(string name = null, Action execute = null, Func<bool> canExecute = null)
{ {
Name = name; Name = name;
_executeNoParam = execute; _executeNoParam = execute;
_canExecuteNoParam = canExecute; _canExecuteNoParam = canExecute;
} }
public virtual bool CanExecute(object parameter) public virtual bool CanExecute(object parameter)
{ {
if (_canExecute != null) if (_canExecute != null)
return _canExecute(parameter); return _canExecute(parameter);
else if (_canExecuteNoParam != null) else if (_canExecuteNoParam != null)
return _canExecuteNoParam(); return _canExecuteNoParam();
return true; return true;
} }
public virtual void Execute(object parameter) public virtual void Execute(object parameter)
{ {
if (_execute != null) if (_execute != null)
_execute(parameter); _execute(parameter);
else if (_executeNoParam != null) else if (_executeNoParam != null)
_executeNoParam(); _executeNoParam();
} }
} }
} }

View File

@@ -1,77 +1,77 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RainmeterEditor.Business; using RainmeterStudio.Business;
using RainmeterEditor.UI.Dialogs; using RainmeterStudio.UI.Dialogs;
using RainmeterEditor.Model.Events; using RainmeterStudio.Model.Events;
using RainmeterEditor.Model; using RainmeterStudio.Model;
using System.Windows; using System.Windows;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
namespace RainmeterEditor.UI.Controller namespace RainmeterStudio.UI.Controller
{ {
public class DocumentController public class DocumentController
{ {
#region Commands #region Commands
public Command DocumentCreateCommand { get; private set; } public Command DocumentCreateCommand { get; private set; }
#endregion #endregion
public event EventHandler<DocumentOpenedEventArgs> DocumentOpened public event EventHandler<DocumentOpenedEventArgs> DocumentOpened
{ {
add add
{ {
DocumentManager.Instance.DocumentOpened += value; DocumentManager.Instance.DocumentOpened += value;
} }
remove remove
{ {
DocumentManager.Instance.DocumentOpened -= value; DocumentManager.Instance.DocumentOpened -= value;
} }
} }
public event EventHandler DocumentClosed; public event EventHandler DocumentClosed;
public Window OwnerWindow { get; set; } public Window OwnerWindow { get; set; }
public DocumentController() public DocumentController()
{ {
DocumentCreateCommand = new Command("DocumentCreateCommand", () => CreateWindow()) DocumentCreateCommand = new Command("DocumentCreateCommand", () => CreateWindow())
{ {
DisplayText = Resources.Strings.DocumentCreateCommand_DisplayText, DisplayText = Resources.Strings.DocumentCreateCommand_DisplayText,
Tooltip = Resources.Strings.DocumentCreateCommand_ToolTip, Tooltip = Resources.Strings.DocumentCreateCommand_ToolTip,
Icon = new BitmapImage(new Uri("/Resources/Icons/page_white_star_16.png", UriKind.RelativeOrAbsolute)), Icon = new BitmapImage(new Uri("/Resources/Icons/page_white_star_16.png", UriKind.RelativeOrAbsolute)),
Shortcut = new KeyGesture(Key.N, ModifierKeys.Control) Shortcut = new KeyGesture(Key.N, ModifierKeys.Control)
}; };
} }
public void CreateWindow(DocumentFormat defaultFormat = null, string defaultPath = "") public void CreateWindow(DocumentFormat defaultFormat = null, string defaultPath = "")
{ {
// Show dialog // Show dialog
var dialog = new CreateDocumentDialog() var dialog = new CreateDocumentDialog()
{ {
Owner = OwnerWindow, Owner = OwnerWindow,
SelectedFormat = defaultFormat, SelectedFormat = defaultFormat,
SelectedPath = defaultPath SelectedPath = defaultPath
}; };
bool? res = dialog.ShowDialog(); bool? res = dialog.ShowDialog();
if (!res.HasValue || !res.Value) if (!res.HasValue || !res.Value)
return; return;
var format = dialog.SelectedFormat; var format = dialog.SelectedFormat;
var path = dialog.SelectedPath; var path = dialog.SelectedPath;
// Call manager // Call manager
DocumentManager.Instance.Create(format, path); DocumentManager.Instance.Create(format, path);
} }
public void Create(DocumentFormat format, string path) public void Create(DocumentFormat format, string path)
{ {
// Call manager // Call manager
DocumentManager.Instance.Create(format, path); DocumentManager.Instance.Create(format, path);
} }
} }
} }

View File

@@ -1,64 +1,64 @@
<Window x:Class="RainmeterEditor.UI.Dialogs.CreateDocumentDialog" <Window x:Class="RainmeterStudio.UI.Dialogs.CreateDocumentDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Create..." Height="250" Width="400" Title="Create..." Height="250" Width="400"
WindowStartupLocation="CenterOwner" WindowStartupLocation="CenterOwner"
WindowStyle="ToolWindow" ShowInTaskbar="False"> WindowStyle="ToolWindow" ShowInTaskbar="False">
<Grid Background="WhiteSmoke"> <Grid Background="WhiteSmoke">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition /> <RowDefinition />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<ListView Name="listFormats" Grid.Row="0"> <ListView Name="listFormats" Grid.Row="0">
<ListView.ItemTemplate> <ListView.ItemTemplate>
<DataTemplate> <DataTemplate>
<DockPanel> <DockPanel>
<Image DockPanel.Dock="Left" Source="{Binding Icon}" <Image DockPanel.Dock="Left" Source="{Binding Icon}"
Width="32" Height="32" Margin="2" Width="32" Height="32" Margin="2"
Stretch="Uniform" VerticalAlignment="Top" /> Stretch="Uniform" VerticalAlignment="Top" />
<StackPanel Orientation="Vertical" VerticalAlignment="Center"> <StackPanel Orientation="Vertical" VerticalAlignment="Center">
<TextBlock Text="{Binding Name}" FontWeight="Bold" /> <TextBlock Text="{Binding Name}" FontWeight="Bold" />
<TextBlock Text="{Binding Description}" /> <TextBlock Text="{Binding Description}" />
</StackPanel> </StackPanel>
</DockPanel> </DockPanel>
</DataTemplate> </DataTemplate>
</ListView.ItemTemplate> </ListView.ItemTemplate>
<ListView.GroupStyle> <ListView.GroupStyle>
<GroupStyle> <GroupStyle>
<GroupStyle.HeaderTemplate> <GroupStyle.HeaderTemplate>
<DataTemplate> <DataTemplate>
<TextBlock FontWeight="Bold" FontSize="13pt" Text="{Binding Name}" /> <TextBlock FontWeight="Bold" FontSize="13pt" Text="{Binding Name}" />
</DataTemplate> </DataTemplate>
</GroupStyle.HeaderTemplate> </GroupStyle.HeaderTemplate>
</GroupStyle> </GroupStyle>
</ListView.GroupStyle> </ListView.GroupStyle>
</ListView> </ListView>
<Grid Grid.Row="1"> <Grid Grid.Row="1">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition /> <RowDefinition />
<RowDefinition /> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition /> <ColumnDefinition />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Grid.Row="0">Path:</TextBlock> <TextBlock Grid.Row="0">Path:</TextBlock>
<TextBox Name="textPath" Grid.Row="0" Grid.Column="1"></TextBox> <TextBox Name="textPath" Grid.Row="0" Grid.Column="1"></TextBox>
<Button Grid.Row="0" Grid.Column="2">...</Button> <Button Grid.Row="0" Grid.Column="2">...</Button>
</Grid> </Grid>
<StackPanel Grid.Row="2" Orientation="Horizontal" <StackPanel Grid.Row="2" Orientation="Horizontal"
HorizontalAlignment="Right"> HorizontalAlignment="Right">
<Button Name="buttonCreate" Click="buttonCreate_Click" IsDefault="True">Create</Button> <Button Name="buttonCreate" Click="buttonCreate_Click" IsDefault="True">Create</Button>
<Button Name="buttonCancel" Click="buttonCancel_Click" IsCancel="True">Cancel</Button> <Button Name="buttonCancel" Click="buttonCancel_Click" IsCancel="True">Cancel</Button>
</StackPanel> </StackPanel>
</Grid> </Grid>
</Window> </Window>

View File

@@ -1,93 +1,93 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Documents; using System.Windows.Documents;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Shapes; using System.Windows.Shapes;
using RainmeterEditor.Business; using RainmeterStudio.Business;
using RainmeterEditor.Model; using RainmeterStudio.Model;
namespace RainmeterEditor.UI.Dialogs namespace RainmeterStudio.UI.Dialogs
{ {
/// <summary> /// <summary>
/// Interaction logic for CreateDocumentDialog.xaml /// Interaction logic for CreateDocumentDialog.xaml
/// </summary> /// </summary>
public partial class CreateDocumentDialog : Window public partial class CreateDocumentDialog : Window
{ {
/// <summary> /// <summary>
/// Gets or sets the currently selected file format /// Gets or sets the currently selected file format
/// </summary> /// </summary>
public DocumentFormat SelectedFormat public DocumentFormat SelectedFormat
{ {
get get
{ {
return listFormats.SelectedItem as DocumentFormat; return listFormats.SelectedItem as DocumentFormat;
} }
set set
{ {
listFormats.SelectedItem = value; listFormats.SelectedItem = value;
} }
} }
/// <summary> /// <summary>
/// Gets or sets the path /// Gets or sets the path
/// </summary> /// </summary>
public string SelectedPath public string SelectedPath
{ {
get get
{ {
return textPath.Text; return textPath.Text;
} }
set set
{ {
textPath.Text = value; textPath.Text = value;
} }
} }
/// <summary> /// <summary>
/// Creates a new instance of CreateDocumentDialog /// Creates a new instance of CreateDocumentDialog
/// </summary> /// </summary>
public CreateDocumentDialog() public CreateDocumentDialog()
{ {
InitializeComponent(); InitializeComponent();
PopulateFormats(); PopulateFormats();
Validate(); Validate();
} }
private void PopulateFormats() private void PopulateFormats()
{ {
listFormats.ItemsSource = DocumentManager.Instance.DocumentFormats; listFormats.ItemsSource = DocumentManager.Instance.DocumentFormats;
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(listFormats.ItemsSource); CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(listFormats.ItemsSource);
view.GroupDescriptions.Add(new PropertyGroupDescription("Category")); view.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
} }
private void buttonCreate_Click(object sender, RoutedEventArgs e) private void buttonCreate_Click(object sender, RoutedEventArgs e)
{ {
DialogResult = true; DialogResult = true;
Close(); Close();
} }
private void buttonCancel_Click(object sender, RoutedEventArgs e) private void buttonCancel_Click(object sender, RoutedEventArgs e)
{ {
DialogResult = false; DialogResult = false;
Close(); Close();
} }
private void Validate() private void Validate()
{ {
bool res = true; bool res = true;
res &= !String.IsNullOrWhiteSpace(textPath.Text); res &= !String.IsNullOrWhiteSpace(textPath.Text);
res &= (listFormats.SelectedItem != null); res &= (listFormats.SelectedItem != null);
buttonCreate.IsEnabled = res; buttonCreate.IsEnabled = res;
} }
} }
} }

View File

@@ -1,116 +1,116 @@
<Window x:Class="RainmeterEditor.UI.MainWindow" <Window x:Class="RainmeterStudio.UI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ui="clr-namespace:RainmeterEditor.UI" xmlns:ui="clr-namespace:RainmeterStudio.UI"
xmlns:ad="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.AvalonDock" xmlns:ad="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.AvalonDock"
xmlns:adlayout="clr-namespace:Xceed.Wpf.AvalonDock.Layout;assembly=Xceed.Wpf.AvalonDock" xmlns:adlayout="clr-namespace:Xceed.Wpf.AvalonDock.Layout;assembly=Xceed.Wpf.AvalonDock"
Title="Rainmeter Studio" Height="350" Width="525" Title="Rainmeter Studio" Height="350" Width="525"
ResizeMode="CanResizeWithGrip" > ResizeMode="CanResizeWithGrip" >
<Window.Resources> <Window.Resources>
</Window.Resources> </Window.Resources>
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<!-- Menu bar --> <!-- Menu bar -->
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<!-- Toolbar --> <!-- Toolbar -->
<RowDefinition /> <RowDefinition />
<!-- Dock area --> <!-- Dock area -->
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<!-- Status bar --> <!-- Status bar -->
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!-- Menu bar --> <!-- Menu bar -->
<Menu Grid.Row="0" Grid.ColumnSpan="10"> <Menu Grid.Row="0" Grid.ColumnSpan="10">
<MenuItem Header="_File"> <MenuItem Header="_File">
<MenuItem Header="_New"> <MenuItem Header="_New">
<MenuItem DataContext="{Binding DocumentCreateCommand}" <MenuItem DataContext="{Binding DocumentCreateCommand}"
Command="{Binding}" Header="{Binding DisplayText}" ToolTip="{Binding Tooltip}" Command="{Binding}" Header="{Binding DisplayText}" ToolTip="{Binding Tooltip}"
InputGestureText="{Binding ShortcutText}"> InputGestureText="{Binding ShortcutText}">
<MenuItem.Icon> <MenuItem.Icon>
<Image Source="{Binding Icon}" /> <Image Source="{Binding Icon}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="_Project..." Command="{Binding DocumentCreateCommand}"> <MenuItem Header="_Project..." Command="{Binding DocumentCreateCommand}">
<MenuItem.Icon> <MenuItem.Icon>
<Image Source="/Resources/Icons/project_star_16.png" /> <Image Source="/Resources/Icons/project_star_16.png" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
</MenuItem> </MenuItem>
<MenuItem Header="_Open..." /> <MenuItem Header="_Open..." />
<Separator /> <Separator />
<MenuItem Header="_Close" /> <MenuItem Header="_Close" />
<MenuItem Header="E_xit" /> <MenuItem Header="E_xit" />
</MenuItem> </MenuItem>
<MenuItem Header="_Edit" /> <MenuItem Header="_Edit" />
<MenuItem Header="_Help" /> <MenuItem Header="_Help" />
</Menu> </Menu>
<!-- Toolbar --> <!-- Toolbar -->
<ToolBarTray Grid.Row="1"> <ToolBarTray Grid.Row="1">
<ToolBar> <ToolBar>
<Button Name="buttonBackward" ToolTip="Navigate backward"> <Button Name="buttonBackward" ToolTip="Navigate backward">
<Image Width="16" Height="16" Source="/Resources/Icons/arrow_backward_16.png" /> <Image Width="16" Height="16" Source="/Resources/Icons/arrow_backward_16.png" />
</Button> </Button>
<Button Name="buttonForward" ToolTip="Navigate forward"> <Button Name="buttonForward" ToolTip="Navigate forward">
<Image Width="16" Height="16" Source="/Resources/Icons/arrow_forward_16.png" /> <Image Width="16" Height="16" Source="/Resources/Icons/arrow_forward_16.png" />
</Button> </Button>
<Separator /> <Separator />
<Button DataContext="{Binding DocumentCreateCommand}" <Button DataContext="{Binding DocumentCreateCommand}"
Command="{Binding}" ToolTip="{Binding Tooltip}"> Command="{Binding}" ToolTip="{Binding Tooltip}">
<Image Source="{Binding Icon}" /> <Image Source="{Binding Icon}" />
</Button> </Button>
</ToolBar> </ToolBar>
</ToolBarTray> </ToolBarTray>
<!-- Grid splitter --> <!-- Grid splitter -->
<GridSplitter Grid.Row="2" Grid.Column="1" <GridSplitter Grid.Row="2" Grid.Column="1"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<!-- Document panel --> <!-- Document panel -->
<ad:DockingManager <ad:DockingManager
x:Name="dockingManager" x:Name="dockingManager"
Grid.Row="2"> Grid.Row="2">
<adlayout:LayoutRoot> <adlayout:LayoutRoot>
<adlayout:LayoutRoot.LeftSide> <adlayout:LayoutRoot.LeftSide>
<adlayout:LayoutAnchorSide> <adlayout:LayoutAnchorSide>
<adlayout:LayoutAnchorGroup> <adlayout:LayoutAnchorGroup>
<adlayout:LayoutAnchorable Title="Toolbox" /> <adlayout:LayoutAnchorable Title="Toolbox" />
</adlayout:LayoutAnchorGroup> </adlayout:LayoutAnchorGroup>
</adlayout:LayoutAnchorSide> </adlayout:LayoutAnchorSide>
</adlayout:LayoutRoot.LeftSide> </adlayout:LayoutRoot.LeftSide>
<adlayout:LayoutPanel Orientation="Horizontal"> <adlayout:LayoutPanel Orientation="Horizontal">
<adlayout:LayoutDocumentPane x:Name="documentPane" /> <adlayout:LayoutDocumentPane x:Name="documentPane" />
<adlayout:LayoutAnchorablePaneGroup DockWidth="150" Orientation="Vertical"> <adlayout:LayoutAnchorablePaneGroup DockWidth="150" Orientation="Vertical">
<adlayout:LayoutAnchorablePane> <adlayout:LayoutAnchorablePane>
<adlayout:LayoutAnchorable Title="Skins"> <adlayout:LayoutAnchorable Title="Skins">
<ui:SkinsPanel /> <ui:SkinsPanel />
</adlayout:LayoutAnchorable> </adlayout:LayoutAnchorable>
<adlayout:LayoutAnchorable Title="Outline" /> <adlayout:LayoutAnchorable Title="Outline" />
</adlayout:LayoutAnchorablePane> </adlayout:LayoutAnchorablePane>
<adlayout:LayoutAnchorablePane> <adlayout:LayoutAnchorablePane>
<adlayout:LayoutAnchorable Title="Properties" /> <adlayout:LayoutAnchorable Title="Properties" />
</adlayout:LayoutAnchorablePane> </adlayout:LayoutAnchorablePane>
</adlayout:LayoutAnchorablePaneGroup> </adlayout:LayoutAnchorablePaneGroup>
</adlayout:LayoutPanel> </adlayout:LayoutPanel>
</adlayout:LayoutRoot> </adlayout:LayoutRoot>
</ad:DockingManager> </ad:DockingManager>
<!-- Status bar --> <!-- Status bar -->
<StatusBar Grid.Row="3" Grid.ColumnSpan="10"> <StatusBar Grid.Row="3" Grid.ColumnSpan="10">
<ProgressBar Name="statusProgress" <ProgressBar Name="statusProgress"
Width="64" Height="8" Width="64" Height="8"
IsIndeterminate="True" IsIndeterminate="True"
Visibility="Collapsed" /> Visibility="Collapsed" />
<TextBlock Name="statusMessage">Ready</TextBlock> <TextBlock Name="statusMessage">Ready</TextBlock>
</StatusBar> </StatusBar>
</Grid> </Grid>
</Window> </Window>

View File

@@ -1,75 +1,75 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Documents; using System.Windows.Documents;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using RainmeterEditor.Model.Events; using RainmeterStudio.Model.Events;
using RainmeterEditor.UI.Controller; using RainmeterStudio.UI.Controller;
using Xceed.Wpf.AvalonDock.Layout; using Xceed.Wpf.AvalonDock.Layout;
namespace RainmeterEditor.UI namespace RainmeterStudio.UI
{ {
/// <summary> /// <summary>
/// Interaction logic for MainWindow.xaml /// Interaction logic for MainWindow.xaml
/// </summary> /// </summary>
public partial class MainWindow : Window public partial class MainWindow : Window
{ {
private DocumentController documentController; private DocumentController documentController;
public Command DocumentCreateCommand { get { return documentController.DocumentCreateCommand; } } public Command DocumentCreateCommand { get { return documentController.DocumentCreateCommand; } }
public MainWindow() public MainWindow()
{ {
InitializeComponent(); InitializeComponent();
this.DataContext = this; this.DataContext = this;
documentController = new DocumentController(); documentController = new DocumentController();
documentController.OwnerWindow = this; documentController.OwnerWindow = this;
documentController.DocumentOpened += documentController_DocumentOpened; documentController.DocumentOpened += documentController_DocumentOpened;
AddKeyBinding(documentController.DocumentCreateCommand); AddKeyBinding(documentController.DocumentCreateCommand);
} }
private void AddKeyBinding(Command c) private void AddKeyBinding(Command c)
{ {
if (c.Shortcut != null) if (c.Shortcut != null)
InputBindings.Add(new KeyBinding(c, c.Shortcut)); InputBindings.Add(new KeyBinding(c, c.Shortcut));
} }
void documentController_DocumentOpened(object sender, DocumentOpenedEventArgs e) void documentController_DocumentOpened(object sender, DocumentOpenedEventArgs e)
{ {
// Spawn a new window // Spawn a new window
LayoutDocument document = new LayoutDocument(); LayoutDocument document = new LayoutDocument();
document.Content = e.Editor.EditorUI; document.Content = e.Editor.EditorUI;
document.Title = e.Editor.Title; document.Title = e.Editor.Title;
document.Closing += document_Closing; document.Closing += document_Closing;
documentPane.Children.Add(document); documentPane.Children.Add(document);
documentPane.SelectedContentIndex = documentPane.IndexOf(document); documentPane.SelectedContentIndex = documentPane.IndexOf(document);
} }
void document_Closing(object sender, System.ComponentModel.CancelEventArgs e) void document_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{ {
switch (MessageBox.Show("Are you sure?", "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)) switch (MessageBox.Show("Are you sure?", "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question))
{ {
case MessageBoxResult.Yes: case MessageBoxResult.Yes:
break; break;
case MessageBoxResult.No: case MessageBoxResult.No:
break; break;
default: default:
e.Cancel = true; e.Cancel = true;
return; return;
} }
} }
} }
} }

View File

@@ -1,16 +1,16 @@
<UserControl x:Class="RainmeterEditor.UI.SkinsPanel" <UserControl x:Class="RainmeterStudio.UI.SkinsPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"> d:DesignHeight="300" d:DesignWidth="300">
<Grid> <Grid>
<TreeView> <TreeView>
<TreeViewItem Header="Sample item"> <TreeViewItem Header="Sample item">
<TreeViewItem Header="Sample subitem" /> <TreeViewItem Header="Sample subitem" />
</TreeViewItem> </TreeViewItem>
<TreeViewItem Header="Sample item 2" /> <TreeViewItem Header="Sample item 2" />
</TreeView> </TreeView>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@@ -1,31 +1,31 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Documents; using System.Windows.Documents;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using RainmeterEditor.Interop; using RainmeterStudio.Interop;
using RainmeterEditor.Storage; using RainmeterStudio.Storage;
namespace RainmeterEditor.UI namespace RainmeterStudio.UI
{ {
/// <summary> /// <summary>
/// Interaction logic for SkinsPanel.xaml /// Interaction logic for SkinsPanel.xaml
/// </summary> /// </summary>
public partial class SkinsPanel : UserControl public partial class SkinsPanel : UserControl
{ {
public SkinsPanel() public SkinsPanel()
{ {
InitializeComponent(); InitializeComponent();
//var x = Rainmeter.Instance.Handle; //var x = Rainmeter.Instance.Handle;
} }
} }
} }

View File

@@ -1,55 +1,55 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button"> <Style TargetType="Button">
<Setter Property="Margin" Value="1" /> <Setter Property="Margin" Value="1" />
<Setter Property="Padding" Value="6,1,6,1" /> <Setter Property="Padding" Value="6,1,6,1" />
<Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="Button"> <ControlTemplate TargetType="Button">
<Border Name="_border" <Border Name="_border"
BorderBrush="Gray" BorderBrush="Gray"
BorderThickness="1" BorderThickness="1"
CornerRadius="2" CornerRadius="2"
Padding="{TemplateBinding Padding}"> Padding="{TemplateBinding Padding}">
<Border.Background> <Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#eeee" Offset="0" /> <GradientStop Color="#eeee" Offset="0" />
<GradientStop Color="#cccc" Offset="1" /> <GradientStop Color="#cccc" Offset="1" />
</LinearGradientBrush> </LinearGradientBrush>
</Border.Background> </Border.Background>
<ContentPresenter Name="_content" /> <ContentPresenter Name="_content" />
</Border> </Border>
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"> <Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="_border" Property="Background" > <Setter TargetName="_border" Property="Background" >
<Setter.Value> <Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#eeee" Offset="0" /> <GradientStop Color="#eeee" Offset="0" />
<GradientStop Color="#dddd" Offset="1" /> <GradientStop Color="#dddd" Offset="1" />
</LinearGradientBrush> </LinearGradientBrush>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Trigger> </Trigger>
<Trigger Property="IsPressed" Value="True"> <Trigger Property="IsPressed" Value="True">
<Setter TargetName="_border" Property="Background" > <Setter TargetName="_border" Property="Background" >
<Setter.Value> <Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#dddd" Offset="0" /> <GradientStop Color="#dddd" Offset="0" />
<GradientStop Color="#bbbb" Offset="1" /> <GradientStop Color="#bbbb" Offset="1" />
</LinearGradientBrush> </LinearGradientBrush>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Trigger> </Trigger>
<Trigger Property="IsEnabled" Value="False"> <Trigger Property="IsEnabled" Value="False">
<Setter TargetName="_content" Property="Opacity" Value=".5" /> <Setter TargetName="_content" Property="Opacity" Value=".5" />
</Trigger> </Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -1,6 +1,6 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ButtonStyle.xaml" /> <ResourceDictionary Source="ButtonStyle.xaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="AvalonDock" version="2.0.2000" targetFramework="net40" /> <package id="AvalonDock" version="2.0.2000" targetFramework="net40" />
<package id="ini-parser" version="2.1.1" targetFramework="net40" /> <package id="ini-parser" version="2.1.1" targetFramework="net40" />
</packages> </packages>

View 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>

Some files were not shown because too many files have changed in this diff Show More