You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(57) |
Aug
(16) |
Sep
(37) |
Oct
(26) |
Nov
(36) |
Dec
(41) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(78) |
Feb
(45) |
Mar
(37) |
Apr
(56) |
May
(50) |
Jun
(17) |
Jul
(38) |
Aug
(86) |
Sep
(27) |
Oct
(42) |
Nov
(46) |
Dec
(56) |
2009 |
Jan
(49) |
Feb
(94) |
Mar
(101) |
Apr
(70) |
May
(31) |
Jun
(56) |
Jul
(18) |
Aug
(48) |
Sep
(40) |
Oct
(61) |
Nov
(51) |
Dec
(24) |
2010 |
Jan
(12) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ir0...@us...> - 2009-11-20 00:43:06
|
Revision: 2731 http://emerge.svn.sourceforge.net/emerge/?rev=2731&view=rev Author: ir0nh34d Date: 2009-11-20 00:12:31 +0000 (Fri, 20 Nov 2009) Log Message: ----------- Remove svn build target in favour of looking for svnversion.h Modified Paths: -------------- trunk/Source/globals.in trunk/Source/svn.in Modified: trunk/Source/globals.in =================================================================== --- trunk/Source/globals.in 2009-11-19 23:20:33 UTC (rev 2730) +++ trunk/Source/globals.in 2009-11-20 00:12:31 UTC (rev 2731) @@ -73,13 +73,13 @@ ../$(DEPS_DIR)/$(TARGET)/%.d: %.cpp $(CC) -MM -MF $@ -MT ../$(OBJ_DIR)/$(BUILD)/$(TARGET)/$(*F).o $< -../$(DEPS_DIR)/$(TARGET)/%.d: %.rc +../$(DEPS_DIR)/$(TARGET)/%.d: %.rc $(SVN_FILE) $(CC) $(WINDRESOPS) -MM -MF $@ -MT ../$(OBJ_DIR)/$(BUILD)/$(TARGET)/$(*F).o $< ../$(DEPS_DIR)/tinyxml/%.d: $(TINYCCPS) $(CC) -MM -MF $@ -MT ../$(OBJ_DIR)/$(BUILD)/$(TARGET)/$(*F).o $< -../$(OBJ_DIR)/$(BUILD)/$(TARGET)/%.o: %.rc +../$(OBJ_DIR)/$(BUILD)/$(TARGET)/%.o: %.rc $(SVN_FILE) $(WINDRES) --preprocessor="$(CC) $(WINDRESOPS)" $(WINDRESFLAGS) -i $< -o $@ ../$(OBJ_DIR)/$(BUILD)/tinyxml/%.o: ../tinyxml/%.cpp Modified: trunk/Source/svn.in =================================================================== --- trunk/Source/svn.in 2009-11-19 23:20:33 UTC (rev 2730) +++ trunk/Source/svn.in 2009-11-20 00:12:31 UTC (rev 2731) @@ -1,6 +1,4 @@ -.PHONY: svn -svn: - $(call remove_file,$(SVN_FILE)) +$(SVN_FILE): ifdef CYGWIN svn info --revision HEAD | grep Revision > svnversion.tmp sed "s/Revision:/#define SVN_VERSION/g" < svnversion.tmp > $(SVN_FILE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-19 23:20:41
|
Revision: 2730 http://emerge.svn.sourceforge.net/emerge/?rev=2730&view=rev Author: ir0nh34d Date: 2009-11-19 23:20:33 +0000 (Thu, 19 Nov 2009) Log Message: ----------- Add rule to build dependencies for resource files Modified Paths: -------------- trunk/Source/emerge/emerge.project trunk/Source/emerge.workspace trunk/Source/emergeAppletEngine/emergeAppletEngine.project trunk/Source/emergeBaseClasses/emergeBaseClasses.project trunk/Source/emergeCommand/emergeCommand.project trunk/Source/emergeCore/emergeCore.project trunk/Source/emergeDesktop/emergeDesktop.project trunk/Source/emergeGraphics/emergeGraphics.project trunk/Source/emergeHotkeys/emergeHotkeys.project trunk/Source/emergeLauncher/emergeLauncher.project trunk/Source/emergeLib/emergeLib.project trunk/Source/emergePower/emergePower.project trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project trunk/Source/emergeSysMon/emergeSysMon.project trunk/Source/emergeTasks/emergeTasks.project trunk/Source/emergeTray/emergeTray.project trunk/Source/emergeVWM/emergeVWM.project trunk/Source/reg2xml/reg2xml.project Modified: trunk/Source/emerge/emerge.project =================================================================== --- trunk/Source/emerge/emerge.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emerge/emerge.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -72,12 +72,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emerge.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emerge.rc$(DependSuffix): emerge.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emerge.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emerge.rc$(DependSuffix) -MM emerge.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emerge.workspace =================================================================== --- trunk/Source/emerge.workspace 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emerge.workspace 2009-11-19 23:20:33 UTC (rev 2730) @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> <CodeLite_Workspace Name="emerge" Database=".\emerge.tags"> - <Project Name="emergeLib" Path="emergeLib\emergeLib.project" Active="Yes"/> + <Project Name="emergeLib" Path="emergeLib\emergeLib.project" Active="No"/> <Project Name="emergeGraphics" Path="emergeGraphics\emergeGraphics.project" Active="No"/> <Project Name="emergeAppletEngine" Path="emergeAppletEngine\emergeAppletEngine.project"/> <Project Name="emergeSchemeEngine" Path="emergeSchemeEngine\emergeSchemeEngine.project"/> <Project Name="emergeBaseClasses" Path="emergeBaseClasses\emergeBaseClasses.project"/> <Project Name="emergeCore" Path="emergeCore\emergeCore.project"/> <Project Name="emergeCommand" Path="emergeCommand\emergeCommand.project"/> - <Project Name="emergeDesktop" Path="emergeDesktop\emergeDesktop.project"/> + <Project Name="emergeDesktop" Path="emergeDesktop\emergeDesktop.project" Active="Yes"/> <Project Name="emergeHotkeys" Path="emergeHotkeys\emergeHotkeys.project"/> <Project Name="emergeLauncher" Path="emergeLauncher\emergeLauncher.project" Active="No"/> <Project Name="emergePower" Path="emergePower\emergePower.project"/> @@ -15,7 +15,7 @@ <Project Name="emergeTasks" Path="emergeTasks\emergeTasks.project"/> <Project Name="emergeTray" Path="emergeTray\emergeTray.project"/> <Project Name="emergeVWM" Path="emergeVWM\emergeVWM.project"/> - <Project Name="emerge" Path="emerge\emerge.project"/> + <Project Name="emerge" Path="emerge\emerge.project" Active="No"/> <Project Name="reg2xml" Path="reg2xml\reg2xml.project"/> <BuildMatrix> <WorkspaceConfiguration Name="Debug" Selected="no"> Modified: trunk/Source/emergeAppletEngine/emergeAppletEngine.project =================================================================== --- trunk/Source/emergeAppletEngine/emergeAppletEngine.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeAppletEngine/emergeAppletEngine.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -76,12 +76,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeAppletEngine.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeAppletEngine.rc$(DependSuffix): emergeAppletEngine.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeAppletEngine.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeAppletEngine.rc$(DependSuffix) -MM emergeAppletEngine.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeBaseClasses/emergeBaseClasses.project =================================================================== --- trunk/Source/emergeBaseClasses/emergeBaseClasses.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeBaseClasses/emergeBaseClasses.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -89,12 +89,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeBaseClasses.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeBaseClasses.rc$(DependSuffix): emergeBaseClasses.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeBaseClasses.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeBaseClasses.rc$(DependSuffix) -MM emergeBaseClasses.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeCommand/emergeCommand.project =================================================================== --- trunk/Source/emergeCommand/emergeCommand.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeCommand/emergeCommand.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -95,12 +95,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeCommand.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeCommand.rc$(DependSuffix): emergeCommand.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeCommand.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeCommand.rc$(DependSuffix) -MM emergeCommand.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeCore/emergeCore.project =================================================================== --- trunk/Source/emergeCore/emergeCore.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeCore/emergeCore.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -93,12 +93,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeCore.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeCore.rc$(DependSuffix): emergeCore.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeCore.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeCore.rc$(DependSuffix) -MM emergeCore.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeDesktop/emergeDesktop.project =================================================================== --- trunk/Source/emergeDesktop/emergeDesktop.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeDesktop/emergeDesktop.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -97,12 +97,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeDesktop.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeDesktop.rc$(DependSuffix): emergeDesktop.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeDesktop.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeDesktop.rc$(DependSuffix) -MM emergeDesktop.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeGraphics/emergeGraphics.project =================================================================== --- trunk/Source/emergeGraphics/emergeGraphics.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeGraphics/emergeGraphics.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -17,6 +17,9 @@ <Dependencies Name="Debug"> <Project Name="emergeLib"/> </Dependencies> + <Dependencies Name="Release"> + <Project Name="emergeLib"/> + </Dependencies> <Settings Type="Dynamic Library"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> <Compiler Options="-g" Required="yes" PreCompiledHeader=""> @@ -75,12 +78,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeGraphics.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeGraphics.rc$(DependSuffix): emergeGraphics.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeGraphics.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeGraphics.rc$(DependSuffix) -MM emergeGraphics.rc </CustomPreBuild> </AdditionalRules> </Configuration> @@ -101,7 +107,4 @@ <ResourceCompiler Options=""/> </GlobalSettings> </Settings> - <Dependencies Name="Release"> - <Project Name="emergeLib"/> - </Dependencies> </CodeLite_Project> Modified: trunk/Source/emergeHotkeys/emergeHotkeys.project =================================================================== --- trunk/Source/emergeHotkeys/emergeHotkeys.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeHotkeys/emergeHotkeys.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -85,12 +85,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeHotkeys.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeHotkeys.rc$(DependSuffix): emergeHotkeys.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeHotkeys.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeHotkeys.rc$(DependSuffix) -MM emergeHotkeys.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeLauncher/emergeLauncher.project =================================================================== --- trunk/Source/emergeLauncher/emergeLauncher.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeLauncher/emergeLauncher.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -28,6 +28,11 @@ <Project Name="emergeGraphics"/> <Project Name="emergeBaseClasses"/> </Dependencies> + <Dependencies Name="Release"> + <Project Name="emergeLib"/> + <Project Name="emergeGraphics"/> + <Project Name="emergeBaseClasses"/> + </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> <Compiler Options="-g" Required="yes" PreCompiledHeader=""> @@ -86,12 +91,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeLauncher.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeLauncher.rc$(DependSuffix): emergeLauncher.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeLauncher.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeLauncher.rc$(DependSuffix) -MM emergeLauncher.rc </CustomPreBuild> </AdditionalRules> </Configuration> @@ -117,9 +125,4 @@ <ResourceCompiler Options=""/> </GlobalSettings> </Settings> - <Dependencies Name="Release"> - <Project Name="emergeLib"/> - <Project Name="emergeGraphics"/> - <Project Name="emergeBaseClasses"/> - </Dependencies> </CodeLite_Project> Modified: trunk/Source/emergeLib/emergeLib.project =================================================================== --- trunk/Source/emergeLib/emergeLib.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeLib/emergeLib.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -84,12 +84,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeLib.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeLib.rc$(DependSuffix): emergeLib.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeLib.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeLib.rc$(DependSuffix) -MM emergeLib.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergePower/emergePower.project =================================================================== --- trunk/Source/emergePower/emergePower.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergePower/emergePower.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -91,12 +91,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergePower.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergePower.rc$(DependSuffix): emergePower.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergePower.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergePower.rc$(DependSuffix) -MM emergePower.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project =================================================================== --- trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -80,12 +80,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeSchemeEngine.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeSchemeEngine.rc$(DependSuffix): emergeSchemeEngine.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeSchemeEngine.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeSchemeEngine.rc$(DependSuffix) -MM emergeSchemeEngine.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeSysMon/emergeSysMon.project =================================================================== --- trunk/Source/emergeSysMon/emergeSysMon.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeSysMon/emergeSysMon.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -96,12 +96,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeSysMon.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeSysMon.rc$(DependSuffix): emergeSysMon.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeSysMon.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeSysMon.rc$(DependSuffix) -MM emergeSysMon.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeTasks/emergeTasks.project =================================================================== --- trunk/Source/emergeTasks/emergeTasks.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeTasks/emergeTasks.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -90,12 +90,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeTasks.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeTasks.rc$(DependSuffix): emergeTasks.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeTasks.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeTasks.rc$(DependSuffix) -MM emergeTasks.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeTray/emergeTray.project =================================================================== --- trunk/Source/emergeTray/emergeTray.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeTray/emergeTray.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -93,12 +93,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeTray.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeTray.rc$(DependSuffix): emergeTray.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeTray.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeTray.rc$(DependSuffix) -MM emergeTray.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/emergeVWM/emergeVWM.project =================================================================== --- trunk/Source/emergeVWM/emergeVWM.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/emergeVWM/emergeVWM.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -93,12 +93,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/emergeVWM.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/emergeVWM.rc$(DependSuffix): emergeVWM.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/emergeVWM.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/emergeVWM.rc$(DependSuffix) -MM emergeVWM.rc </CustomPreBuild> </AdditionalRules> </Configuration> Modified: trunk/Source/reg2xml/reg2xml.project =================================================================== --- trunk/Source/reg2xml/reg2xml.project 2009-11-19 11:59:21 UTC (rev 2729) +++ trunk/Source/reg2xml/reg2xml.project 2009-11-19 23:20:33 UTC (rev 2730) @@ -95,12 +95,15 @@ </CustomBuild> <AdditionalRules> <CustomPostBuild></CustomPostBuild> - <CustomPreBuild>../svnversion.h + <CustomPreBuild>../svnversion.h @$(IntermediateDirectory)/reg2xml.rc$(DependSuffix) ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h & for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h & del /q svnversion.tmp + +@$(IntermediateDirectory)/reg2xml.rc$(DependSuffix): reg2xml.rc + $(CompilerName) -E -xc-header -DRC_INVOKED -MT$(IntermediateDirectory)/reg2xml.rc$(ObjectSuffix) -MF$(IntermediateDirectory)/reg2xml.rc$(DependSuffix) -MM reg2xml.rc </CustomPreBuild> </AdditionalRules> </Configuration> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-19 11:59:30
|
Revision: 2729 http://emerge.svn.sourceforge.net/emerge/?rev=2729&view=rev Author: ir0nh34d Date: 2009-11-19 11:59:21 +0000 (Thu, 19 Nov 2009) Log Message: ----------- Fix occasional corruption of DataTime display Modified Paths: -------------- trunk/Source/emergeDesktop/MenuBuilder.cpp Modified: trunk/Source/emergeDesktop/MenuBuilder.cpp =================================================================== --- trunk/Source/emergeDesktop/MenuBuilder.cpp 2009-11-19 11:58:23 UTC (rev 2728) +++ trunk/Source/emergeDesktop/MenuBuilder.cpp 2009-11-19 11:59:21 UTC (rev 2729) @@ -37,8 +37,7 @@ WNDCLASSEX wincl; ZeroMemory(&wincl, sizeof(WNDCLASSEX)); - if (FAILED(OleInitialize(NULL))) - { + if (FAILED(OleInitialize(NULL))) { ELMessageBox(GetDesktopWindow(), (WCHAR*)TEXT("COM initialization failed"), (WCHAR*)TEXT("emergeDesktop"), ELMB_OK|ELMB_ICONERROR|ELMB_MODAL); return registered; @@ -63,8 +62,7 @@ 0, 0, 0, 0, NULL, NULL, mainInst, reinterpret_cast<LPVOID>(this)); // If the window failed to get created, unregister the class and quit the program - if (!menuWnd) - { + if (!menuWnd) { ELMessageBox(GetDesktopWindow(), (WCHAR*)TEXT("Failed to create desktop window"), (WCHAR*)TEXT("emergeDesktop"), @@ -83,6 +81,9 @@ SetWorkArea(); + // Format the time + setlocale(LC_TIME, ""); + // Hook the menus (for transparency) menuHook = NULL; globalMenuAlpha = pSettings->GetMenuAlpha(); @@ -104,8 +105,7 @@ MenuBuilder::~MenuBuilder() { - if (registered) - { + if (registered) { // Unregister the specified Emerge Desktop messages PostMessage(ELGetCoreWindow(), EMERGE_UNREGISTER, (WPARAM)menuWnd, (LPARAM)EMERGE_CORE); @@ -129,8 +129,7 @@ CREATESTRUCT *cs; static MenuBuilder *pMenuBuilder = NULL; - if (message == WM_CREATE) - { + if (message == WM_CREATE) { cs = (CREATESTRUCT*)lParam; pMenuBuilder = reinterpret_cast<MenuBuilder*>(cs->lpCreateParams); return DefWindowProc(hwnd, message, wParam, lParam); @@ -139,8 +138,7 @@ if (pMenuBuilder == NULL) return DefWindowProc(hwnd, message, wParam, lParam); - switch (message) - { + switch (message) { case WM_COPYDATA: cpData = (COPYDATASTRUCT *)lParam; if (cpData->dwData == EMERGE_MESSAGE) @@ -148,8 +146,7 @@ break; case WM_SYSCOMMAND: - switch (wParam) - { + switch (wParam) { case SC_CLOSE: case SC_MAXIMIZE: case SC_MINIMIZE: @@ -203,8 +200,7 @@ { std::wstring theme = reinterpret_cast<WCHAR*>(cds->lpData); - if (cds->dwData == EMERGE_MESSAGE) - { + if (cds->dwData == EMERGE_MESSAGE) { SetEnvironmentVariable(TEXT("ThemeDir"), theme.c_str()); return 1; } @@ -216,10 +212,8 @@ { Config config(mainInst, menuWnd, pSettings); - if ((message == EMERGE_NOTIFY) && (wParam == EMERGE_CORE)) - { - switch (lParam) - { + if ((message == EMERGE_NOTIFY) && (wParam == EMERGE_CORE)) { + switch (lParam) { case CORE_SETTINGS: config.Show(); break; @@ -280,16 +274,13 @@ return MNGO_NOINTERFACE; menu = menuItemInfo.hSubMenu; - if (menu) - { + if (menu) { subIter = menuMap.find(menu); if (subIter == menuMap.end()) return MNGO_NOINTERFACE; dropTarget = subIter->second->GetDropTarget(); - } - else - { + } else { itemID = menuItemInfo.wID; itemID--; dropTarget = iter->second->GetMenuItem(itemID)->GetDropTarget(); @@ -334,8 +325,7 @@ MenuMap::iterator iter; // Go through the map backwards to make sure that the newest menu is matched first - for (revIter = menuMap.rbegin(); revIter != menuMap.rend(); revIter++) - { + for (revIter = menuMap.rbegin(); revIter != menuMap.rend(); revIter++) { *(index) = MenuItemFromPoint(menuWnd, revIter->first, pt); if (*(index) != -1) break; @@ -376,30 +366,25 @@ itemID = menuItemInfo.wID; itemID--; - if (menu) - { + if (menu) { subIter = menuMap.find(menu); if (subIter == menuMap.end()) return 0; wcscpy(value, subIter->second->GetValue()); - } - else + } else wcscpy(value, iter->second->GetMenuItem(itemID)->GetValue()); element = iter->second->GetMenuItem(itemID)->GetElement(); - switch (iter->second->GetType()) - { + switch (iter->second->GetType()) { int res; case 100: res = DisplayRegContext(pt); - switch (res) - { + switch (res) { case DRM_DELETE: configXML = ELGetXMLConfig(element); - if (ELRemoveXMLElement(element)) - { + if (ELRemoveXMLElement(element)) { if (ELWriteXMLConfig(configXML)) DeleteMenu(iter->first, index, MF_BYPOSITION); } @@ -417,31 +402,29 @@ if (res != 0) SendMessage(menuWnd, WM_CANCELMODE, 0, 0); break; - case 102: - { - HWND task = (HWND)_wtoi(value); - res = EAEDisplayMenu(menuWnd, task); - switch (res) - { - case SC_CLOSE: - DeleteMenu(iter->first, index, MF_BYPOSITION); - break; - case SC_SIZE: - case SC_MOVE: - case SC_MAXIMIZE: - case SC_RESTORE: - ELForceForeground(task); - SendMessage(menuWnd, WM_CANCELMODE, 0, 0); - break; - } - if (res) - PostMessage(task, WM_SYSCOMMAND, (WPARAM)res, MAKELPARAM(pt.x, pt.y)); + case 102: { + HWND task = (HWND)_wtoi(value); + res = EAEDisplayMenu(menuWnd, task); + switch (res) { + case SC_CLOSE: + DeleteMenu(iter->first, index, MF_BYPOSITION); + break; + case SC_SIZE: + case SC_MOVE: + case SC_MAXIMIZE: + case SC_RESTORE: + ELForceForeground(task); + SendMessage(menuWnd, WM_CANCELMODE, 0, 0); + break; } - break; - /* case 103: - ExecuteSettingsMenuItem(itemID); - break;*/ + if (res) + PostMessage(task, WM_SYSCOMMAND, (WPARAM)res, MAKELPARAM(pt.x, pt.y)); } + break; + /* case 103: + ExecuteSettingsMenuItem(itemID); + break;*/ + } return 1; } @@ -486,23 +469,16 @@ menuItem->GetName(), menuItem->GetValue(), menuItem->GetType(), - menuItem->GetWorkingDir()) == IDCANCEL) - { + menuItem->GetWorkingDir()) == IDCANCEL) { ELRemoveXMLElement(newElement); ELWriteXMLConfig(configXML); - } - else - { - if (ELReadXMLIntValue(newElement, (WCHAR*)TEXT("Type"), &type, 0)) - { - if (type == 100) - { + } else { + if (ELReadXMLIntValue(newElement, (WCHAR*)TEXT("Type"), &type, 0)) { + if (type == 100) { subMenu = ELGetFirstXMLElementByName(newElement, (WCHAR*)TEXT("Submenu")); - if (subMenu) - { + if (subMenu) { subItem = ELGetFirstXMLElementByName(subMenu, (WCHAR*)TEXT("item")); - if (subItem) - { + if (subItem) { ELWriteXMLIntValue(subItem, (WCHAR*)TEXT("Type"), 0); ELWriteXMLConfig(configXML); } @@ -554,8 +530,7 @@ LRESULT MenuBuilder::DoMenuSelect(HMENU menu, WORD itemType, WORD item) { - if (menu != NULL) - { + if (menu != NULL) { SelectedMenu = menu; SelectedItem = item; SelectedItemType = itemType; @@ -566,8 +541,7 @@ BOOL MenuBuilder::DoMeasureItem(LPMEASUREITEMSTRUCT lpMeasureItem) { - if (lpMeasureItem->CtlType == ODT_MENU) - { + if (lpMeasureItem->CtlType == ODT_MENU) { lpMeasureItem->itemWidth = 16; lpMeasureItem->itemHeight = 16; @@ -582,8 +556,7 @@ HICON icon = NULL; MenuMap::iterator iter; - if (lpDrawItem->CtlType == ODT_MENU) - { + if (lpDrawItem->CtlType == ODT_MENU) { iter = menuMap.find((HMENU)lpDrawItem->hwndItem); if (iter != menuMap.end()) icon = iter->second->GetMenuItem(lpDrawItem->itemID - 1)->GetIcon(); @@ -614,28 +587,24 @@ { CWPSTRUCT cwps; - if ( nCode == HC_ACTION ) - { + if ( nCode == HC_ACTION ) { CopyMemory(&cwps, (LPVOID)lParam, sizeof(CWPSTRUCT)); - switch (cwps.message) - { - case WM_CREATE: - { - WCHAR szClass[128]; - GetClassName(cwps.hwnd, szClass, 127); - if (_wcsicmp(szClass, TEXT("#32768"))==0) - { - SetWindowLongPtr(cwps.hwnd, - GWL_EXSTYLE, - GetWindowLongPtr(cwps.hwnd, GWL_EXSTYLE) | WS_EX_LAYERED); - SetLayeredWindowAttributes(cwps.hwnd, - 0, - (BYTE)((255 * globalMenuAlpha) / 100), LWA_ALPHA); - } + switch (cwps.message) { + case WM_CREATE: { + WCHAR szClass[128]; + GetClassName(cwps.hwnd, szClass, 127); + if (_wcsicmp(szClass, TEXT("#32768"))==0) { + SetWindowLongPtr(cwps.hwnd, + GWL_EXSTYLE, + GetWindowLongPtr(cwps.hwnd, GWL_EXSTYLE) | WS_EX_LAYERED); + SetLayeredWindowAttributes(cwps.hwnd, + 0, + (BYTE)((255 * globalMenuAlpha) / 100), LWA_ALPHA); } - break; } + break; + } } return CallNextHookEx((HHOOK)WH_CALLWNDPROC, nCode, wParam, lParam); @@ -649,30 +618,26 @@ ClearMenu(iter); // Registry based menu - if (type == 100) - { + if (type == 100) { BuildXMLMenu(iter); return; } // Path based menu - if (type == 101) - { + if (type == 101) { BuildFileMenu(iter); return; } // Tasks based menu - if (type == 102) - { + if (type == 102) { taskMenu = iter->first; EnumWindows(BuildTasksMenu, reinterpret_cast<LPARAM>(this)); return; } // Settings menu - if (type == 103) - { + if (type == 103) { BuildSettingsMenu(iter); return; } @@ -680,8 +645,7 @@ void MenuBuilder::ClearAllMenus() { - while (!menuMap.empty()) - { + while (!menuMap.empty()) { ClearMenu(menuMap.begin()); DestroyMenu(menuMap.begin()->first); menuMap.erase(menuMap.begin()); @@ -706,14 +670,12 @@ HMENU subMenu; TiXmlElement *tmp, *subSection, *child = ELGetFirstXMLElement(iter->second->GetSection()); - while (child) - { + while (child) { found = true; ELReadXMLIntValue(child, (WCHAR*)TEXT("Type"), &type, 0); // Separator - if (type == 0) - { + if (type == 0) { MenuItem *menuItem = new MenuItem(NULL, type, NULL, NULL, child); itemInfo.fMask = MIIM_FTYPE|MIIM_ID; @@ -728,10 +690,8 @@ } // Executable - if (type == 1) - { - if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) - { + if (type == 1) { + if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) { ELReadXMLStringValue(child, (WCHAR*)TEXT("WorkingDir"), workingDir, (WCHAR*)TEXT("\0")); ELReadXMLStringValue(child, (WCHAR*)TEXT("Name"), name, (WCHAR*)TEXT("\0")); NoPrefixString(name); @@ -741,8 +701,7 @@ itemInfo.cbSize = sizeof(MENUITEMINFO); itemInfo.dwTypeData = name; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; @@ -757,15 +716,12 @@ } // System Command - if (type == 2) - { - if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) - { + if (type == 2) { + if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) { ELReadXMLStringValue(child, (WCHAR*)TEXT("Name"), name, (WCHAR*)TEXT("\0")); if (_wcsicmp(name, TEXT("DateTime")) == 0) type = 3; - else - { + else { NoPrefixString(name); MenuItem *menuItem = new MenuItem(name, type, value, NULL, child); @@ -773,8 +729,7 @@ itemInfo.cbSize = sizeof(MENUITEMINFO); itemInfo.dwTypeData = name; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; @@ -789,12 +744,10 @@ } } - if (type == 3) - { - if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) - { + if (type == 3) { + if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) { MenuItem *menuItem = new MenuItem(NULL, type, value, NULL, child); - + WCHAR datetimeString[MAX_LINE_LENGTH]; time_t tVal; struct tm *stVal; @@ -802,12 +755,11 @@ time(&tVal); stVal = localtime(&tVal); - // Format the time - setlocale(LC_TIME, ""); + wcscpy(datetimeString, (WCHAR*)ELwcsftime(value, stVal).c_str()); itemInfo.fMask = MIIM_STRING|MIIM_ID; itemInfo.cbSize = sizeof(MENUITEMINFO); - itemInfo.dwTypeData = (WCHAR*)ELwcsftime(value, stVal).c_str(); + itemInfo.dwTypeData = datetimeString; itemInfo.wID = GetMenuItemCount(iter->first) + 1; iter->second->AddMenuItem(menuItem); @@ -817,10 +769,8 @@ } // Special Folder - if (type == 4) - { - if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) - { + if (type == 4) { + if (ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0"))) { ELReadXMLStringValue(child, (WCHAR*)TEXT("Name"), name, (WCHAR*)TEXT("\0")); NoPrefixString(name); MenuItem *menuItem = new MenuItem(name, type, value, NULL, child); @@ -829,8 +779,7 @@ itemInfo.cbSize = sizeof(MENUITEMINFO); itemInfo.dwTypeData = name; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; @@ -845,8 +794,7 @@ } // Registry based submenu - if (type == 100) - { + if (type == 100) { ELReadXMLStringValue(child, (WCHAR*)TEXT("Name"), name, (WCHAR*)TEXT("\0")); subSection = ELGetFirstXMLElementByName(child, (WCHAR*)TEXT("Submenu")); subMenu = CreatePopupMenu(); @@ -858,8 +806,7 @@ itemInfo.dwTypeData = name; itemInfo.hSubMenu = subMenu; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; @@ -871,16 +818,14 @@ InsertMenuItem(iter->first, i, TRUE, &itemInfo); iter2 = menuMap.find(iter->first); - if (iter2 != menuMap.end()) - { + if (iter2 != menuMap.end()) { std::tr1::shared_ptr<MenuListItem> mli(new MenuListItem(name, type, NULL, subSection)); menuMap.insert(std::pair< HMENU, std::tr1::shared_ptr<MenuListItem> >(subMenu, mli)); } } // Path based submenu - if (type == 101) - { + if (type == 101) { ELReadXMLStringValue(child, (WCHAR*)TEXT("Name"), name, (WCHAR*)TEXT("\0")); ELReadXMLStringValue(child, (WCHAR*)TEXT("Value"), value, (WCHAR*)TEXT("\0")); subMenu = CreatePopupMenu(); @@ -892,8 +837,7 @@ itemInfo.dwTypeData = name; itemInfo.hSubMenu = subMenu; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; @@ -904,16 +848,14 @@ InsertMenuItem(iter->first, i, TRUE, &itemInfo); iter2 = menuMap.find(iter->first); - if (iter2 != menuMap.end()) - { + if (iter2 != menuMap.end()) { std::tr1::shared_ptr<MenuListItem> mli(new MenuListItem(name, type, value, NULL)); menuMap.insert(std::pair< HMENU, std::tr1::shared_ptr<MenuListItem> >(subMenu, mli)); } } // Tasks(102) or Settings(103) submenu - if ((type == 102) || (type == 103)) - { + if ((type == 102) || (type == 103)) { ELReadXMLStringValue(child, (WCHAR*)TEXT("Name"), name, (WCHAR*)TEXT("\0")); subMenu = CreatePopupMenu(); NoPrefixString(name); @@ -924,8 +866,7 @@ itemInfo.dwTypeData = name; itemInfo.hSubMenu = subMenu; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; @@ -936,8 +877,7 @@ InsertMenuItem(iter->first, i, TRUE, &itemInfo); iter2 = menuMap.find(iter->first); - if (iter2 != menuMap.end()) - { + if (iter2 != menuMap.end()) { std::tr1::shared_ptr<MenuListItem> mli(new MenuListItem(name, type, NULL, NULL)); menuMap.insert(std::pair< HMENU, std::tr1::shared_ptr<MenuListItem> >(subMenu, mli)); } @@ -959,16 +899,13 @@ TiXmlElement *section, *xmlItem; section = iter->second->GetSection(); - if (section) - { + if (section) { int type; - if (ELIsKeyDown(VK_RBUTTON)) - { + if (ELIsKeyDown(VK_RBUTTON)) { xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); type = 4; - if (xmlItem) - { + if (xmlItem) { ELGetSpecialFolder(CSIDL_DRIVES, specialFolder); ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), specialFolder); @@ -976,8 +913,7 @@ } xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); - if (xmlItem) - { + if (xmlItem) { ELGetSpecialFolder(CSIDL_BITBUCKET, specialFolder); ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), specialFolder); @@ -991,8 +927,7 @@ xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); type = 101; - if (xmlItem) - { + if (xmlItem) { ELGetSpecialFolder(CSIDL_STARTMENU, specialFolder); ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), specialFolder); @@ -1000,8 +935,7 @@ } xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); - if (xmlItem) - { + if (xmlItem) { ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Quick Launch")); ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), @@ -1009,8 +943,7 @@ } xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); - if (xmlItem) - { + if (xmlItem) { ELGetSpecialFolder(CSIDL_DESKTOP, specialFolder); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), specialFolder); ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); @@ -1024,8 +957,7 @@ xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); type = 103; - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Settings")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("\0")); @@ -1033,8 +965,7 @@ xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); type = 1; - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Display Properties")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("desk.cpl")); @@ -1047,37 +978,31 @@ xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); type = 2; - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Run")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("Run")); } xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Logoff")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("Logoff")); } xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Shutdown")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("Shutdown")); } ELWriteXMLConfig(ELGetXMLConfig(xmlItem)); - } - else if (ELIsKeyDown(VK_MBUTTON)) - { + } else if (ELIsKeyDown(VK_MBUTTON)) { xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); type = 102; - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Tasks")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("\0")); @@ -1090,24 +1015,21 @@ xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); type = 2; - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Show Applets")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("Show")); } xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Hide Applets")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("Hide")); } xmlItem = ELSetFirstXMLElement(section, (WCHAR*)TEXT("item")); - if (xmlItem) - { + if (xmlItem) { ELWriteXMLIntValue(xmlItem, (WCHAR*)TEXT("Type"), type); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Name"), (WCHAR*)TEXT("Show Desktop")); ELWriteXMLStringValue(xmlItem, (WCHAR*)TEXT("Value"), (WCHAR*)TEXT("ShowDesktop")); @@ -1142,10 +1064,8 @@ fileHandle = FindFirstFile(searchPath, &findData); if (fileHandle == INVALID_HANDLE_VALUE) return; - else - { - do - { + else { + do { // Skip hidden files if (wcscmp(findData.cFileName, TEXT(".")) == 0 || wcscmp(findData.cFileName, TEXT("..")) == 0 || @@ -1157,15 +1077,12 @@ wcscat(tmp, TEXT("\\")); wcscat(tmp, findData.cFileName); - if (wcsstr(tmp, TEXT("target.lnk")) != NULL) - { + if (wcsstr(tmp, TEXT("target.lnk")) != NULL) { SHORTCUTINFO shortcutInfo; shortcutInfo.flags = SI_PATH; - if (ELParseShortcut(tmp, &shortcutInfo)) - { - if (PathIsDirectory(shortcutInfo.Path)) - { + if (ELParseShortcut(tmp, &shortcutInfo)) { + if (PathIsDirectory(shortcutInfo.Path)) { iter->second->SetValue(shortcutInfo.Path); BuildFileMenu(iter); break; @@ -1174,22 +1091,19 @@ } // Process a subdirectory - if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { + if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { UINT folderPos, itemID; ULONG_PTR itemData; MenuItem *menuItem; std::tr1::shared_ptr<MenuListItem> mli; - if (!GetPos(iter, findData.cFileName, true, &folderPos, &itemID, &itemData)) - { + if (!GetPos(iter, findData.cFileName, true, &folderPos, &itemID, &itemData)) { menuItem = new MenuItem(NULL, 101, tmp, NULL, NULL); MENUITEMINFO itemInfo; itemInfo.fMask = MIIM_STRING | MIIM_ID | MIIM_SUBMENU | MIIM_DATA; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; @@ -1219,9 +1133,7 @@ menuMap.insert(std::pair< HMENU, std::tr1::shared_ptr<MenuListItem> >(subMenu, mli)); dirCount++; - } - else - { + } else { WCHAR path[MAX_LINE_LENGTH]; iter2 = menuMap.find((HMENU)itemData); @@ -1237,8 +1149,7 @@ } } // Executable - else - { + else { MENUITEMINFO itemInfo; UINT filePos, itemID; ULONG_PTR itemData; @@ -1246,17 +1157,16 @@ MenuItem *menuItem; wcscpy(extension, PathFindExtension(tmp)); bool isShortcut = (_wcsicmp(extension, TEXT(".lnk")) == 0) || - (_wcsicmp(extension, TEXT(".pif")) == 0) || - (_wcsicmp(extension, TEXT(".scf")) == 0) || - (_wcsicmp(extension, TEXT(".url")) == 0); + (_wcsicmp(extension, TEXT(".pif")) == 0) || + (_wcsicmp(extension, TEXT(".scf")) == 0) || + (_wcsicmp(extension, TEXT(".url")) == 0); wcscpy(entry, tmp); wcscpy(tmp, findData.cFileName); if (isShortcut) PathRemoveExtension(tmp); - if (GetPos(iter, tmp, false, &filePos, &itemID, &itemData)) - { + if (GetPos(iter, tmp, false, &filePos, &itemID, &itemData)) { SHORTCUTINFO entryInfo, targetInfo; entryInfo.flags = SI_PATH; targetInfo.flags = SI_PATH; @@ -1266,26 +1176,19 @@ lwrEntry = _wcslwr(_wcsdup(entry)); lwrValue = _wcslwr(_wcsdup(menuItem->GetValue())); - if (ELParseShortcut(entry, &entryInfo)) - { - if (ELParseShortcut(menuItem->GetValue(), &targetInfo)) - { - if (_wcsicmp(entryInfo.Path, targetInfo.Path) == 0) - { + if (ELParseShortcut(entry, &entryInfo)) { + if (ELParseShortcut(menuItem->GetValue(), &targetInfo)) { + if (_wcsicmp(entryInfo.Path, targetInfo.Path) == 0) { free(lwrEntry); free(lwrValue); continue; } } - } - else if ((wcsstr(lwrEntry, TEXT(".url")) != NULL) && - (wcsstr(lwrValue, TEXT(".url")) != NULL)) - { + } else if ((wcsstr(lwrEntry, TEXT(".url")) != NULL) && + (wcsstr(lwrValue, TEXT(".url")) != NULL)) { if (ELReadFileString(entry, (WCHAR*)TEXT("URL"), entryURL, (WCHAR*)TEXT("")) && - ELReadFileString(menuItem->GetValue(), (WCHAR*)TEXT("URL"), targetURL, (WCHAR*)TEXT(""))) - { - if (_wcsicmp(entryURL, targetURL) == 0) - { + ELReadFileString(menuItem->GetValue(), (WCHAR*)TEXT("URL"), targetURL, (WCHAR*)TEXT(""))) { + if (_wcsicmp(entryURL, targetURL) == 0) { free(lwrValue); free(lwrValue); continue; @@ -1301,8 +1204,7 @@ itemInfo.fMask = MIIM_STRING | MIIM_ID; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.hbmpItem = HBMMENU_CALLBACK; itemInfo.fMask |= MIIM_BITMAP; @@ -1320,8 +1222,7 @@ InsertMenuItem(iter->first, filePos, TRUE, &itemInfo); } - } - while (FindNextFile(fileHandle, &findData)); + } while (FindNextFile(fileHandle, &findData)); FindClose(fileHandle); } @@ -1335,17 +1236,13 @@ wcscpy(inputString, iter->second->GetValue()); - while (i < wcslen(inputString)) - { - if (inputString[i] == delimiter) - { + while (i < wcslen(inputString)) { + if (inputString[i] == delimiter) { tmp[j] = '\0'; BuildFileMenuFromString(iter, tmp); j = 0; - } - else - { + } else { tmp[j] = inputString[i]; j++; } @@ -1393,8 +1290,7 @@ itemInfo.fMask = MIIM_STRING | MIIM_ID; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { menuItem->SetIcon(); itemInfo.hbmpItem = HBMMENU_CALLBACK; itemInfo.fMask |= MIIM_BITMAP; @@ -1424,8 +1320,7 @@ token = wcstok(source, TEXT("&")); - while (token != NULL) - { + while (token != NULL) { result = true; wcscat(tmp, token); token = wcstok(NULL, TEXT("&")); @@ -1468,15 +1363,12 @@ return 0; configXML = ELOpenXMLConfig(xmlFile, true); - if (configXML) - { + if (configXML) { section = ELGetXMLSection(configXML.get(), (WCHAR*)TEXT("Menus"), true); - if (section) - { + if (section) { - switch (button) - { + switch (button) { case WM_MBUTTONDOWN: menu = ELGetFirstXMLElementByName(section, (WCHAR*)TEXT("MidMenu")); break; @@ -1485,8 +1377,7 @@ break; } - if (menu) - { + if (menu) { ClearAllMenus(); mli = std::tr1::shared_ptr<MenuListItem>(new MenuListItem(NULL, 100, NULL, menu)); rootMenu = CreatePopupMenu(); @@ -1560,8 +1451,7 @@ menuItem = iter->second->GetMenuItem(itemID); swprintf(error, TEXT("Failed to execute \"%s\""), menuItem->GetValue()); - switch (iter->second->GetType()) - { + switch (iter->second->GetType()) { case 100: ExecuteXMLMenuItem(menuItem->GetType(), menuItem->GetValue(), @@ -1601,8 +1491,7 @@ menuListSize = GetMenuItemCount(iter->first); - while (index < menuListSize) - { + while (index < menuListSize) { ZeroMemory(normalizedValue, MAX_LINE_LENGTH); mii.fMask = MIIM_STRING | MIIM_SUBMENU | MIIM_ID | MIIM_DATA; mii.dwTypeData = buffer; @@ -1618,10 +1507,8 @@ (*itemData) = mii.dwItemData; (*itemID) = mii.wID; - if (mii.hSubMenu != NULL) - { - if (directory) - { + if (mii.hSubMenu != NULL) { + if (directory) { if (CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE|NORM_IGNOREKANATYPE|NORM_IGNOREWIDTH, normalizedInput, (int)wcslen(normalizedInput), @@ -1637,23 +1524,16 @@ break; (*pos)++; - } - else - { + } else { (*pos)++; index++; continue; } - } - else - { - if (directory) - { + } else { + if (directory) { index++; continue; - } - else - { + } else { if (CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE|NORM_IGNOREKANATYPE|NORM_IGNOREWIDTH, normalizedInput, (int)wcslen(normalizedInput), @@ -1699,8 +1579,7 @@ UINT index = GetMenuItemCount(iter->first); itemInfo.fMask = MIIM_STRING | MIIM_ID; - if (id == BSM_SEPARATOR) - { + if (id == BSM_SEPARATOR) { itemInfo.fMask = MIIM_FTYPE | MIIM_ID; itemInfo.fType = MFT_SEPARATOR; } @@ -1709,8 +1588,7 @@ itemInfo.wID = id; itemInfo.dwTypeData = text; - if (pSettings->GetMenuIcons()) - { + if (pSettings->GetMenuIcons()) { itemInfo.fMask |= MIIM_BITMAP; itemInfo.hbmpItem = HBMMENU_CALLBACK; } @@ -1725,8 +1603,7 @@ WCHAR error[MAX_LINE_LENGTH]; swprintf(error, TEXT("Failed to execute \"%s\""), value); - switch (type) - { + switch (type) { case 1: ret = ELExecute(value, workingDir); break; @@ -1750,8 +1627,7 @@ std::wstring aliasFile; Config config(mainInst, menuWnd, pSettings); - switch (index) - { + switch (index) { int res; case 0: ELExecuteInternal((WCHAR*)TEXT("CoreAbout")); @@ -1759,8 +1635,7 @@ case 1: res = config.Show(); - if (res == IDOK) - { + if (res == IDOK) { SetWorkArea(); UpdateMenuHook(); } @@ -1827,4 +1702,3 @@ EnumDisplayMonitors(hdc, NULL, SetMonitorArea, reinterpret_cast<LPARAM>(pSettings.get())); ReleaseDC(NULL, hdc); } - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-19 11:58:31
|
Revision: 2728 http://emerge.svn.sourceforge.net/emerge/?rev=2728&view=rev Author: ir0nh34d Date: 2009-11-19 11:58:23 +0000 (Thu, 19 Nov 2009) Log Message: ----------- Set run target Modified Paths: -------------- trunk/Source/emergeDesktop/emergeDesktop.project Modified: trunk/Source/emergeDesktop/emergeDesktop.project =================================================================== --- trunk/Source/emergeDesktop/emergeDesktop.project 2009-11-19 11:28:29 UTC (rev 2727) +++ trunk/Source/emergeDesktop/emergeDesktop.project 2009-11-19 11:58:23 UTC (rev 2728) @@ -79,7 +79,7 @@ </Compiler> <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> - <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> + <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="../bin/$(ProjectName)" CommandArguments="" WorkingDirectory="../bin" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> <PostConnectCommands></PostConnectCommands> <StartupCommands></StartupCommands> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-19 11:28:37
|
Revision: 2727 http://emerge.svn.sourceforge.net/emerge/?rev=2727&view=rev Author: ir0nh34d Date: 2009-11-19 11:28:29 +0000 (Thu, 19 Nov 2009) Log Message: ----------- Update CodeLite files Modified Paths: -------------- trunk/Source/emerge/emerge.project trunk/Source/emerge.workspace trunk/Source/emergeAppletEngine/emergeAppletEngine.project trunk/Source/emergeBaseClasses/emergeBaseClasses.project trunk/Source/emergeCommand/emergeCommand.project trunk/Source/emergeCore/emergeCore.project trunk/Source/emergeDesktop/emergeDesktop.project trunk/Source/emergeGraphics/emergeGraphics.project trunk/Source/emergeHotkeys/emergeHotkeys.project trunk/Source/emergeLauncher/emergeLauncher.project trunk/Source/emergeLib/emergeLib.project trunk/Source/emergePower/emergePower.project trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project trunk/Source/emergeSysMon/emergeSysMon.project trunk/Source/emergeTasks/emergeTasks.project trunk/Source/emergeTray/emergeTray.project trunk/Source/emergeVWM/emergeVWM.project trunk/Source/reg2xml/reg2xml.project Modified: trunk/Source/emerge/emerge.project =================================================================== --- trunk/Source/emerge/emerge.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emerge/emerge.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -8,15 +8,15 @@ <VirtualDirectory Name="include"> <File Name="emerge.rc"/> </VirtualDirectory> - <Dependencies Name="Release"> + <Dependencies Name="Debug"> <Project Name="emergeLib"/> </Dependencies> - <Dependencies Name="Debug"> + <Dependencies Name="Release"> <Project Name="emergeLib"/> </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -49,10 +49,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -82,13 +82,14 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="emergeLib"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emerge.workspace =================================================================== --- trunk/Source/emerge.workspace 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emerge.workspace 2009-11-19 11:28:29 UTC (rev 2727) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <CodeLite_Workspace Name="emerge" Database=".\emerge.tags"> - <Project Name="emergeLib" Path="emergeLib\emergeLib.project" Active="No"/> - <Project Name="emergeGraphics" Path="emergeGraphics\emergeGraphics.project" Active="Yes"/> + <Project Name="emergeLib" Path="emergeLib\emergeLib.project" Active="Yes"/> + <Project Name="emergeGraphics" Path="emergeGraphics\emergeGraphics.project" Active="No"/> <Project Name="emergeAppletEngine" Path="emergeAppletEngine\emergeAppletEngine.project"/> <Project Name="emergeSchemeEngine" Path="emergeSchemeEngine\emergeSchemeEngine.project"/> <Project Name="emergeBaseClasses" Path="emergeBaseClasses\emergeBaseClasses.project"/> @@ -9,8 +9,7 @@ <Project Name="emergeCommand" Path="emergeCommand\emergeCommand.project"/> <Project Name="emergeDesktop" Path="emergeDesktop\emergeDesktop.project"/> <Project Name="emergeHotkeys" Path="emergeHotkeys\emergeHotkeys.project"/> - <Project Name="emergeLauncher" Path="emergeLauncher\emergeLauncher.project"/> - <Project Name="emergeMediaCtrl" Path="emergeMediaCtrl\emergeMediaCtrl.project"/> + <Project Name="emergeLauncher" Path="emergeLauncher\emergeLauncher.project" Active="No"/> <Project Name="emergePower" Path="emergePower\emergePower.project"/> <Project Name="emergeSysMon" Path="emergeSysMon\emergeSysMon.project"/> <Project Name="emergeTasks" Path="emergeTasks\emergeTasks.project"/> @@ -30,7 +29,6 @@ <Project Name="emergeDesktop" ConfigName="Debug"/> <Project Name="emergeHotkeys" ConfigName="Debug"/> <Project Name="emergeLauncher" ConfigName="Debug"/> - <Project Name="emergeMediaCtrl" ConfigName="Debug"/> <Project Name="emergePower" ConfigName="Debug"/> <Project Name="emergeSysMon" ConfigName="Debug"/> <Project Name="emergeTasks" ConfigName="Debug"/> @@ -50,7 +48,6 @@ <Project Name="emergeDesktop" ConfigName="Release"/> <Project Name="emergeHotkeys" ConfigName="Release"/> <Project Name="emergeLauncher" ConfigName="Release"/> - <Project Name="emergeMediaCtrl" ConfigName="Release"/> <Project Name="emergePower" ConfigName="Release"/> <Project Name="emergeSysMon" ConfigName="Release"/> <Project Name="emergeTasks" ConfigName="Release"/> Modified: trunk/Source/emergeAppletEngine/emergeAppletEngine.project =================================================================== --- trunk/Source/emergeAppletEngine/emergeAppletEngine.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeAppletEngine/emergeAppletEngine.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -20,7 +20,7 @@ </Dependencies> <Settings Type="Dynamic Library"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -53,12 +53,12 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> - <General OutputFile="$(IntermediateDirectory)/$(ProjectName).so" IntermediateDirectory="./Release" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> + <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Release" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> <PostConnectCommands></PostConnectCommands> <StartupCommands></StartupCommands> @@ -86,7 +86,7 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options="-DEMERGEAPPLETENGINE_EXPORTS"> + <Compiler Options="-pedantic;-W;-Wall;-DEMERGEAPPLETENGINE_EXPORTS;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> <Linker Options=""> @@ -97,6 +97,7 @@ <Library Value="ole32"/> <Library Value="shlwapi"/> <Library Value="emergeLib"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeBaseClasses/emergeBaseClasses.project =================================================================== --- trunk/Source/emergeBaseClasses/emergeBaseClasses.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeBaseClasses/emergeBaseClasses.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -6,6 +6,7 @@ <File Name="BaseApplet.cpp"/> <File Name="BaseAppletMenu.cpp"/> <File Name="BaseSettings.cpp"/> + <File Name="BasePositionPage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="resource.h"/> @@ -15,6 +16,8 @@ <File Name="emergeBaseClasses.rc"/> <File Name="..\svnversion.h"/> <File Name="..\version.h"/> + <File Name="BasePositionPage.h"/> + <File Name="BasePositionPage.dlg"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -30,7 +33,7 @@ </Dependencies> <Settings Type="Dynamic Library"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -63,10 +66,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Release" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -96,7 +99,7 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options="-DEMERGEBASECLASSES_EXPORTS"> + <Compiler Options="-pedantic;-W;-Wall;-DEMERGEBASECLASSES_EXPORTS;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> <Linker Options=""> @@ -110,6 +113,7 @@ <Library Value="emergeSchemeEngine"/> <Library Value="emergeAppletEngine"/> <Library Value="emergeGraphics"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeCommand/emergeCommand.project =================================================================== --- trunk/Source/emergeCommand/emergeCommand.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeCommand/emergeCommand.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -9,6 +9,8 @@ <File Name="Command.cpp"/> <File Name="Config.cpp"/> <File Name="CustomSource.cpp"/> + <File Name="TextPage.cpp"/> + <File Name="ConfigPage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Applet.h"/> @@ -18,6 +20,10 @@ <File Name="CustomSource.h"/> <File Name="resource.h"/> <File Name="Settings.h"/> + <File Name="TextPage.h"/> + <File Name="ConfigPage.dlg"/> + <File Name="ConfigPage.h"/> + <File Name="TextPage.dlg"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -33,7 +39,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -66,10 +72,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -99,20 +105,23 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Wextra;-Werror;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="ole32"/> <Library Value="uuid"/> <Library Value="gdi32"/> <Library Value="comdlg32"/> + <Library Value="comctl32"/> <Library Value="emergeLib"/> <Library Value="emergeGraphics"/> <Library Value="emergeAppletEngine"/> <Library Value="emergeBaseClasses"/> + <Library Value="emergeSchemeEngine"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeCore/emergeCore.project =================================================================== --- trunk/Source/emergeCore/emergeCore.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeCore/emergeCore.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -37,7 +37,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -70,10 +70,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -103,10 +103,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="shell32"/> @@ -117,6 +117,7 @@ <Library Value="uuid"/> <Library Value="winmm"/> <Library Value="emergeLib"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeDesktop/emergeDesktop.project =================================================================== --- trunk/Source/emergeDesktop/emergeDesktop.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeDesktop/emergeDesktop.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -41,7 +41,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -74,10 +74,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -107,10 +107,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="shell32"/> @@ -123,6 +123,8 @@ <Library Value="emergeLib"/> <Library Value="emergeGraphics"/> <Library Value="emergeAppletEngine"/> + <Library Value="emergeBaseClasses"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeGraphics/emergeGraphics.project =================================================================== --- trunk/Source/emergeGraphics/emergeGraphics.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeGraphics/emergeGraphics.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -19,29 +19,29 @@ </Dependencies> <Settings Type="Dynamic Library"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Debug" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> - <PostConnectCommands/> - <StartupCommands/> + <PostConnectCommands></PostConnectCommands> + <StartupCommands></StartupCommands> </Debugger> <PreBuild/> <PostBuild/> <CustomBuild Enabled="no"> - <CleanCommand/> - <BuildCommand/> - <PreprocessFileCommand/> - <SingleFileCommand/> - <MakefileGenerationCommand/> + <CleanCommand></CleanCommand> + <BuildCommand></BuildCommand> + <PreprocessFileCommand></PreprocessFileCommand> + <SingleFileCommand></SingleFileCommand> + <MakefileGenerationCommand></MakefileGenerationCommand> <ThirdPartyToolName>None</ThirdPartyToolName> - <WorkingDirectory/> + <WorkingDirectory></WorkingDirectory> </CustomBuild> <AdditionalRules> - <CustomPostBuild/> + <CustomPostBuild></CustomPostBuild> <CustomPreBuild>../svnversion.h ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & @@ -52,29 +52,29 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Release" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> - <PostConnectCommands/> - <StartupCommands/> + <PostConnectCommands></PostConnectCommands> + <StartupCommands></StartupCommands> </Debugger> <PreBuild/> <PostBuild/> <CustomBuild Enabled="no"> - <CleanCommand/> - <BuildCommand/> - <PreprocessFileCommand/> - <SingleFileCommand/> - <MakefileGenerationCommand/> + <CleanCommand></CleanCommand> + <BuildCommand></BuildCommand> + <PreprocessFileCommand></PreprocessFileCommand> + <SingleFileCommand></SingleFileCommand> + <MakefileGenerationCommand></MakefileGenerationCommand> <ThirdPartyToolName>None</ThirdPartyToolName> - <WorkingDirectory/> + <WorkingDirectory></WorkingDirectory> </CustomBuild> <AdditionalRules> - <CustomPostBuild/> + <CustomPostBuild></CustomPostBuild> <CustomPreBuild>../svnversion.h ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & @@ -85,7 +85,7 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options="-DEMERGEGRAPHICS_EXPORTS"> + <Compiler Options="-pedantic;-W;-Wall;-DEMERGEGRAPHICS_EXPORTS;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> <Linker Options=""> @@ -96,6 +96,7 @@ <Library Value="emergeLib"/> <Library Value="msimg32"/> <Library Value="gdi32"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeHotkeys/emergeHotkeys.project =================================================================== --- trunk/Source/emergeHotkeys/emergeHotkeys.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeHotkeys/emergeHotkeys.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -29,7 +29,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -62,10 +62,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -95,10 +95,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="comctl32"/> @@ -106,6 +106,7 @@ <Library Value="emergeLib"/> <Library Value="emergeAppletEngine"/> <Library Value="emergeBaseClasses"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeLauncher/emergeLauncher.project =================================================================== --- trunk/Source/emergeLauncher/emergeLauncher.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeLauncher/emergeLauncher.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -8,6 +8,8 @@ <File Name="Item.cpp"/> <File Name="main.cpp"/> <File Name="Settings.cpp"/> + <File Name="ConfigPage.cpp"/> + <File Name="LaunchPage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Applet.h"/> @@ -16,20 +18,19 @@ <File Name="Item.h"/> <File Name="resource.h"/> <File Name="Settings.h"/> + <File Name="LaunchPage.h"/> + <File Name="ConfigPage.dlg"/> + <File Name="ConfigPage.h"/> + <File Name="LaunchPage.dlg"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> <Project Name="emergeGraphics"/> <Project Name="emergeBaseClasses"/> </Dependencies> - <Dependencies Name="Release"> - <Project Name="emergeLib"/> - <Project Name="emergeGraphics"/> - <Project Name="emergeBaseClasses"/> - </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -62,10 +63,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -95,10 +96,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="shell32"/> @@ -110,8 +111,15 @@ <Library Value="emergeLib"/> <Library Value="emergeGraphics"/> <Library Value="emergeBaseClasses"/> + <Library Value="emergeSchemeEngine"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> </Settings> + <Dependencies Name="Release"> + <Project Name="emergeLib"/> + <Project Name="emergeGraphics"/> + <Project Name="emergeBaseClasses"/> + </Dependencies> </CodeLite_Project> Modified: trunk/Source/emergeLib/emergeLib.project =================================================================== --- trunk/Source/emergeLib/emergeLib.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeLib/emergeLib.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -28,7 +28,7 @@ <Dependencies Name="Release"/> <Settings Type="Dynamic Library"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -61,22 +61,17 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Release" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> <PostConnectCommands></PostConnectCommands> <StartupCommands></StartupCommands> </Debugger> - <PreBuild> - <Command Enabled="no">if not exist ..\svnversion.h svn info --revision HEAD | findstr Revision > svnversion.tmp</Command> - <Command Enabled="no">if not exist ..\svnversion.h and exist svnversion.tmp for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION %%j > ..\svnversion.h</Command> - <Command Enabled="no">if exist ..\svnversion.h and exist svnversion.tmp for /f "tokens=1,2" %%i in (svnversion.tmp) do echo #define SVN_VERSION_STR "%%j" >> ..\svnversion.h</Command> - <Command Enabled="no">if exist svnversion.tmp del /q svnversion.tmp</Command> - </PreBuild> + <PreBuild/> <PostBuild/> <CustomBuild Enabled="no"> <CleanCommand></CleanCommand> @@ -99,19 +94,21 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options="-DEMERGELIB_EXPORTS"> + <Compiler Options="-pedantic;-W;-Wall;-Wextra;-Werror;-DEMERGELIB_EXPORTS;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc"> <LibraryPath Value="."/> + <Library Value="powrprof"/> <Library Value="shlwapi"/> <Library Value="ole32"/> <Library Value="uuid"/> <Library Value="version"/> <Library Value="psapi"/> <Library Value="winmm"/> - <Library Value="wtsapi32"/> <Library Value="gdi32"/> + <Library Value="wtsapi32"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergePower/emergePower.project =================================================================== --- trunk/Source/emergePower/emergePower.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergePower/emergePower.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -7,6 +7,8 @@ <File Name="Config.cpp"/> <File Name="Settings.cpp"/> <File Name="main.cpp"/> + <File Name="PositionPage.cpp"/> + <File Name="ConfigPage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Applet.h"/> @@ -14,6 +16,10 @@ <File Name="resource.h"/> <File Name="Settings.h"/> <File Name="emergePower.rc"/> + <File Name="PositionPage.h"/> + <File Name="ConfigPage.dlg"/> + <File Name="ConfigPage.h"/> + <File Name="PositionPage.dlg"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -29,7 +35,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -62,10 +68,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -95,10 +101,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="shell32"/> @@ -109,6 +115,8 @@ <Library Value="emergeGraphics"/> <Library Value="emergeAppletEngine"/> <Library Value="emergeBaseClasses"/> + <Library Value="emergeSchemeEngine"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project =================================================================== --- trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeSchemeEngine/emergeSchemeEngine.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -4,12 +4,10 @@ <Dependencies/> <VirtualDirectory Name="src"> <File Name="main.cpp"/> - <File Name="BImage.cpp"/> <File Name="SchemeEditor.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="SchemeEditor.h"/> - <File Name="BImage.h"/> <File Name="emergeSchemeEngine.h"/> <File Name="resource.h"/> <File Name="..\version.h"/> @@ -26,7 +24,7 @@ </Dependencies> <Settings Type="Dynamic Library"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -59,10 +57,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Release" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -92,7 +90,7 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options="-DEMERGESCHEMEENGINE_EXPORTS"> + <Compiler Options="-pedantic;-W;-Wall;-DEMERGESCHEMEENGINE_EXPORTS;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> <Linker Options=""> @@ -106,6 +104,7 @@ <Library Value="comdlg32"/> <Library Value="emergeLib"/> <Library Value="emergeGraphics"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeSysMon/emergeSysMon.project =================================================================== --- trunk/Source/emergeSysMon/emergeSysMon.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeSysMon/emergeSysMon.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -7,6 +7,9 @@ <File Name="Config.cpp"/> <File Name="main.cpp"/> <File Name="Settings.cpp"/> + <File Name="PositionPage.cpp"/> + <File Name="ConfigPage.cpp"/> + <File Name="DisplayPage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Applet.h"/> @@ -14,6 +17,12 @@ <File Name="resource.h"/> <File Name="emergeSysMon.rc"/> <File Name="Settings.h"/> + <File Name="PositionPage.h"/> + <File Name="ConfigPage.dlg"/> + <File Name="ConfigPage.h"/> + <File Name="DisplayPage.dlg"/> + <File Name="DisplayPage.h"/> + <File Name="PositionPage.dlg"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -31,7 +40,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -64,10 +73,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -97,10 +106,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="shell32"/> @@ -112,6 +121,7 @@ <Library Value="emergeAppletEngine"/> <Library Value="emergeBaseClasses"/> <Library Value="emergeSchemeEngine"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeTasks/emergeTasks.project =================================================================== --- trunk/Source/emergeTasks/emergeTasks.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeTasks/emergeTasks.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -8,6 +8,7 @@ <File Name="Applet.cpp"/> <File Name="Config.cpp"/> <File Name="main.cpp"/> + <File Name="ConfigPage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Applet.h"/> @@ -16,6 +17,8 @@ <File Name="emergeTasks.rc"/> <File Name="Settings.h"/> <File Name="Task.h"/> + <File Name="ConfigPage.h"/> + <File Name="ConfigPage.dlg"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -31,7 +34,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -64,10 +67,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -97,10 +100,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Wextra;-Werror;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="shell32"/> @@ -109,6 +112,8 @@ <Library Value="emergeGraphics"/> <Library Value="emergeAppletEngine"/> <Library Value="emergeBaseClasses"/> + <Library Value="emergeSchemeEngine"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeTray/emergeTray.project =================================================================== --- trunk/Source/emergeTray/emergeTray.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeTray/emergeTray.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -8,6 +8,9 @@ <File Name="Applet.cpp"/> <File Name="Config.cpp"/> <File Name="main.cpp"/> + <File Name="IconHidePage.cpp"/> + <File Name="ConfigPage.cpp"/> + <File Name="AppBar.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Applet.h"/> @@ -16,6 +19,11 @@ <File Name="Settings.h"/> <File Name="emergeTray.rc"/> <File Name="TrayIcon.h"/> + <File Name="IconHidePage.h"/> + <File Name="ConfigPage.dlg"/> + <File Name="ConfigPage.h"/> + <File Name="IconHidePage.dlg"/> + <File Name="AppBar.h"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -29,7 +37,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -62,10 +70,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -95,10 +103,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="uuid"/> @@ -107,6 +115,8 @@ <Library Value="emergeLib"/> <Library Value="emergeGraphics"/> <Library Value="emergeBaseClasses"/> + <Library Value="emergeSchemeEngine"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/emergeVWM/emergeVWM.project =================================================================== --- trunk/Source/emergeVWM/emergeVWM.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/emergeVWM/emergeVWM.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -8,6 +8,8 @@ <File Name="Applet.cpp"/> <File Name="Config.cpp"/> <File Name="main.cpp"/> + <File Name="StickyPage.cpp"/> + <File Name="ConfigPage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Applet.h"/> @@ -16,6 +18,10 @@ <File Name="Settings.h"/> <File Name="emergeVWM.rc"/> <File Name="Task.h"/> + <File Name="StickyPage.h"/> + <File Name="ConfigPage.dlg"/> + <File Name="ConfigPage.h"/> + <File Name="StickyPage.dlg"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -31,7 +37,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -64,10 +70,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -97,10 +103,10 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options=""> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="shell32"/> @@ -111,6 +117,8 @@ <Library Value="emergeGraphics"/> <Library Value="emergeAppletEngine"/> <Library Value="emergeBaseClasses"/> + <Library Value="emergeSchemeEngine"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> Modified: trunk/Source/reg2xml/reg2xml.project =================================================================== --- trunk/Source/reg2xml/reg2xml.project 2009-11-19 11:27:37 UTC (rev 2726) +++ trunk/Source/reg2xml/reg2xml.project 2009-11-19 11:28:29 UTC (rev 2727) @@ -6,12 +6,28 @@ <File Name="Importer.cpp"/> <File Name="main.cpp"/> <File Name="CoreSettings.cpp"/> + <File Name="VWMSettings.cpp"/> + <File Name="AppletSettings.cpp"/> + <File Name="CommandSettings.cpp"/> + <File Name="DesktopSettings.cpp"/> + <File Name="HotkeysSettings.cpp"/> + <File Name="LauncherSettings.cpp"/> + <File Name="TasksSettings.cpp"/> + <File Name="TraySettings.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="Importer.h"/> <File Name="resource.h"/> <File Name="reg2xml.rc"/> <File Name="CoreSettings.h"/> + <File Name="VWMSettings.h"/> + <File Name="AppletSettings.h"/> + <File Name="CommandSettings.h"/> + <File Name="DesktopSettings.h"/> + <File Name="HotkeysSettings.h"/> + <File Name="LauncherSettings.h"/> + <File Name="TasksSettings.h"/> + <File Name="TraySettings.h"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> @@ -23,7 +39,7 @@ </Dependencies> <Settings Type="Executable"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-g" Required="yes"> + <Compiler Options="-g" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> <Linker Options="" Required="yes"/> @@ -56,10 +72,10 @@ </AdditionalRules> </Configuration> <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="" Required="yes"> + <Compiler Options="-O2" Required="yes" PreCompiledHeader=""> <IncludePath Value="."/> </Compiler> - <Linker Options="-O2" Required="yes"/> + <Linker Options="-s" Required="yes"/> <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).exe" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> @@ -89,15 +105,17 @@ </AdditionalRules> </Configuration> <GlobalSettings> - <Compiler Options=""> + <Compiler Options="-pedantic;-W;-Wall;-Werror;-Wextra;-fno-inline;-D_GLIBCXX_DLL"> <IncludePath Value="."/> </Compiler> - <Linker Options="-mwindows"> + <Linker Options="-shared-libgcc;-Wl,--subsystem,windows"> <LibraryPath Value="."/> <LibraryPath Value="../bin"/> <Library Value="comctl32"/> + <Library Value="shlwapi"/> <Library Value="emergeLib"/> <Library Value="emergeBaseClasses"/> + <Library Value="stdc++_s"/> </Linker> <ResourceCompiler Options=""/> </GlobalSettings> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-19 11:27:44
|
Revision: 2726 http://emerge.svn.sourceforge.net/emerge/?rev=2726&view=rev Author: ir0nh34d Date: 2009-11-19 11:27:37 +0000 (Thu, 19 Nov 2009) Log Message: ----------- Ignore .session files Modified Paths: -------------- trunk/Source/.svnignore Property Changed: ---------------- trunk/Source/ trunk/Source/WindowTitleTest/ trunk/Source/emerge/ trunk/Source/emergeAppletEngine/ trunk/Source/emergeBaseClasses/ trunk/Source/emergeCommand/ trunk/Source/emergeCommand/icons/ trunk/Source/emergeCore/ trunk/Source/emergeCore/icons/ trunk/Source/emergeDesktop/ trunk/Source/emergeDesktop/icons/ trunk/Source/emergeGraphics/ trunk/Source/emergeGraphics/icons/ trunk/Source/emergeHelloWorld/ trunk/Source/emergeHelloWorld/icons/ trunk/Source/emergeHotkeys/ trunk/Source/emergeHotkeys/icons/ trunk/Source/emergeLauncher/ trunk/Source/emergeLauncher/icons/ trunk/Source/emergeLib/ trunk/Source/emergeLib/images/ trunk/Source/emergeMediaCtrl/ trunk/Source/emergeMediaCtrl/icons/ trunk/Source/emergePower/ trunk/Source/emergePower/icons/ trunk/Source/emergeSchemeEngine/ trunk/Source/emergeSysMon/ trunk/Source/emergeSysMon/icons/ trunk/Source/emergeTasks/ trunk/Source/emergeTasks/icons/ trunk/Source/emergeTray/ trunk/Source/emergeTray/icons/ trunk/Source/emergeVWM/ trunk/Source/emergeVWM/icons/ trunk/Source/files/ trunk/Source/reg2xml/ trunk/Source/schemes/ trunk/Source/scripts/ trunk/Source/tinyxml/ trunk/Source/tinyxml/docs/ Property changes on: trunk/Source ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Modified: trunk/Source/.svnignore =================================================================== --- trunk/Source/.svnignore 2009-11-18 17:40:20 UTC (rev 2725) +++ trunk/Source/.svnignore 2009-11-19 11:27:37 UTC (rev 2726) @@ -18,3 +18,4 @@ .deps .deps64 *.save +*.session Property changes on: trunk/Source/WindowTitleTest ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emerge ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeAppletEngine ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeBaseClasses ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeCommand ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeCommand/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeCore ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeCore/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeDesktop ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeDesktop/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeGraphics ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeGraphics/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeHelloWorld ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeHelloWorld/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeHotkeys ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeHotkeys/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeLauncher ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeLauncher/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeLib ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeLib/images ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeMediaCtrl ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeMediaCtrl/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergePower ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergePower/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeSchemeEngine ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeSysMon ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeSysMon/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeTasks ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeTasks/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeTray ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeTray/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeVWM ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/emergeVWM/icons ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/files ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/reg2xml ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/schemes ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/scripts ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/tinyxml ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session Property changes on: trunk/Source/tinyxml/docs ___________________________________________________________________ Modified: svn:ignore - *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save *.session This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-18 17:40:26
|
Revision: 2725 http://emerge.svn.sourceforge.net/emerge/?rev=2725&view=rev Author: ir0nh34d Date: 2009-11-18 17:40:20 +0000 (Wed, 18 Nov 2009) Log Message: ----------- Add BImage.cpp and BImage.h to project file Modified Paths: -------------- trunk/Source/emergeGraphics/emergeGraphics.project Modified: trunk/Source/emergeGraphics/emergeGraphics.project =================================================================== --- trunk/Source/emergeGraphics/emergeGraphics.project 2009-11-18 14:54:18 UTC (rev 2724) +++ trunk/Source/emergeGraphics/emergeGraphics.project 2009-11-18 17:40:20 UTC (rev 2725) @@ -4,6 +4,7 @@ <Dependencies/> <VirtualDirectory Name="src"> <File Name="main.cpp"/> + <File Name="BImage.cpp"/> </VirtualDirectory> <VirtualDirectory Name="include"> <File Name="emergeGraphics.rc"/> @@ -11,13 +12,11 @@ <File Name="emergeGraphics.h"/> <File Name="..\version.h"/> <File Name="..\svnversion.h"/> + <File Name="BImage.h"/> </VirtualDirectory> <Dependencies Name="Debug"> <Project Name="emergeLib"/> </Dependencies> - <Dependencies Name="Release"> - <Project Name="emergeLib"/> - </Dependencies> <Settings Type="Dynamic Library"> <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Dynamic Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> <Compiler Options="-g" Required="yes"> @@ -27,22 +26,22 @@ <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Debug" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> - <PostConnectCommands></PostConnectCommands> - <StartupCommands></StartupCommands> + <PostConnectCommands/> + <StartupCommands/> </Debugger> <PreBuild/> <PostBuild/> <CustomBuild Enabled="no"> - <CleanCommand></CleanCommand> - <BuildCommand></BuildCommand> - <PreprocessFileCommand></PreprocessFileCommand> - <SingleFileCommand></SingleFileCommand> - <MakefileGenerationCommand></MakefileGenerationCommand> + <CleanCommand/> + <BuildCommand/> + <PreprocessFileCommand/> + <SingleFileCommand/> + <MakefileGenerationCommand/> <ThirdPartyToolName>None</ThirdPartyToolName> - <WorkingDirectory></WorkingDirectory> + <WorkingDirectory/> </CustomBuild> <AdditionalRules> - <CustomPostBuild></CustomPostBuild> + <CustomPostBuild/> <CustomPreBuild>../svnversion.h ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & @@ -60,22 +59,22 @@ <ResourceCompiler Options="" Required="yes"/> <General OutputFile="../bin/$(ProjectName).dll" IntermediateDirectory="./Release" Command="" CommandArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/> <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath=""> - <PostConnectCommands></PostConnectCommands> - <StartupCommands></StartupCommands> + <PostConnectCommands/> + <StartupCommands/> </Debugger> <PreBuild/> <PostBuild/> <CustomBuild Enabled="no"> - <CleanCommand></CleanCommand> - <BuildCommand></BuildCommand> - <PreprocessFileCommand></PreprocessFileCommand> - <SingleFileCommand></SingleFileCommand> - <MakefileGenerationCommand></MakefileGenerationCommand> + <CleanCommand/> + <BuildCommand/> + <PreprocessFileCommand/> + <SingleFileCommand/> + <MakefileGenerationCommand/> <ThirdPartyToolName>None</ThirdPartyToolName> - <WorkingDirectory></WorkingDirectory> + <WorkingDirectory/> </CustomBuild> <AdditionalRules> - <CustomPostBuild></CustomPostBuild> + <CustomPostBuild/> <CustomPreBuild>../svnversion.h ../svnversion.h: svn info --revision HEAD | findstr Revision > svnversion.tmp & @@ -101,4 +100,7 @@ <ResourceCompiler Options=""/> </GlobalSettings> </Settings> + <Dependencies Name="Release"> + <Project Name="emergeLib"/> + </Dependencies> </CodeLite_Project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-18 14:54:35
|
Revision: 2724 http://emerge.svn.sourceforge.net/emerge/?rev=2724&view=rev Author: ir0nh34d Date: 2009-11-18 14:54:18 +0000 (Wed, 18 Nov 2009) Log Message: ----------- Fix invalid secondary task icons being captured and implement a fix for stray DDE calls being generated Modified Paths: -------------- trunk/Source/emergeDesktop/MenuBuilder.cpp trunk/Source/emergeLib/main.cpp Modified: trunk/Source/emergeDesktop/MenuBuilder.cpp =================================================================== --- trunk/Source/emergeDesktop/MenuBuilder.cpp 2009-11-17 17:42:55 UTC (rev 2723) +++ trunk/Source/emergeDesktop/MenuBuilder.cpp 2009-11-18 14:54:18 UTC (rev 2724) @@ -418,30 +418,30 @@ SendMessage(menuWnd, WM_CANCELMODE, 0, 0); break; case 102: - { - HWND task = (HWND)_wtoi(value); - res = EAEDisplayMenu(menuWnd, task); - switch (res) { - case SC_CLOSE: - DeleteMenu(iter->first, index, MF_BYPOSITION); - break; - case SC_SIZE: - case SC_MOVE: - case SC_MAXIMIZE: - case SC_RESTORE: - ELForceForeground(task); - SendMessage(menuWnd, WM_CANCELMODE, 0, 0); - break; + HWND task = (HWND)_wtoi(value); + res = EAEDisplayMenu(menuWnd, task); + switch (res) + { + case SC_CLOSE: + DeleteMenu(iter->first, index, MF_BYPOSITION); + break; + case SC_SIZE: + case SC_MOVE: + case SC_MAXIMIZE: + case SC_RESTORE: + ELForceForeground(task); + SendMessage(menuWnd, WM_CANCELMODE, 0, 0); + break; + } + if (res) + PostMessage(task, WM_SYSCOMMAND, (WPARAM)res, MAKELPARAM(pt.x, pt.y)); } - if (res) - PostMessage(task, WM_SYSCOMMAND, (WPARAM)res, MAKELPARAM(pt.x, pt.y)); + break; + /* case 103: + ExecuteSettingsMenuItem(itemID); + break;*/ } - break; - /* case 103: - ExecuteSettingsMenuItem(itemID); - break;*/ - } return 1; } @@ -621,21 +621,21 @@ switch (cwps.message) { case WM_CREATE: - { - WCHAR szClass[128]; - GetClassName(cwps.hwnd, szClass, 127); - if (_wcsicmp(szClass, TEXT("#32768"))==0) { - SetWindowLongPtr(cwps.hwnd, - GWL_EXSTYLE, - GetWindowLongPtr(cwps.hwnd, GWL_EXSTYLE) | WS_EX_LAYERED); - SetLayeredWindowAttributes(cwps.hwnd, - 0, - (BYTE)((255 * globalMenuAlpha) / 100), LWA_ALPHA); + WCHAR szClass[128]; + GetClassName(cwps.hwnd, szClass, 127); + if (_wcsicmp(szClass, TEXT("#32768"))==0) + { + SetWindowLongPtr(cwps.hwnd, + GWL_EXSTYLE, + GetWindowLongPtr(cwps.hwnd, GWL_EXSTYLE) | WS_EX_LAYERED); + SetLayeredWindowAttributes(cwps.hwnd, + 0, + (BYTE)((255 * globalMenuAlpha) / 100), LWA_ALPHA); + } } + break; } - break; - } } return CallNextHookEx((HHOOK)WH_CALLWNDPROC, nCode, wParam, lParam); @@ -1246,9 +1246,9 @@ MenuItem *menuItem; wcscpy(extension, PathFindExtension(tmp)); bool isShortcut = (_wcsicmp(extension, TEXT(".lnk")) == 0) || - (_wcsicmp(extension, TEXT(".pif")) == 0) || - (_wcsicmp(extension, TEXT(".scf")) == 0) || - (_wcsicmp(extension, TEXT(".url")) == 0); + (_wcsicmp(extension, TEXT(".pif")) == 0) || + (_wcsicmp(extension, TEXT(".scf")) == 0) || + (_wcsicmp(extension, TEXT(".url")) == 0); wcscpy(entry, tmp); wcscpy(tmp, findData.cFileName); @@ -1367,14 +1367,8 @@ BOOL CALLBACK MenuBuilder::BuildTasksMenu(HWND hwnd, LPARAM lParam) { MenuBuilder *pMenuBuilder = reinterpret_cast<MenuBuilder*>(lParam); - WCHAR windowTitle[MAX_LINE_LENGTH]; - GetWindowText(hwnd, windowTitle, MAX_LINE_LENGTH); - - // If the window is hidden, a toolwindow or has no title, ignore it - if ((wcslen(windowTitle) != 0) && - (IsWindowVisible(hwnd)) && - !(GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW)) + if (ELCheckWindow(hwnd)) pMenuBuilder->AddTaskItem(hwnd); return true; Modified: trunk/Source/emergeLib/main.cpp =================================================================== --- trunk/Source/emergeLib/main.cpp 2009-11-17 17:42:55 UTC (rev 2723) +++ trunk/Source/emergeLib/main.cpp 2009-11-18 14:54:18 UTC (rev 2724) @@ -1421,6 +1421,10 @@ } } + // If the program doesn't exist return false so as to not generate stray DDE calls + if (!PathFileExists(program)) + return false; + if (!ELFileTypeCommand(program, arguments, command)) swprintf(command, TEXT("\"%s\" %s"), program, arguments); @@ -2694,6 +2698,7 @@ { // If the window is hidden, a toolwindow or has no title, ignore it if ((IsWindowVisible(hwnd)) && + !(GetWindowLongPtr(hwnd, GWL_STYLE) & WS_POPUP) && !(GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW)) return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-17 17:43:08
|
Revision: 2723 http://emerge.svn.sourceforge.net/emerge/?rev=2723&view=rev Author: ir0nh34d Date: 2009-11-17 17:42:55 +0000 (Tue, 17 Nov 2009) Log Message: ----------- DDE fix Modified Paths: -------------- trunk/Source/emergeCore/DDEWorker.cpp trunk/Source/emergeLib/main.cpp Modified: trunk/Source/emergeCore/DDEWorker.cpp =================================================================== --- trunk/Source/emergeCore/DDEWorker.cpp 2009-11-17 11:40:09 UTC (rev 2722) +++ trunk/Source/emergeCore/DDEWorker.cpp 2009-11-17 17:42:55 UTC (rev 2723) @@ -105,9 +105,8 @@ else swprintf(szParam, TEXT("explorer.exe /idlist,%s"), pszParamList[1]); bReturn = (ELExecute(szParam) == true); - // TODO (ironhead#1#): Is this still necessary? // Will return too soon if we don't sleep here... funky - //Sleep(100); + Sleep(500); } break; Modified: trunk/Source/emergeLib/main.cpp =================================================================== --- trunk/Source/emergeLib/main.cpp 2009-11-17 11:40:09 UTC (rev 2722) +++ trunk/Source/emergeLib/main.cpp 2009-11-17 17:42:55 UTC (rev 2723) @@ -1411,19 +1411,26 @@ nShow = shortcutInfo.ShowCmd; } else - wcscpy(directory, workingDir); - - if (!ELFileTypeCommand(program, arguments, command)) { - swprintf(command, TEXT("\"%s\" %s"), program, arguments); - if (wcslen(directory) > 0) + if (wcslen(workingDir) > 0) + wcscpy(directory, workingDir); + else { - workingString = directory; - workingString = ELExpandVars(workingString); - commandDir = (WCHAR*)workingString.c_str(); + wcscpy(directory, program); + PathRemoveFileSpec(directory); } } + if (!ELFileTypeCommand(program, arguments, command)) + swprintf(command, TEXT("\"%s\" %s"), program, arguments); + + if (wcslen(directory) > 0) + { + workingString = directory; + workingString = ELExpandVars(workingString); + commandDir = (WCHAR*)workingString.c_str(); + } + if (wcslen(command) == 0) return false; @@ -1452,7 +1459,7 @@ sei.fMask = SEE_MASK_FLAG_NO_UI|SEE_MASK_ASYNCOK|SEE_MASK_UNICODE; sei.lpFile = program; sei.lpParameters = arguments; - sei.lpDirectory = workingString.c_str(); + sei.lpDirectory = commandDir; sei.nShow = nShow; return (ShellExecuteEx(&sei) == TRUE); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-17 11:40:15
|
Revision: 2722 http://emerge.svn.sourceforge.net/emerge/?rev=2722&view=rev Author: ir0nh34d Date: 2009-11-17 11:40:09 +0000 (Tue, 17 Nov 2009) Log Message: ----------- x64 fixes Modified Paths: -------------- trunk/Source/emergeSysMon/ConfigPage.cpp trunk/Source/emergeSysMon/PositionPage.cpp Modified: trunk/Source/emergeSysMon/ConfigPage.cpp =================================================================== --- trunk/Source/emergeSysMon/ConfigPage.cpp 2009-11-17 11:16:32 UTC (rev 2721) +++ trunk/Source/emergeSysMon/ConfigPage.cpp 2009-11-17 11:40:09 UTC (rev 2722) @@ -24,7 +24,7 @@ #include "ConfigPage.h" #include "Applet.h" -BOOL CALLBACK ConfigPage::ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK ConfigPage::ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { static ConfigPage *pConfigPage = NULL; PROPSHEETPAGE *psp; Modified: trunk/Source/emergeSysMon/PositionPage.cpp =================================================================== --- trunk/Source/emergeSysMon/PositionPage.cpp 2009-11-17 11:16:32 UTC (rev 2721) +++ trunk/Source/emergeSysMon/PositionPage.cpp 2009-11-17 11:40:09 UTC (rev 2722) @@ -24,7 +24,7 @@ #include "PositionPage.h" #include "Applet.h" -BOOL CALLBACK PositionPage::PositionPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK PositionPage::PositionPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { static PositionPage *pPositionPage = NULL; PROPSHEETPAGE *psp; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-17 11:16:39
|
Revision: 2721 http://emerge.svn.sourceforge.net/emerge/?rev=2721&view=rev Author: ir0nh34d Date: 2009-11-17 11:16:32 +0000 (Tue, 17 Nov 2009) Log Message: ----------- Update dialogue item positioning Modified Paths: -------------- trunk/Source/emergeSysMon/ConfigPage.cpp trunk/Source/emergeSysMon/ConfigPage.dlg trunk/Source/emergeSysMon/ConfigPage.h trunk/Source/emergeSysMon/DisplayPage.cpp trunk/Source/emergeSysMon/DisplayPage.dlg trunk/Source/emergeSysMon/DisplayPage.h trunk/Source/emergeSysMon/PositionPage.cpp trunk/Source/emergeSysMon/PositionPage.dlg trunk/Source/emergeSysMon/PositionPage.h trunk/Source/emergeSysMon/resource.h Modified: trunk/Source/emergeSysMon/ConfigPage.cpp =================================================================== --- trunk/Source/emergeSysMon/ConfigPage.cpp 2009-11-17 11:15:44 UTC (rev 2720) +++ trunk/Source/emergeSysMon/ConfigPage.cpp 2009-11-17 11:16:32 UTC (rev 2721) @@ -24,8 +24,6 @@ #include "ConfigPage.h" #include "Applet.h" -static COLORREF custColours[16]; - BOOL CALLBACK ConfigPage::ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { static ConfigPage *pConfigPage = NULL; @@ -42,6 +40,11 @@ case WM_COMMAND: return pConfigPage->DoCommand(hwndDlg, wParam, lParam); + + case WM_NOTIFY: + if (!pConfigPage) + break; + return pConfigPage->DoNotify(hwndDlg, lParam); } return FALSE; @@ -50,41 +53,16 @@ ConfigPage::ConfigPage(std::tr1::shared_ptr<Settings> pSettings) { this->pSettings = pSettings; - colourRect.left = colourRect.top = 0; - colourRect.right = colourRect.bottom = 16; - hbmCPUColourFrom = NULL; - hbmCPUColourTo = NULL; - hbmMemColourFrom = NULL; - hbmMemColourTo = NULL; } ConfigPage::~ConfigPage() { - if (buttonFont) - DeleteObject(buttonFont); - if (hbmCPUColourFrom) - DeleteObject(hbmCPUColourFrom); - if (hbmCPUColourTo) - DeleteObject(hbmCPUColourTo); - if (hbmMemColourFrom) - DeleteObject(hbmMemColourFrom); - if (hbmMemColourTo) - DeleteObject(hbmMemColourTo); } BOOL ConfigPage::DoInitDialog(HWND hwndDlg) { - RECT rect; - int x, y; HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); - GetWindowRect(hwndDlg, &rect); - - x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right - rect.left) / 2); - y = (GetSystemMetrics(SM_CYSCREEN) / 2) - ((rect.bottom - rect.top) / 2); - SetWindowPos(hwndDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE); - ELStealFocus(hwndDlg); - if (pSettings->GetSnapMove()) SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_SETCHECK, BST_CHECKED, 0); @@ -97,9 +75,6 @@ if (pSettings->GetClickThrough() != 0) SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_SETCHECK, BST_CHECKED, 0); - if (pSettings->GetDynamicPositioning()) - SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_SETCHECK, BST_CHECKED, 0); - if (pSettings->GetMonitorCPU()) SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_SETCHECK, BST_CHECKED, 0); @@ -112,52 +87,6 @@ if (pSettings->GetMonitorPagefile()) SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetDirectionOrientation(), TEXT("vertical")) == 0) - SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_SETCHECK, BST_CHECKED, 0); - else - SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetHistoryMode()) - SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("left")) == 0) - SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("down")) == 0) - SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("right")) == 0) - SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("up")) == 0) - SendDlgItemMessage(hwndDlg, IDC_UP, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetShowNumbers()) - SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("left")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTLEFT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("down")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTDOWN, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("right")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTRIGHT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("up")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetZPosition(), TEXT("top")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TOP, BM_SETCHECK, BST_CHECKED, 0); - else if (_wcsicmp(pSettings->GetZPosition(), TEXT("bottom")) == 0) - SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_SETCHECK, BST_CHECKED, 0); - else - SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_SETCHECK, BST_CHECKED, 0); - - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("16x16")); - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("32x32")); - - if (pSettings->GetIconSize() == 32) - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)1, 0); - else - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)0, 0); - - SetDlgItemInt(hwndDlg, IDC_ICONSPACING, pSettings->GetIconSpacing(), false); - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Full")); SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Background")); @@ -169,106 +98,32 @@ else SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)1, 0); - CopyMemory(&newFont, pSettings->GetFont(), sizeof(LOGFONT)); - if (buttonFont) - DeleteObject(buttonFont); - buttonFont = CreateFontIndirect(&newFont); - SendDlgItemMessage(hwndDlg, IDC_FONTBUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); - SetDlgItemText(hwndDlg, IDC_FONTBUTTON, newFont.lfFaceName); + return TRUE; +} - // colors - CPUColourFrom = pSettings->GetCPUGradientFrom(); - CPUColourTo = pSettings->GetCPUGradientTo(); - MemColourFrom = pSettings->GetMemGradientFrom(); - MemColourTo = pSettings->GetMemGradientTo(); +INT_PTR ConfigPage::DoNotify(HWND hwndDlg, LPARAM lParam) +{ + NMHDR *phdr = (NMHDR*)lParam; - if (SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_GETCOUNT, 0, 0) == 0) + switch (phdr->code) { - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); - } + case PSN_APPLY: + if (UpdateSettings(hwndDlg)) + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_NOERROR); + else + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID); + return 1; - std::wstring lower = pSettings->GetCPUGradientMethod(); - std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); - if (lower.find(TEXT("vertical")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)1, 0); - else if (lower.find(TEXT("horizontal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)2, 0); - else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)3, 0); - else if (lower.find(TEXT("diagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)4, 0); - else if (lower.find(TEXT("pipecross")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)5, 0); - else if (lower.find(TEXT("elliptic")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)6, 0); - else if (lower.find(TEXT("rectangle")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)7, 0); - else if (lower.find(TEXT("pyramid")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)8, 0); - else - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)0, 0); + case PSN_SETACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, 0); + return 1; - hbmCPUColourFrom = EGCreateBitmap(0xff, CPUColourFrom, colourRect); - if (hbmCPUColourFrom) - SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourFrom); - - hbmCPUColourTo = EGCreateBitmap(0xff, CPUColourTo, colourRect); - if (hbmCPUColourTo) - SendDlgItemMessage(hwndDlg, IDC_TOCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourTo); - - if (SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_GETCOUNT, 0, 0) == 0) - { - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); + case PSN_KILLACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, FALSE); + return 1; } - lower = pSettings->GetMemGradientMethod(); - std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); - if (lower.find(TEXT("vertical")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)1, 0); - else if (lower.find(TEXT("horizontal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)2, 0); - else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)3, 0); - else if (lower.find(TEXT("diagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)4, 0); - else if (lower.find(TEXT("pipecross")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)5, 0); - else if (lower.find(TEXT("elliptic")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)6, 0); - else if (lower.find(TEXT("rectangle")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)7, 0); - else if (lower.find(TEXT("pyramid")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)8, 0); - else - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)0, 0); - - hbmMemColourFrom = EGCreateBitmap(0xff, MemColourFrom, colourRect); - if (hbmMemColourFrom) - SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourFrom); - - hbmMemColourTo = EGCreateBitmap(0xff, MemColourTo, colourRect); - if (hbmMemColourTo) - SendDlgItemMessage(hwndDlg, IDC_TOCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourTo); - - UpdateEnabledStates(hwndDlg); - - return TRUE; + return 0; } BOOL ConfigPage::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) @@ -277,117 +132,21 @@ switch (LOWORD(wParam)) { - case IDOK: - if (!UpdateSettings(hwndDlg)) - break; - case IDCANCEL: - EndDialog(hwndDlg, wParam); - return TRUE; - case IDC_FONTBUTTON: - if (DoFontChooser(hwndDlg)) - { - if (buttonFont) - DeleteObject(buttonFont); - buttonFont = CreateFontIndirect(&newFont); - SendDlgItemMessage(hwndDlg, IDC_FONTBUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); - SetDlgItemText(hwndDlg, IDC_FONTBUTTON, newFont.lfFaceName); - - return TRUE; - } - - return FALSE; - case IDC_HISTORYMODE: - case IDC_SHOWNUMBERS: - UpdateEnabledStates(hwndDlg); - return TRUE; case IDC_CLICKTHROUGH: if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) EnableWindow(clickThroughWnd, true); else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) EnableWindow(clickThroughWnd, false); return TRUE; - case IDC_FROMCOLOURCPU: - if (DoColourChooser(&CPUColourFrom, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmCPUColourFrom, CPUColourFrom, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_TOCOLOURCPU: - if (DoColourChooser(&CPUColourTo, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmCPUColourTo, CPUColourTo, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_FROMCOLOURMEM: - if (DoColourChooser(&MemColourFrom, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmMemColourFrom, MemColourFrom, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_TOCOLOURMEM: - if (DoColourChooser(&MemColourTo, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmMemColourTo, MemColourTo, LOWORD(wParam)); - return TRUE; - } - return FALSE; } return FALSE; } -void ConfigPage::UpdateColorButton(HWND hwndDlg, HBITMAP bitmap, COLORREF colour, int controlId) -{ - if (bitmap) - DeleteObject(bitmap); - bitmap = EGCreateBitmap(0xff, colour, colourRect); - if (bitmap) - DeleteObject((HBITMAP)SendDlgItemMessage(hwndDlg, controlId, BM_SETIMAGE, - IMAGE_BITMAP, (LPARAM)bitmap)); -} - -bool ConfigPage::DoFontChooser(HWND hwndDlg) -{ - CHOOSEFONT chooseFont; - - ZeroMemory(&chooseFont, sizeof(CHOOSEFONT)); - chooseFont.lStructSize = sizeof(CHOOSEFONT); - chooseFont.hwndOwner = hwndDlg; - chooseFont.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_NOSCRIPTSEL; - chooseFont.lpLogFont = &newFont; - - return (ChooseFont(&chooseFont) == TRUE); -} - -BOOL ConfigPage::DoColourChooser(COLORREF *colour, HWND hwndDlg) -{ - CHOOSECOLOR chooseColour; - COLORREF tmpColour = *colour; - BOOL res; - - ZeroMemory(&chooseColour, sizeof(CHOOSECOLOR)); - chooseColour.lStructSize = sizeof(CHOOSECOLOR); - chooseColour.hwndOwner = hwndDlg; - chooseColour.rgbResult = tmpColour; - chooseColour.lpCustColors = (LPDWORD)custColours; - chooseColour.Flags = CC_RGBINIT | CC_FULLOPEN; - - res = ChooseColor(&chooseColour); - - if (res) - *colour = chooseColour.rgbResult; - - return res; -} - bool ConfigPage::UpdateSettings(HWND hwndDlg) { BOOL success; int result, index; - const WCHAR *tmpValue = NULL; if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_CHECKED) success = true; @@ -395,12 +154,6 @@ success = false; pSettings->SetSnapMove(success); - if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetDynamicPositioning(success); - if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_CHECKED) success = true; else if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) @@ -449,74 +202,9 @@ return false; } - if (SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Vertical"); - if (SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Horizontal"); - pSettings->SetDirectionOrientation((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_UP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("up"); - if (SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("right"); - if (SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("down"); - if (SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("left"); - pSettings->SetBarDirection((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_TOP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Top"); - if (SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Bottom"); - if (SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Normal"); - pSettings->SetZPosition((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetShowNumbers(success); - - if (SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("up"); - if (SendDlgItemMessage(hwndDlg, IDC_TEXTRIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("right"); - if (SendDlgItemMessage(hwndDlg, IDC_TEXTDOWN, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("down"); - if (SendDlgItemMessage(hwndDlg, IDC_TEXTLEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("left"); - pSettings->SetNumberPosition((WCHAR*)tmpValue); - - WCHAR methodString[MAX_LINE_LENGTH]; - GetDlgItemText(hwndDlg, IDC_METHODCPU, methodString, MAX_LINE_LENGTH); - pSettings->SetCPUGradientMethod(methodString); - pSettings->SetCPUGradientFrom(CPUColourFrom); - pSettings->SetCPUGradientTo(CPUColourTo); - GetDlgItemText(hwndDlg, IDC_METHODMEM, methodString, MAX_LINE_LENGTH); - pSettings->SetMemGradientMethod(methodString); - pSettings->SetMemGradientFrom(MemColourFrom); - pSettings->SetMemGradientTo(MemColourTo); - - pSettings->SetFont(&newFont); - // commit the changes, if any pSettings->WriteSettings(); return true; } -void ConfigPage::UpdateEnabledStates(HWND hwndDlg) -{ - bool historyMode = SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_CHECKED; - EnableWindow(GetDlgItem(hwndDlg, IDC_UP), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_DOWN), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), !historyMode); - bool showNumbers = SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED; - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTUP), showNumbers); - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTDOWN), showNumbers); - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTLEFT), showNumbers); - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTRIGHT), showNumbers); -} Modified: trunk/Source/emergeSysMon/ConfigPage.dlg =================================================================== --- trunk/Source/emergeSysMon/ConfigPage.dlg 2009-11-17 11:15:44 UTC (rev 2720) +++ trunk/Source/emergeSysMon/ConfigPage.dlg 2009-11-17 11:16:32 UTC (rev 2721) @@ -18,77 +18,27 @@ // //--- -IDD_CONFIG_PAGE DIALOGEX 0, 0, 360, 305 +IDD_CONFIG_PAGE DIALOGEX 0, 0, CONFIG_WIDTH, CONFIG_HEIGHT STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION CAPTION "emergeSysMon Configuration" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "SnapMove",IDC_SNAPMOVE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,5,55,10 - CONTROL "SnapSize",IDC_SNAPSIZE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,80,5,90,10 - - CONTROL "Click Through:",IDC_CLICKTHROUGH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,20,60,10 - COMBOBOX IDC_CLICKTHROUGHMETHOD,65,18,60,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - CONTROL "Dynamic Positioning",IDC_DYNAMICPOSITIONING,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,35,75,10 - - LTEXT "Font",IDC_STATIC1,185,15,15,8 - PUSHBUTTON "",IDC_FONTBUTTON,235,5,120,30,BS_CENTER|BS_FLAT +CONTROL "SnapMove",IDC_SNAPMOVE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,5,55,10 +CONTROL "SnapSize",IDC_SNAPSIZE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,CONFIG_WIDTH-95,5,90,10 - GROUPBOX "Monitor",IDC_STATIC2,5,50,170,35,WS_GROUP - CONTROL "CPU usage",IDC_MONITORCPU,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,60,85,10 - CONTROL "Commit charge",IDC_MONITORCOMMIT,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,100,60,60,10 - CONTROL "Physical mem usage",IDC_MONITORPHY,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,70,85,10 - CONTROL "Pagefile usage",IDC_MONITORPAGE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,100,70,60,10 - - GROUPBOX "Update",IDC_STATIC3,5,85,170,25,WS_GROUP - LTEXT "Interval",IDC_STATIC4,10,95,25,8 - EDITTEXT IDC_UPDATEINTERVAL,40,93,35,12,ES_AUTOHSCROLL|ES_NUMBER - CONTROL "",IDC_UPDATEINTERVALUPDOWN,UPDOWN_CLASS,UDS_AUTOBUDDY|UDS_SETBUDDYINT|UDS_ARROWKEYS|UDS_ALIGNRIGHT|UDS_NOTHOUSANDS,0,0,10,12 +CONTROL "Click Through:",IDC_CLICKTHROUGH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,20,60,10 +COMBOBOX IDC_CLICKTHROUGHMETHOD,65,18,60,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - GROUPBOX "ZPosition",IDC_STATIC5,5,115,170,25,WS_GROUP - CONTROL "Top",IDC_TOP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,10,125,40,10 - CONTROL "Normal",IDC_NORMAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,70,125,40,10 - CONTROL "Bottom",IDC_BOTTOM,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,130,125,40,10 +LTEXT "Update Interval:",IDC_STATIC4,5,38,55,8 +EDITTEXT IDC_UPDATEINTERVAL,60,36,35,12,ES_AUTOHSCROLL|ES_NUMBER +CONTROL "",IDC_UPDATEINTERVALUPDOWN,UPDOWN_CLASS,UDS_AUTOBUDDY|UDS_SETBUDDYINT|UDS_ARROWKEYS|UDS_ALIGNRIGHT|UDS_NOTHOUSANDS,0,0,10,12 - GROUPBOX "Direction",IDC_STATIC6,5,145,170,80,WS_GROUP +GROUPBOX "Monitor",IDC_STATIC2,5,50,CONFIG_WIDTH-10,35,WS_GROUP +CONTROL "CPU usage",IDC_MONITORCPU,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,60,85,10 +CONTROL "Commit charge",IDC_MONITORCOMMIT,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,CONFIG_WIDTH-75,60,60,10 +CONTROL "Physical mem usage",IDC_MONITORPHY,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,70,85,10 +CONTROL "Pagefile usage",IDC_MONITORPAGE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,CONFIG_WIDTH-75,70,60,10 - GROUPBOX "Orientation",IDC_STATIC7,10,155,160,25,WS_GROUP - CONTROL "Vertical",IDC_VERTICAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,165,50,10 - CONTROL "Horizontal",IDC_HORIZONTAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,90,165,50,10 - - CONTROL "History mode",IDC_HISTORYMODE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,185,120,10 - - GROUPBOX "Bar direction",IDC_STATIC8,10,195,160,25,WS_GROUP - CONTROL "Left",IDC_LEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,205,40,10 - CONTROL "Down",IDC_DOWN,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,55,205,40,10 - CONTROL "Right",IDC_RIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,95,205,35,10 - CONTROL "Up",IDC_UP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,140,205,25,10 - - GROUPBOX "Numbers",IDC_STATIC9,5,230,170,50,WS_GROUP - CONTROL "Show numeric info",IDC_SHOWNUMBERS,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,240,120,10 - GROUPBOX "Number position",IDC_STATIC10,10,250,160,25,WS_GROUP - CONTROL "Left",IDC_TEXTLEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,260,40,10 - CONTROL "Under",IDC_TEXTDOWN,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,55,260,40,10 - CONTROL "Right",IDC_TEXTRIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,95,260,35,10 - CONTROL "Over",IDC_TEXTUP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,140,260,25,10 - - GROUPBOX "Processor colors", IDC_STATIC1,185,40,170,50,WS_GROUP - LTEXT "Method:",IDC_STATIC1,190,55,30,8 - COMBOBOX IDC_METHODCPU,230,53,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - LTEXT "From Color:",IDC_STATIC1,210,75,40,8 - PUSHBUTTON "",IDC_FROMCOLOURCPU,250,70,16,16,BS_BITMAP|BS_FLAT - LTEXT "To Color:",IDC_STATIC1,290,75,40,8 - PUSHBUTTON "",IDC_TOCOLOURCPU,330,70,16,16,BS_BITMAP|BS_FLAT - - GROUPBOX "Memory colors", IDC_STATIC1,185,100,170,50,WS_GROUP - LTEXT "Method:",IDC_STATIC1,190,115,30,8 - COMBOBOX IDC_METHODMEM,230,113,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - LTEXT "From Color:",IDC_STATIC1,210,135,40,8 - PUSHBUTTON "",IDC_FROMCOLOURMEM,250,130,16,16,BS_BITMAP|BS_FLAT - LTEXT "To Color:",IDC_STATIC1,290,135,40,8 - PUSHBUTTON "",IDC_TOCOLOURMEM,330,130,16,16,BS_BITMAP|BS_FLAT - - PUSHBUTTON "&OK",IDOK,5,285,70,14 - PUSHBUTTON "&Cancel",IDCANCEL,285,285,70,14 END Modified: trunk/Source/emergeSysMon/ConfigPage.h =================================================================== --- trunk/Source/emergeSysMon/ConfigPage.h 2009-11-17 11:15:44 UTC (rev 2720) +++ trunk/Source/emergeSysMon/ConfigPage.h 2009-11-17 11:16:32 UTC (rev 2721) @@ -32,25 +32,11 @@ BOOL DoInitDialog(HWND hwndDlg); BOOL DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam); bool UpdateSettings(HWND hwndDlg); - bool DoFontChooser(HWND hwndDlg); - BOOL DoColourChooser(COLORREF *colour, HWND hwndDlg); - void UpdateEnabledStates(HWND hwndDlg); + INT_PTR DoNotify(HWND hwndDlg, LPARAM lParam); static INT_PTR CALLBACK ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam); private: - LOGFONT newFont; - HFONT buttonFont; std::tr1::shared_ptr<Settings> pSettings; - RECT colourRect; - COLORREF CPUColourFrom; - COLORREF CPUColourTo; - COLORREF MemColourFrom; - COLORREF MemColourTo; - HBITMAP hbmCPUColourFrom; - HBITMAP hbmCPUColourTo; - HBITMAP hbmMemColourFrom; - HBITMAP hbmMemColourTo; - void UpdateColorButton(HWND hwndDlg, HBITMAP bitmap, COLORREF colour, int controlId); }; #endif Modified: trunk/Source/emergeSysMon/DisplayPage.cpp =================================================================== --- trunk/Source/emergeSysMon/DisplayPage.cpp 2009-11-17 11:15:44 UTC (rev 2720) +++ trunk/Source/emergeSysMon/DisplayPage.cpp 2009-11-17 11:16:32 UTC (rev 2721) @@ -42,6 +42,11 @@ case WM_COMMAND: return pDisplayPage->DoCommand(hwndDlg, wParam, lParam); + + case WM_NOTIFY: + if (!pDisplayPage) + break; + return pDisplayPage->DoNotify(hwndDlg, lParam); } return FALSE; @@ -74,61 +79,6 @@ BOOL DisplayPage::DoInitDialog(HWND hwndDlg) { - RECT rect; - int x, y; - HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); - - GetWindowRect(hwndDlg, &rect); - - x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right - rect.left) / 2); - y = (GetSystemMetrics(SM_CYSCREEN) / 2) - ((rect.bottom - rect.top) / 2); - SetWindowPos(hwndDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE); - ELStealFocus(hwndDlg); - - if (pSettings->GetSnapMove()) - SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetSnapSize()) - SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_SETCHECK, BST_CHECKED, 0); - - SetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, pSettings->GetUpdateInterval(), false); - SendDlgItemMessage(hwndDlg, IDC_UPDATEINTERVALUPDOWN, UDM_SETRANGE, (WPARAM)MINIMUM_UPDATE_INTERVAL, (LPARAM)60000); - - if (pSettings->GetClickThrough() != 0) - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetDynamicPositioning()) - SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorCPU()) - SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorCommitCharge()) - SendDlgItemMessage(hwndDlg, IDC_MONITORCOMMIT, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorPhysicalMem()) - SendDlgItemMessage(hwndDlg, IDC_MONITORPHY, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorPagefile()) - SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetDirectionOrientation(), TEXT("vertical")) == 0) - SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_SETCHECK, BST_CHECKED, 0); - else - SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetHistoryMode()) - SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("left")) == 0) - SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("down")) == 0) - SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("right")) == 0) - SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("up")) == 0) - SendDlgItemMessage(hwndDlg, IDC_UP, BM_SETCHECK, BST_CHECKED, 0); - if (pSettings->GetShowNumbers()) SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_SETCHECK, BST_CHECKED, 0); @@ -141,34 +91,6 @@ if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("up")) == 0) SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetZPosition(), TEXT("top")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TOP, BM_SETCHECK, BST_CHECKED, 0); - else if (_wcsicmp(pSettings->GetZPosition(), TEXT("bottom")) == 0) - SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_SETCHECK, BST_CHECKED, 0); - else - SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_SETCHECK, BST_CHECKED, 0); - - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("16x16")); - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("32x32")); - - if (pSettings->GetIconSize() == 32) - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)1, 0); - else - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)0, 0); - - SetDlgItemInt(hwndDlg, IDC_ICONSPACING, pSettings->GetIconSpacing(), false); - - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Full")); - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Background")); - - if (pSettings->GetClickThrough() == 0) - EnableWindow(clickThroughWnd, false); - - if (pSettings->GetClickThrough() == 1) - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)0, 0); - else - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)1, 0); - CopyMemory(&newFont, pSettings->GetFont(), sizeof(LOGFONT)); if (buttonFont) DeleteObject(buttonFont); @@ -273,16 +195,8 @@ BOOL DisplayPage::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) { - HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); - switch (LOWORD(wParam)) { - case IDOK: - if (!UpdateSettings(hwndDlg)) - break; - case IDCANCEL: - EndDialog(hwndDlg, wParam); - return TRUE; case IDC_FONTBUTTON: if (DoFontChooser(hwndDlg)) { @@ -296,16 +210,9 @@ } return FALSE; - case IDC_HISTORYMODE: case IDC_SHOWNUMBERS: UpdateEnabledStates(hwndDlg); return TRUE; - case IDC_CLICKTHROUGH: - if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) - EnableWindow(clickThroughWnd, true); - else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - EnableWindow(clickThroughWnd, false); - return TRUE; case IDC_FROMCOLOURCPU: if (DoColourChooser(&CPUColourFrom, hwndDlg)) { @@ -339,6 +246,31 @@ return FALSE; } +INT_PTR DisplayPage::DoNotify(HWND hwndDlg, LPARAM lParam) +{ + NMHDR *phdr = (NMHDR*)lParam; + + switch (phdr->code) + { + case PSN_APPLY: + if (UpdateSettings(hwndDlg)) + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_NOERROR); + else + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID); + return 1; + + case PSN_SETACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, 0); + return 1; + + case PSN_KILLACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, FALSE); + return 1; + } + + return 0; +} + void DisplayPage::UpdateColorButton(HWND hwndDlg, HBITMAP bitmap, COLORREF colour, int controlId) { if (bitmap) @@ -385,94 +317,9 @@ bool DisplayPage::UpdateSettings(HWND hwndDlg) { - BOOL success; - int result, index; + BOOL success = true; const WCHAR *tmpValue = NULL; - if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetSnapMove(success); - - if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetDynamicPositioning(success); - - if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetSnapSize(success); - - if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) - { - index = (int)SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_GETCURSEL, 0, 0); - index++; - pSettings->SetClickThrough(index); - } - else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - pSettings->SetClickThrough(0); - - - if (SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetMonitorCPU(success); - - pSettings->SetMonitorCommitCharge( - SendDlgItemMessage(hwndDlg, IDC_MONITORCOMMIT, BM_GETCHECK, 0, 0) == BST_CHECKED); - - pSettings->SetMonitorPhysicalMem( - SendDlgItemMessage(hwndDlg, IDC_MONITORPHY, BM_GETCHECK, 0, 0) == BST_CHECKED); - - pSettings->SetMonitorPagefile( - SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_GETCHECK, 0, 0) == BST_CHECKED); - - if (SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetHistoryMode(success); - - result = GetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, &success, false); - if (success) - pSettings->SetUpdateInterval(result); - else if (!success) - { - ELMessageBox(GetDesktopWindow(), (WCHAR*)TEXT("Invalid value for update interval"), - (WCHAR*)TEXT("emergeSysMon"), ELMB_OK|ELMB_ICONERROR|ELMB_MODAL); - SetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, pSettings->GetUpdateInterval(), false); - return false; - } - - if (SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Vertical"); - if (SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Horizontal"); - pSettings->SetDirectionOrientation((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_UP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("up"); - if (SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("right"); - if (SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("down"); - if (SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("left"); - pSettings->SetBarDirection((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_TOP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Top"); - if (SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Bottom"); - if (SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Normal"); - pSettings->SetZPosition((WCHAR*)tmpValue); - if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED) success = true; else if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_UNCHECKED) @@ -509,11 +356,6 @@ void DisplayPage::UpdateEnabledStates(HWND hwndDlg) { - bool historyMode = SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_CHECKED; - EnableWindow(GetDlgItem(hwndDlg, IDC_UP), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_DOWN), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), !historyMode); bool showNumbers = SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED; EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTUP), showNumbers); EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTDOWN), showNumbers); Modified: trunk/Source/emergeSysMon/DisplayPage.dlg =================================================================== --- trunk/Source/emergeSysMon/DisplayPage.dlg 2009-11-17 11:15:44 UTC (rev 2720) +++ trunk/Source/emergeSysMon/DisplayPage.dlg 2009-11-17 11:16:32 UTC (rev 2721) @@ -18,77 +18,38 @@ // //--- -IDD_DISPLAY_PAGE DIALOGEX 0, 0, 360, 305 +IDD_DISPLAY_PAGE DIALOGEX 0, 0, CONFIG_WIDTH, CONFIG_HEIGHT STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION CAPTION "emergeSysMon Configuration" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "SnapMove",IDC_SNAPMOVE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,5,55,10 - CONTROL "SnapSize",IDC_SNAPSIZE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,80,5,90,10 - - CONTROL "Click Through:",IDC_CLICKTHROUGH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,20,60,10 - COMBOBOX IDC_CLICKTHROUGHMETHOD,65,18,60,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - CONTROL "Dynamic Positioning",IDC_DYNAMICPOSITIONING,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,35,75,10 - - LTEXT "Font",IDC_STATIC1,185,15,15,8 - PUSHBUTTON "",IDC_FONTBUTTON,235,5,120,30,BS_CENTER|BS_FLAT +LTEXT "Font",IDC_STATIC1,5,15,50,8 +PUSHBUTTON "",IDC_FONTBUTTON,55,5,CONFIG_WIDTH-60,30,BS_CENTER|BS_FLAT - GROUPBOX "Monitor",IDC_STATIC2,5,50,170,35,WS_GROUP - CONTROL "CPU usage",IDC_MONITORCPU,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,60,85,10 - CONTROL "Commit charge",IDC_MONITORCOMMIT,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,100,60,60,10 - CONTROL "Physical mem usage",IDC_MONITORPHY,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,70,85,10 - CONTROL "Pagefile usage",IDC_MONITORPAGE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,100,70,60,10 - - GROUPBOX "Update",IDC_STATIC3,5,85,170,25,WS_GROUP - LTEXT "Interval",IDC_STATIC4,10,95,25,8 - EDITTEXT IDC_UPDATEINTERVAL,40,93,35,12,ES_AUTOHSCROLL|ES_NUMBER - CONTROL "",IDC_UPDATEINTERVALUPDOWN,UPDOWN_CLASS,UDS_AUTOBUDDY|UDS_SETBUDDYINT|UDS_ARROWKEYS|UDS_ALIGNRIGHT|UDS_NOTHOUSANDS,0,0,10,12 +GROUPBOX "Processor colors", IDC_STATIC1,5,40,CONFIG_WIDTH-10,30,WS_GROUP +LTEXT "Method:",IDC_STATIC1,10,52,30,8 +COMBOBOX IDC_METHODCPU,40,50,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP +LTEXT "From Color:",IDC_STATIC1,130,52,40,8 +PUSHBUTTON "",IDC_FROMCOLOURCPU,180,48,16,16,BS_BITMAP|BS_FLAT +LTEXT "To Color:",IDC_STATIC1,210,52,40,8 +PUSHBUTTON "",IDC_TOCOLOURCPU,250,48,16,16,BS_BITMAP|BS_FLAT - GROUPBOX "ZPosition",IDC_STATIC5,5,115,170,25,WS_GROUP - CONTROL "Top",IDC_TOP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,10,125,40,10 - CONTROL "Normal",IDC_NORMAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,70,125,40,10 - CONTROL "Bottom",IDC_BOTTOM,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,130,125,40,10 +GROUPBOX "Memory colors", IDC_STATIC1,5,80,CONFIG_WIDTH-10,30,WS_GROUP +LTEXT "Method:",IDC_STATIC1,10,92,30,8 +COMBOBOX IDC_METHODMEM,40,90,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP +LTEXT "From Color:",IDC_STATIC1,130,92,40,8 +PUSHBUTTON "",IDC_FROMCOLOURMEM,180,88,16,16,BS_BITMAP|BS_FLAT +LTEXT "To Color:",IDC_STATIC1,210,92,40,8 +PUSHBUTTON "",IDC_TOCOLOURMEM,250,88,16,16,BS_BITMAP|BS_FLAT - GROUPBOX "Direction",IDC_STATIC6,5,145,170,80,WS_GROUP +GROUPBOX "Numbers",IDC_STATIC9,5,120,CONFIG_WIDTH-10,50,WS_GROUP +CONTROL "Show numeric info",IDC_SHOWNUMBERS,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,130,120,10 +GROUPBOX "Number position",IDC_STATIC10,10,140,CONFIG_WIDTH-20,25,WS_GROUP +CONTROL "Left",IDC_TEXTLEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,150,40,10 +CONTROL "Under",IDC_TEXTDOWN,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15+CONFIG_WIDTH/4,150,40,10 +CONTROL "Right",IDC_TEXTRIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15+(2*(CONFIG_WIDTH/4)),150,35,10 +CONTROL "Over",IDC_TEXTUP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15+(3*(CONFIG_WIDTH/4)),150,25,10 - GROUPBOX "Orientation",IDC_STATIC7,10,155,160,25,WS_GROUP - CONTROL "Vertical",IDC_VERTICAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,165,50,10 - CONTROL "Horizontal",IDC_HORIZONTAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,90,165,50,10 - - CONTROL "History mode",IDC_HISTORYMODE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,185,120,10 - - GROUPBOX "Bar direction",IDC_STATIC8,10,195,160,25,WS_GROUP - CONTROL "Left",IDC_LEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,205,40,10 - CONTROL "Down",IDC_DOWN,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,55,205,40,10 - CONTROL "Right",IDC_RIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,95,205,35,10 - CONTROL "Up",IDC_UP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,140,205,25,10 - - GROUPBOX "Numbers",IDC_STATIC9,5,230,170,50,WS_GROUP - CONTROL "Show numeric info",IDC_SHOWNUMBERS,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,240,120,10 - GROUPBOX "Number position",IDC_STATIC10,10,250,160,25,WS_GROUP - CONTROL "Left",IDC_TEXTLEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,260,40,10 - CONTROL "Under",IDC_TEXTDOWN,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,55,260,40,10 - CONTROL "Right",IDC_TEXTRIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,95,260,35,10 - CONTROL "Over",IDC_TEXTUP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,140,260,25,10 - - GROUPBOX "Processor colors", IDC_STATIC1,185,40,170,50,WS_GROUP - LTEXT "Method:",IDC_STATIC1,190,55,30,8 - COMBOBOX IDC_METHODCPU,230,53,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - LTEXT "From Color:",IDC_STATIC1,210,75,40,8 - PUSHBUTTON "",IDC_FROMCOLOURCPU,250,70,16,16,BS_BITMAP|BS_FLAT - LTEXT "To Color:",IDC_STATIC1,290,75,40,8 - PUSHBUTTON "",IDC_TOCOLOURCPU,330,70,16,16,BS_BITMAP|BS_FLAT - - GROUPBOX "Memory colors", IDC_STATIC1,185,100,170,50,WS_GROUP - LTEXT "Method:",IDC_STATIC1,190,115,30,8 - COMBOBOX IDC_METHODMEM,230,113,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP - LTEXT "From Color:",IDC_STATIC1,210,135,40,8 - PUSHBUTTON "",IDC_FROMCOLOURMEM,250,130,16,16,BS_BITMAP|BS_FLAT - LTEXT "To Color:",IDC_STATIC1,290,135,40,8 - PUSHBUTTON "",IDC_TOCOLOURMEM,330,130,16,16,BS_BITMAP|BS_FLAT - - PUSHBUTTON "&OK",IDOK,5,285,70,14 - PUSHBUTTON "&Cancel",IDCANCEL,285,285,70,14 END Modified: trunk/Source/emergeSysMon/DisplayPage.h =================================================================== --- trunk/Source/emergeSysMon/DisplayPage.h 2009-11-17 11:15:44 UTC (rev 2720) +++ trunk/Source/emergeSysMon/DisplayPage.h 2009-11-17 11:16:32 UTC (rev 2721) @@ -35,6 +35,7 @@ bool DoFontChooser(HWND hwndDlg); BOOL DoColourChooser(COLORREF *colour, HWND hwndDlg); void UpdateEnabledStates(HWND hwndDlg); + INT_PTR DoNotify(HWND hwndDlg, LPARAM lParam); static INT_PTR CALLBACK DisplayPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam); private: Modified: trunk/Source/emergeSysMon/PositionPage.cpp =================================================================== --- trunk/Source/emergeSysMon/PositionPage.cpp 2009-11-17 11:15:44 UTC (rev 2720) +++ trunk/Source/emergeSysMon/PositionPage.cpp 2009-11-17 11:16:32 UTC (rev 2721) @@ -24,8 +24,6 @@ #include "PositionPage.h" #include "Applet.h" -static COLORREF custColours[16]; - BOOL CALLBACK PositionPage::PositionPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { static PositionPage *pPositionPage = NULL; @@ -42,6 +40,11 @@ case WM_COMMAND: return pPositionPage->DoCommand(hwndDlg, wParam, lParam); + + case WM_NOTIFY: + if (!pPositionPage) + break; + return pPositionPage->DoNotify(hwndDlg, lParam); } return FALSE; @@ -50,68 +53,33 @@ PositionPage::PositionPage(std::tr1::shared_ptr<Settings> pSettings) { this->pSettings = pSettings; - colourRect.left = colourRect.top = 0; - colourRect.right = colourRect.bottom = 16; - hbmCPUColourFrom = NULL; - hbmCPUColourTo = NULL; - hbmMemColourFrom = NULL; - hbmMemColourTo = NULL; } PositionPage::~PositionPage() { - if (buttonFont) - DeleteObject(buttonFont); - if (hbmCPUColourFrom) - DeleteObject(hbmCPUColourFrom); - if (hbmCPUColourTo) - DeleteObject(hbmCPUColourTo); - if (hbmMemColourFrom) - DeleteObject(hbmMemColourFrom); - if (hbmMemColourTo) - DeleteObject(hbmMemColourTo); } BOOL PositionPage::DoInitDialog(HWND hwndDlg) { - RECT rect; - int x, y; - HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); + int anchorIndex; - GetWindowRect(hwndDlg, &rect); - - x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right - rect.left) / 2); - y = (GetSystemMetrics(SM_CYSCREEN) / 2) - ((rect.bottom - rect.top) / 2); - SetWindowPos(hwndDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE); - ELStealFocus(hwndDlg); - - if (pSettings->GetSnapMove()) - SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetSnapSize()) - SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_SETCHECK, BST_CHECKED, 0); - - SetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, pSettings->GetUpdateInterval(), false); - SendDlgItemMessage(hwndDlg, IDC_UPDATEINTERVALUPDOWN, UDM_SETRANGE, (WPARAM)MINIMUM_UPDATE_INTERVAL, (LPARAM)60000); - - if (pSettings->GetClickThrough() != 0) - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_SETCHECK, BST_CHECKED, 0); - if (pSettings->GetDynamicPositioning()) SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_SETCHECK, BST_CHECKED, 0); - if (pSettings->GetMonitorCPU()) - SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_SETCHECK, BST_CHECKED, 0); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("TopLeft")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("TopMiddle")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("TopRight")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("CenterLeft")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("CenterMiddle")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("CenterRight")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("BottomLeft")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("BottomMiddle")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("BottomRight")); - if (pSettings->GetMonitorCommitCharge()) - SendDlgItemMessage(hwndDlg, IDC_MONITORCOMMIT, BM_SETCHECK, BST_CHECKED, 0); + anchorIndex = (int)SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_FINDSTRINGEXACT, (WPARAM)-1, + (LPARAM)pSettings->GetAnchorPoint()); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_SETCURSEL, anchorIndex, 0); - if (pSettings->GetMonitorPhysicalMem()) - SendDlgItemMessage(hwndDlg, IDC_MONITORPHY, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorPagefile()) - SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetDirectionOrientation(), TEXT("vertical")) == 0) SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_SETCHECK, BST_CHECKED, 0); else @@ -129,18 +97,6 @@ if (_wcsicmp(pSettings->GetBarDirection(), TEXT("up")) == 0) SendDlgItemMessage(hwndDlg, IDC_UP, BM_SETCHECK, BST_CHECKED, 0); - if (pSettings->GetShowNumbers()) - SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("left")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTLEFT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("down")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTDOWN, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("right")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTRIGHT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("up")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetZPosition(), TEXT("top")) == 0) SendDlgItemMessage(hwndDlg, IDC_TOP, BM_SETCHECK, BST_CHECKED, 0); else if (_wcsicmp(pSettings->GetZPosition(), TEXT("bottom")) == 0) @@ -148,124 +104,6 @@ else SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_SETCHECK, BST_CHECKED, 0); - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("16x16")); - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("32x32")); - - if (pSettings->GetIconSize() == 32) - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)1, 0); - else - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)0, 0); - - SetDlgItemInt(hwndDlg, IDC_ICONSPACING, pSettings->GetIconSpacing(), false); - - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Full")); - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Background")); - - if (pSettings->GetClickThrough() == 0) - EnableWindow(clickThroughWnd, false); - - if (pSettings->GetClickThrough() == 1) - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)0, 0); - else - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)1, 0); - - CopyMemory(&newFont, pSettings->GetFont(), sizeof(LOGFONT)); - if (buttonFont) - DeleteObject(buttonFont); - buttonFont = CreateFontIndirect(&newFont); - SendDlgItemMessage(hwndDlg, IDC_FONTBUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); - SetDlgItemText(hwndDlg, IDC_FONTBUTTON, newFont.lfFaceName); - - // colors - CPUColourFrom = pSettings->GetCPUGradientFrom(); - CPUColourTo = pSettings->GetCPUGradientTo(); - MemColourFrom = pSettings->GetMemGradientFrom(); - MemColourTo = pSettings->GetMemGradientTo(); - - if (SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_GETCOUNT, 0, 0) == 0) - { - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); - } - - std::wstring lower = pSettings->GetCPUGradientMethod(); - std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); - if (lower.find(TEXT("vertical")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)1, 0); - else if (lower.find(TEXT("horizontal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)2, 0); - else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)3, 0); - else if (lower.find(TEXT("diagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)4, 0); - else if (lower.find(TEXT("pipecross")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)5, 0); - else if (lower.find(TEXT("elliptic")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)6, 0); - else if (lower.find(TEXT("rectangle")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)7, 0); - else if (lower.find(TEXT("pyramid")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)8, 0); - else - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)0, 0); - - hbmCPUColourFrom = EGCreateBitmap(0xff, CPUColourFrom, colourRect); - if (hbmCPUColourFrom) - SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourFrom); - - hbmCPUColourTo = EGCreateBitmap(0xff, CPUColourTo, colourRect); - if (hbmCPUColourTo) - SendDlgItemMessage(hwndDlg, IDC_TOCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourTo); - - if (SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_GETCOUNT, 0, 0) == 0) - { - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); - } - - lower = pSettings->GetMemGradientMethod(); - std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); - if (lower.find(TEXT("vertical")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)1, 0); - else if (lower.find(TEXT("horizontal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)2, 0); - else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)3, 0); - else if (lower.find(TEXT("diagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)4, 0); - else if (lower.find(TEXT("pipecross")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)5, 0); - else if (lower.find(TEXT("elliptic")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)6, 0); - else if (lower.find(TEXT("rectangle")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)7, 0); - else if (lower.find(TEXT("pyramid")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)8, 0); - else - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)0, 0); - - hbmMemColourFrom = EGCreateBitmap(0xff, MemColourFrom, colourRect); - if (hbmMemColourFrom) - SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourFrom); - - hbmMemColourTo = EGCreateBitmap(0xff, MemColourTo, colourRect); - if (hbmMemColourTo) - SendDlgItemMessage(hwndDlg, IDC_TOCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourTo); - UpdateEnabledStates(hwndDlg); return TRUE; @@ -273,182 +111,48 @@ BOOL PositionPage::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) { - HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); + HWND anchorWnd = GetDlgItem(hwndDlg, IDC_ANCHOR); switch (LOWORD(wParam)) { - case IDOK: - if (!UpdateSettings(hwndDlg)) - break; - case IDCANCEL: - EndDialog(hwndDlg, wParam); - return TRUE; - case IDC_FONTBUTTON: - if (DoFontChooser(hwndDlg)) - { - if (buttonFont) - DeleteObject(buttonFont); - buttonFont = CreateFontIndirect(&newFont); - SendDlgItemMessage(hwndDlg, IDC_FONTBUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); - SetDlgItemText(hwndDlg, IDC_FONTBUTTON, newFont.lfFaceName); - - return TRUE; - } - - return FALSE; case IDC_HISTORYMODE: - case IDC_SHOWNUMBERS: UpdateEnabledStates(hwndDlg); return TRUE; - case IDC_CLICKTHROUGH: - if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) - EnableWindow(clickThroughWnd, true); - else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - EnableWindow(clickThroughWnd, false); + case IDC_DYNAMICPOSITIONING: + if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_CHECKED) + EnableWindow(anchorWnd, true); + else if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + EnableWindow(anchorWnd, false); return TRUE; - case IDC_FROMCOLOURCPU: - if (DoColourChooser(&CPUColourFrom, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmCPUColourFrom, CPUColourFrom, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_TOCOLOURCPU: - if (DoColourChooser(&CPUColourTo, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmCPUColourTo, CPUColourTo, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_FROMCOLOURMEM: - if (DoColourChooser(&MemColourFrom, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmMemColourFrom, MemColourFrom, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_TOCOLOURMEM: - if (DoColourChooser(&MemColourTo, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmMemColourTo, MemColourTo, LOWORD(wParam)); - return TRUE; - } - return FALSE; } return FALSE; } -void PositionPage::UpdateColorButton(HWND hwndDlg, HBITMAP bitmap, COLORREF colour, int controlId) -{ - if (bitmap) - DeleteObject(bitmap); - bitmap = EGCreateBitmap(0xff, colour, colourRect); - if (bitmap) - DeleteObject((HBITMAP)SendDlgItemMessage(hwndDlg, controlId, BM_SETIMAGE, - IMAGE_BITMAP, (LPARAM)bitmap)); -} - -bool PositionPage::DoFontChooser(HWND hwndDlg) -{ - CHOOSEFONT chooseFont; - - ZeroMemory(&chooseFont, sizeof(CHOOSEFONT)); - chooseFont.lStructSize = sizeof(CHOOSEFONT); - chooseFont.hwndOwner = hwndDlg; - chooseFont.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_NOSCRIPTSEL; - chooseFont.lpLogFont = &newFont; - - return (ChooseFont(&chooseFont) == TRUE); -} - -BOOL PositionPage::DoColourChooser(COLORREF *colour, HWND hwndDlg) -{ - CHOOSECOLOR chooseColour; - COLORREF tmpColour = *colour; - BOOL res; - - ZeroMemory(&chooseColour, sizeof(CHOOSECOLOR)); - chooseColour.lStructSize = sizeof(CHOOSECOLOR); - chooseColour.hwndOwner = hwndDlg; - chooseColour.rgbResult = tmpColour; - chooseColour.lpCustColors = (LPDWORD)custColours; - chooseColour.Flags = CC_RGBINIT | CC_FULLOPEN; - - res = ChooseColor(&chooseColour); - - if (res) - *colour = chooseColour.rgbResult; - - return res; -} - bool PositionPage::UpdateSettings(HWND hwndDlg) { - BOOL success; - ... [truncated message content] |
From: <ir0...@us...> - 2009-11-17 11:15:51
|
Revision: 2720 http://emerge.svn.sourceforge.net/emerge/?rev=2720&view=rev Author: ir0nh34d Date: 2009-11-17 11:15:44 +0000 (Tue, 17 Nov 2009) Log Message: ----------- Save Anchor Point Modified Paths: -------------- trunk/Source/emergePower/PositionPage.cpp Modified: trunk/Source/emergePower/PositionPage.cpp =================================================================== --- trunk/Source/emergePower/PositionPage.cpp 2009-11-16 19:30:50 UTC (rev 2719) +++ trunk/Source/emergePower/PositionPage.cpp 2009-11-17 11:15:44 UTC (rev 2720) @@ -152,6 +152,7 @@ { BOOL success = false; const WCHAR *tmpValue; + WCHAR tmp[MAX_LINE_LENGTH]; if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_CHECKED) success = true; @@ -159,6 +160,12 @@ success = false; pSettings->SetDynamicPositioning(success); + if (GetDlgItemText(hwndDlg, IDC_ANCHOR, tmp, MAX_LINE_LENGTH) != 0) + { + if (wcscmp(tmp, pSettings->GetAnchorPoint()) != 0) + pSettings->SetAnchorPoint(tmp); + } + if (SendDlgItemMessage(hwndDlg, IDC_UP, BM_GETCHECK, 0, 0) == BST_CHECKED) tmpValue = TEXT("Up"); if (SendDlgItemMessage(hwndDlg, IDC_VCENTER, BM_GETCHECK, 0, 0) == BST_CHECKED) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-16 19:31:00
|
Revision: 2719 http://emerge.svn.sourceforge.net/emerge/?rev=2719&view=rev Author: ir0nh34d Date: 2009-11-16 19:30:50 +0000 (Mon, 16 Nov 2009) Log Message: ----------- Initial conversion to tabbed config Modified Paths: -------------- trunk/Source/emergeSysMon/Config.cpp trunk/Source/emergeSysMon/Config.h trunk/Source/emergeSysMon/emergeSysMon.rc trunk/Source/emergeSysMon/resource.h Added Paths: ----------- trunk/Source/emergeSysMon/ConfigPage.cpp trunk/Source/emergeSysMon/ConfigPage.dlg trunk/Source/emergeSysMon/ConfigPage.h trunk/Source/emergeSysMon/DisplayPage.cpp trunk/Source/emergeSysMon/DisplayPage.dlg trunk/Source/emergeSysMon/DisplayPage.h trunk/Source/emergeSysMon/PositionPage.cpp trunk/Source/emergeSysMon/PositionPage.dlg trunk/Source/emergeSysMon/PositionPage.h Modified: trunk/Source/emergeSysMon/Config.cpp =================================================================== --- trunk/Source/emergeSysMon/Config.cpp 2009-11-16 15:39:06 UTC (rev 2718) +++ trunk/Source/emergeSysMon/Config.cpp 2009-11-16 19:30:50 UTC (rev 2719) @@ -1,527 +1,130 @@ -//--- -// -// This file is part of Emerge Desktop. -// Copyright (C) 2004-2009 The Emerge Desktop Development Team -// -// Emerge Desktop is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3 of the License, or -// (at your option) any later version. -// -// Emerge Desktop is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// -//--- - -#include <string> -#include <algorithm> -#include <cctype> -#include "Config.h" -#include "Applet.h" - -static COLORREF custColours[16]; - -BOOL CALLBACK Config::ConfigDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - static Config *pConfig = NULL; - - switch (message) - { - case WM_INITDIALOG: - pConfig = reinterpret_cast<Config*>(lParam); - if (!pConfig) - break; - return pConfig->DoInitDialog(hwndDlg); - - case WM_COMMAND: - return pConfig->DoCommand(hwndDlg, wParam, lParam); - } - - return FALSE; -} - -Config::Config(HINSTANCE hInstance, HWND mainWnd, std::tr1::shared_ptr<Settings> pSettings) -{ - this->hInstance = hInstance; - this->mainWnd = mainWnd; - this->pSettings = pSettings; - colourRect.left = colourRect.top = 0; - colourRect.right = colourRect.bottom = 16; - hbmCPUColourFrom = NULL; - hbmCPUColourTo = NULL; - hbmMemColourFrom = NULL; - hbmMemColourTo = NULL; -} - -Config::~Config() -{ - if (buttonFont) - DeleteObject(buttonFont); - if (hbmCPUColourFrom) - DeleteObject(hbmCPUColourFrom); - if (hbmCPUColourTo) - DeleteObject(hbmCPUColourTo); - if (hbmMemColourFrom) - DeleteObject(hbmMemColourFrom); - if (hbmMemColourTo) - DeleteObject(hbmMemColourTo); -} - -int Config::Show() -{ - return (int)DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CONFIG), mainWnd, (DLGPROC)ConfigDlgProc, (LPARAM)this); -} - -BOOL Config::DoInitDialog(HWND hwndDlg) -{ - RECT rect; - int x, y; - HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); - - GetWindowRect(hwndDlg, &rect); - - x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right - rect.left) / 2); - y = (GetSystemMetrics(SM_CYSCREEN) / 2) - ((rect.bottom - rect.top) / 2); - SetWindowPos(hwndDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE); - ELStealFocus(hwndDlg); - - if (pSettings->GetSnapMove()) - SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetSnapSize()) - SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_SETCHECK, BST_CHECKED, 0); - - SetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, pSettings->GetUpdateInterval(), false); - SendDlgItemMessage(hwndDlg, IDC_UPDATEINTERVALUPDOWN, UDM_SETRANGE, (WPARAM)MINIMUM_UPDATE_INTERVAL, (LPARAM)60000); - - if (pSettings->GetClickThrough() != 0) - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetDynamicPositioning()) - SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorCPU()) - SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorCommitCharge()) - SendDlgItemMessage(hwndDlg, IDC_MONITORCOMMIT, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorPhysicalMem()) - SendDlgItemMessage(hwndDlg, IDC_MONITORPHY, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetMonitorPagefile()) - SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetDirectionOrientation(), TEXT("vertical")) == 0) - SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_SETCHECK, BST_CHECKED, 0); - else - SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetHistoryMode()) - SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("left")) == 0) - SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("down")) == 0) - SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("right")) == 0) - SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetBarDirection(), TEXT("up")) == 0) - SendDlgItemMessage(hwndDlg, IDC_UP, BM_SETCHECK, BST_CHECKED, 0); - - if (pSettings->GetShowNumbers()) - SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("left")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTLEFT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("down")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTDOWN, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("right")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTRIGHT, BM_SETCHECK, BST_CHECKED, 0); - if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("up")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_SETCHECK, BST_CHECKED, 0); - - if (_wcsicmp(pSettings->GetZPosition(), TEXT("top")) == 0) - SendDlgItemMessage(hwndDlg, IDC_TOP, BM_SETCHECK, BST_CHECKED, 0); - else if (_wcsicmp(pSettings->GetZPosition(), TEXT("bottom")) == 0) - SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_SETCHECK, BST_CHECKED, 0); - else - SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_SETCHECK, BST_CHECKED, 0); - - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("16x16")); - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("32x32")); - - if (pSettings->GetIconSize() == 32) - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)1, 0); - else - SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)0, 0); - - SetDlgItemInt(hwndDlg, IDC_ICONSPACING, pSettings->GetIconSpacing(), false); - - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Full")); - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Background")); - - if (pSettings->GetClickThrough() == 0) - EnableWindow(clickThroughWnd, false); - - if (pSettings->GetClickThrough() == 1) - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)0, 0); - else - SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)1, 0); - - CopyMemory(&newFont, pSettings->GetFont(), sizeof(LOGFONT)); - if (buttonFont) - DeleteObject(buttonFont); - buttonFont = CreateFontIndirect(&newFont); - SendDlgItemMessage(hwndDlg, IDC_FONT, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); - SetDlgItemText(hwndDlg, IDC_FONT, newFont.lfFaceName); - - // colors - CPUColourFrom = pSettings->GetCPUGradientFrom(); - CPUColourTo = pSettings->GetCPUGradientTo(); - MemColourFrom = pSettings->GetMemGradientFrom(); - MemColourTo = pSettings->GetMemGradientTo(); - - if (SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_GETCOUNT, 0, 0) == 0) - { - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); - } - - std::wstring lower = pSettings->GetCPUGradientMethod(); - std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); - if (lower.find(TEXT("vertical")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)1, 0); - else if (lower.find(TEXT("horizontal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)2, 0); - else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)3, 0); - else if (lower.find(TEXT("diagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)4, 0); - else if (lower.find(TEXT("pipecross")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)5, 0); - else if (lower.find(TEXT("elliptic")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)6, 0); - else if (lower.find(TEXT("rectangle")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)7, 0); - else if (lower.find(TEXT("pyramid")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)8, 0); - else - SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)0, 0); - - hbmCPUColourFrom = EGCreateBitmap(0xff, CPUColourFrom, colourRect); - if (hbmCPUColourFrom) - SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourFrom); - - hbmCPUColourTo = EGCreateBitmap(0xff, CPUColourTo, colourRect); - if (hbmCPUColourTo) - SendDlgItemMessage(hwndDlg, IDC_TOCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourTo); - - if (SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_GETCOUNT, 0, 0) == 0) - { - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); - } - - lower = pSettings->GetMemGradientMethod(); - std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); - if (lower.find(TEXT("vertical")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)1, 0); - else if (lower.find(TEXT("horizontal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)2, 0); - else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)3, 0); - else if (lower.find(TEXT("diagonal")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)4, 0); - else if (lower.find(TEXT("pipecross")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)5, 0); - else if (lower.find(TEXT("elliptic")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)6, 0); - else if (lower.find(TEXT("rectangle")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)7, 0); - else if (lower.find(TEXT("pyramid")) != std::wstring::npos) - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)8, 0); - else - SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)0, 0); - - hbmMemColourFrom = EGCreateBitmap(0xff, MemColourFrom, colourRect); - if (hbmMemColourFrom) - SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourFrom); - - hbmMemColourTo = EGCreateBitmap(0xff, MemColourTo, colourRect); - if (hbmMemColourTo) - SendDlgItemMessage(hwndDlg, IDC_TOCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourTo); - - UpdateEnabledStates(hwndDlg); - - return TRUE; -} - -BOOL Config::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) -{ - HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); - - switch (LOWORD(wParam)) - { - case IDOK: - if (!UpdateSettings(hwndDlg)) - break; - case IDCANCEL: - EndDialog(hwndDlg, wParam); - return TRUE; - case IDC_FONT: - if (DoFontChooser(hwndDlg)) - { - if (buttonFont) - DeleteObject(buttonFont); - buttonFont = CreateFontIndirect(&newFont); - SendDlgItemMessage(hwndDlg, IDC_FONT, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); - SetDlgItemText(hwndDlg, IDC_FONT, newFont.lfFaceName); - - return TRUE; - } - - return FALSE; - case IDC_HISTORYMODE: - case IDC_SHOWNUMBERS: - UpdateEnabledStates(hwndDlg); - return TRUE; - case IDC_CLICKTHROUGH: - if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) - EnableWindow(clickThroughWnd, true); - else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - EnableWindow(clickThroughWnd, false); - return TRUE; - case IDC_FROMCOLOURCPU: - if (DoColourChooser(&CPUColourFrom, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmCPUColourFrom, CPUColourFrom, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_TOCOLOURCPU: - if (DoColourChooser(&CPUColourTo, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmCPUColourTo, CPUColourTo, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_FROMCOLOURMEM: - if (DoColourChooser(&MemColourFrom, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmMemColourFrom, MemColourFrom, LOWORD(wParam)); - return TRUE; - } - return FALSE; - case IDC_TOCOLOURMEM: - if (DoColourChooser(&MemColourTo, hwndDlg)) - { - UpdateColorButton(hwndDlg, hbmMemColourTo, MemColourTo, LOWORD(wParam)); - return TRUE; - } - return FALSE; - } - - return FALSE; -} - -void Config::UpdateColorButton(HWND hwndDlg, HBITMAP bitmap, COLORREF colour, int controlId) -{ - if (bitmap) - DeleteObject(bitmap); - bitmap = EGCreateBitmap(0xff, colour, colourRect); - if (bitmap) - DeleteObject((HBITMAP)SendDlgItemMessage(hwndDlg, controlId, BM_SETIMAGE, - IMAGE_BITMAP, (LPARAM)bitmap)); -} - -bool Config::DoFontChooser(HWND hwndDlg) -{ - CHOOSEFONT chooseFont; - - ZeroMemory(&chooseFont, sizeof(CHOOSEFONT)); - chooseFont.lStructSize = sizeof(CHOOSEFONT); - chooseFont.hwndOwner = hwndDlg; - chooseFont.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_NOSCRIPTSEL; - chooseFont.lpLogFont = &newFont; - - return (ChooseFont(&chooseFont) == TRUE); -} - -BOOL Config::DoColourChooser(COLORREF *colour, HWND hwndDlg) -{ - CHOOSECOLOR chooseColour; - COLORREF tmpColour = *colour; - BOOL res; - - ZeroMemory(&chooseColour, sizeof(CHOOSECOLOR)); - chooseColour.lStructSize = sizeof(CHOOSECOLOR); - chooseColour.hwndOwner = hwndDlg; - chooseColour.rgbResult = tmpColour; - chooseColour.lpCustColors = (LPDWORD)custColours; - chooseColour.Flags = CC_RGBINIT | CC_FULLOPEN; - - res = ChooseColor(&chooseColour); - - if (res) - *colour = chooseColour.rgbResult; - - return res; -} - -bool Config::UpdateSettings(HWND hwndDlg) -{ - BOOL success; - int result, index; - const WCHAR *tmpValue = NULL; - - if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetSnapMove(success); - - if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetDynamicPositioning(success); - - if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetSnapSize(success); - - if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) - { - index = (int)SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_GETCURSEL, 0, 0); - index++; - pSettings->SetClickThrough(index); - } - else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - pSettings->SetClickThrough(0); - - - if (SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetMonitorCPU(success); - - pSettings->SetMonitorCommitCharge( - SendDlgItemMessage(hwndDlg, IDC_MONITORCOMMIT, BM_GETCHECK, 0, 0) == BST_CHECKED); - - pSettings->SetMonitorPhysicalMem( - SendDlgItemMessage(hwndDlg, IDC_MONITORPHY, BM_GETCHECK, 0, 0) == BST_CHECKED); - - pSettings->SetMonitorPagefile( - SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_GETCHECK, 0, 0) == BST_CHECKED); - - if (SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetHistoryMode(success); - - result = GetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, &success, false); - if (success) - pSettings->SetUpdateInterval(result); - else if (!success) - { - ELMessageBox(GetDesktopWindow(), (WCHAR*)TEXT("Invalid value for update interval"), - (WCHAR*)TEXT("emergeSysMon"), ELMB_OK|ELMB_ICONERROR|ELMB_MODAL); - SetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, pSettings->GetUpdateInterval(), false); - return false; - } - - if (SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Vertical"); - if (SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Horizontal"); - pSettings->SetDirectionOrientation((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_UP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("up"); - if (SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("right"); - if (SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("down"); - if (SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("left"); - pSettings->SetBarDirection((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_TOP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Top"); - if (SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Bottom"); - if (SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("Normal"); - pSettings->SetZPosition((WCHAR*)tmpValue); - - if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED) - success = true; - else if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_UNCHECKED) - success = false; - pSettings->SetShowNumbers(success); - - if (SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("up"); - if (SendDlgItemMessage(hwndDlg, IDC_TEXTRIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("right"); - if (SendDlgItemMessage(hwndDlg, IDC_TEXTDOWN, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("down"); - if (SendDlgItemMessage(hwndDlg, IDC_TEXTLEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) - tmpValue = TEXT("left"); - pSettings->SetNumberPosition((WCHAR*)tmpValue); - - WCHAR methodString[MAX_LINE_LENGTH]; - GetDlgItemText(hwndDlg, IDC_METHODCPU, methodString, MAX_LINE_LENGTH); - pSettings->SetCPUGradientMethod(methodString); - pSettings->SetCPUGradientFrom(CPUColourFrom); - pSettings->SetCPUGradientTo(CPUColourTo); - GetDlgItemText(hwndDlg, IDC_METHODMEM, methodString, MAX_LINE_LENGTH); - pSettings->SetMemGradientMethod(methodString); - pSettings->SetMemGradientFrom(MemColourFrom); - pSettings->SetMemGradientTo(MemColourTo); - - pSettings->SetFont(&newFont); - - // commit the changes, if any - pSettings->WriteSettings(); - - return true; -} - -void Config::UpdateEnabledStates(HWND hwndDlg) -{ - bool historyMode = SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_CHECKED; - EnableWindow(GetDlgItem(hwndDlg, IDC_UP), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_DOWN), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), !historyMode); - EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), !historyMode); - bool showNumbers = SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED; - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTUP), showNumbers); - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTDOWN), showNumbers); - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTLEFT), showNumbers); - EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTRIGHT), showNumbers); -} +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include "Config.h" +#include "Applet.h" + +INT_PTR CALLBACK Config::ConfigDlgProc(HWND hwndDlg, UINT message, WPARAM wParam UNUSED, LPARAM lParam UNUSED) +{ + static Config *pConfig = NULL; + + switch (message) + { + case WM_INITDIALOG: + pConfig = reinterpret_cast<Config*>(lParam); + if (!pConfig) + break; + return pConfig->DoInitDialog(hwndDlg); + } + + return 0; +} + +Config::Config(HINSTANCE hInstance, HWND mainWnd, std::tr1::shared_ptr<Settings> pSettings) +{ + this->hInstance = hInstance; + this->mainWnd = mainWnd; + this->pSettings = pSettings; + + pConfigPage = std::tr1::shared_ptr<ConfigPage>(new ConfigPage(pSettings)); + pDisplayPage = std::tr1::shared_ptr<DisplayPage>(new DisplayPage(pSettings)); + pPositionPage = std::tr1::shared_ptr<PositionPage>(new PositionPage(pSettings)); + pSchemeEditor = std::tr1::shared_ptr<SchemeEditor>(new SchemeEditor(mainWnd)); +} + +Config::~Config() +{ +} + +int Config::Show() +{ + return (int)DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CONFIG), mainWnd, (DLGPROC)ConfigDlgProc, (LPARAM)this); +} + +INT_PTR Config::DoInitDialog(HWND hwndDlg) +{ + int ret; + PROPSHEETPAGE psp[4]; + PROPSHEETHEADER psh; + + ELStealFocus(hwndDlg); + + psp[0].dwSize = sizeof(PROPSHEETPAGE); + psp[0].dwFlags = PSP_USETITLE; + psp[0].hInstance = hInstance; + psp[0].pszTemplate = MAKEINTRESOURCE(IDD_CONFIG_PAGE); + psp[0].pfnDlgProc = pConfigPage->ConfigPageDlgProc; + psp[0].pszTitle = TEXT("Configuration"); + psp[0].lParam = reinterpret_cast<LPARAM>(pConfigPage.get()); + psp[0].pfnCallback = NULL; + + psp[1].dwSize = sizeof(PROPSHEETPAGE); + psp[1].dwFlags = PSP_USETITLE; + psp[1].hInstance = hInstance; + psp[1].pszTemplate = MAKEINTRESOURCE(IDD_DISPLAY_PAGE); + psp[1].pfnDlgProc = pDisplayPage->DisplayPageDlgProc; + psp[1].pszTitle = TEXT("Display"); + psp[1].lParam = reinterpret_cast<LPARAM>(pDisplayPage.get()); + psp[1].pfnCallback = NULL; + + psp[2].dwSize = sizeof(PROPSHEETPAGE); + psp[2].dwFlags = PSP_USETITLE; + psp[2].hInstance = hInstance; + psp[2].pszTemplate = MAKEINTRESOURCE(IDD_POSITION_PAGE); + psp[2].pfnDlgProc = pPositionPage->PositionPageDlgProc; + psp[2].pszTitle = TEXT("Position"); + psp[2].lParam = reinterpret_cast<LPARAM>(pPositionPage.get()); + psp[2].pfnCallback = NULL; + + pSchemeEditor->Edit(pSettings->GetSchemeFile()); + psp[3].dwSize = sizeof(PROPSHEETPAGE); + psp[3].dwFlags = PSP_USETITLE; + psp[3].hInstance = GetModuleHandle(TEXT("emergeSchemeEngine.dll")); + psp[3].pszTemplate = pSchemeEditor->GetTemplate(); + psp[3].pfnDlgProc = pSchemeEditor->SchemeEditorDlgProc; + psp[3].pszTitle = TEXT("Scheme Editor"); + psp[3].lParam = reinterpret_cast<LPARAM>(pSchemeEditor.get()); + psp[3].pfnCallback = NULL; + + psh.dwSize = sizeof(PROPSHEETHEADER); + psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW | PSH_NOCONTEXTHELP; + psh.hwndParent = hwndDlg; + psh.hInstance = hInstance; + psh.pszCaption = TEXT("emergeSysMon Properties"); + psh.nPages = sizeof(psp) / + sizeof(PROPSHEETPAGE); + psh.nStartPage = 0; + psh.ppsp = (LPCPROPSHEETPAGE) &psp; + psh.pfnCallback = NULL; + + ret = PropertySheet(&psh); + + if (ret >= 1) + { + pSettings->SetSchemeFile(ESEGetScheme()); + pSettings->WriteSettings(); + EndDialog(hwndDlg, IDOK); + } + if (ret <= 0) + EndDialog(hwndDlg, IDCANCEL); + + return 1; +} + Modified: trunk/Source/emergeSysMon/Config.h =================================================================== --- trunk/Source/emergeSysMon/Config.h 2009-11-16 15:39:06 UTC (rev 2718) +++ trunk/Source/emergeSysMon/Config.h 2009-11-16 19:30:50 UTC (rev 2719) @@ -1,60 +1,56 @@ -//--- -// -// This file is part of Emerge Desktop. -// Copyright (C) 2004-2009 The Emerge Desktop Development Team -// -// Emerge Desktop is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3 of the License, or -// (at your option) any later version. -// -// Emerge Desktop is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// -//--- - -#ifndef __CONFIG_H -#define __CONFIG_H - -#include "Settings.h" -#include "resource.h" - -class Config -{ -public: - Config(HINSTANCE hInstance, HWND mainWnd, std::tr1::shared_ptr<Settings> pSettings); - ~Config(); - int Show(); - BOOL DoInitDialog(HWND hwndDlg); - BOOL DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam); - bool UpdateSettings(HWND hwndDlg); - bool DoFontChooser(HWND hwndDlg); - BOOL DoColourChooser(COLORREF *colour, HWND hwndDlg); - void UpdateEnabledStates(HWND hwndDlg); - -private: - LOGFONT newFont; - HINSTANCE hInstance; - HWND mainWnd; - HFONT buttonFont; - std::tr1::shared_ptr<Settings> pSettings; - RECT colourRect; - COLORREF CPUColourFrom; - COLORREF CPUColourTo; - COLORREF MemColourFrom; - COLORREF MemColourTo; - HBITMAP hbmCPUColourFrom; - HBITMAP hbmCPUColourTo; - HBITMAP hbmMemColourFrom; - HBITMAP hbmMemColourTo; - static BOOL CALLBACK ConfigDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam); - void UpdateColorButton(HWND hwndDlg, HBITMAP bitmap, COLORREF colour, int controlId); -}; - -#endif - +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2007 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#ifndef __CONFIG_H +#define __CONFIG_H + +#undef _WIN32_IE +#define _WIN32_IE 0x0600 + +#include "Settings.h" +#include "resource.h" +#include "PositionPage.h" +#include "../emergeSchemeEngine/SchemeEditor.h" +#include "ConfigPage.h" +#include "DisplayPage.h" +#include <tr1/memory> +#include <tr1/shared_ptr.h> + +class Config +{ +public: + Config(HINSTANCE hInstance, HWND mainWnd, std::tr1::shared_ptr<Settings> pSettings); + ~Config(); + int Show(); + INT_PTR DoInitDialog(HWND hwndDlg); + +private: + std::tr1::shared_ptr<PositionPage> pPositionPage; + std::tr1::shared_ptr<SchemeEditor> pSchemeEditor; + std::tr1::shared_ptr<ConfigPage> pConfigPage; + std::tr1::shared_ptr<DisplayPage> pDisplayPage; + std::tr1::shared_ptr<Settings> pSettings; + HINSTANCE hInstance; + HWND mainWnd; + static INT_PTR CALLBACK ConfigDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam); +}; + +#endif + Added: trunk/Source/emergeSysMon/ConfigPage.cpp =================================================================== --- trunk/Source/emergeSysMon/ConfigPage.cpp (rev 0) +++ trunk/Source/emergeSysMon/ConfigPage.cpp 2009-11-16 19:30:50 UTC (rev 2719) @@ -0,0 +1,522 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#include <string> +#include <algorithm> +#include <cctype> +#include "ConfigPage.h" +#include "Applet.h" + +static COLORREF custColours[16]; + +BOOL CALLBACK ConfigPage::ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static ConfigPage *pConfigPage = NULL; + PROPSHEETPAGE *psp; + + switch (message) + { + case WM_INITDIALOG: + psp = (PROPSHEETPAGE*)lParam; + pConfigPage = reinterpret_cast<ConfigPage*>(psp->lParam); + if (!pConfigPage) + break; + return pConfigPage->DoInitDialog(hwndDlg); + + case WM_COMMAND: + return pConfigPage->DoCommand(hwndDlg, wParam, lParam); + } + + return FALSE; +} + +ConfigPage::ConfigPage(std::tr1::shared_ptr<Settings> pSettings) +{ + this->pSettings = pSettings; + colourRect.left = colourRect.top = 0; + colourRect.right = colourRect.bottom = 16; + hbmCPUColourFrom = NULL; + hbmCPUColourTo = NULL; + hbmMemColourFrom = NULL; + hbmMemColourTo = NULL; +} + +ConfigPage::~ConfigPage() +{ + if (buttonFont) + DeleteObject(buttonFont); + if (hbmCPUColourFrom) + DeleteObject(hbmCPUColourFrom); + if (hbmCPUColourTo) + DeleteObject(hbmCPUColourTo); + if (hbmMemColourFrom) + DeleteObject(hbmMemColourFrom); + if (hbmMemColourTo) + DeleteObject(hbmMemColourTo); +} + +BOOL ConfigPage::DoInitDialog(HWND hwndDlg) +{ + RECT rect; + int x, y; + HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); + + GetWindowRect(hwndDlg, &rect); + + x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right - rect.left) / 2); + y = (GetSystemMetrics(SM_CYSCREEN) / 2) - ((rect.bottom - rect.top) / 2); + SetWindowPos(hwndDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE); + ELStealFocus(hwndDlg); + + if (pSettings->GetSnapMove()) + SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetSnapSize()) + SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_SETCHECK, BST_CHECKED, 0); + + SetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, pSettings->GetUpdateInterval(), false); + SendDlgItemMessage(hwndDlg, IDC_UPDATEINTERVALUPDOWN, UDM_SETRANGE, (WPARAM)MINIMUM_UPDATE_INTERVAL, (LPARAM)60000); + + if (pSettings->GetClickThrough() != 0) + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetDynamicPositioning()) + SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetMonitorCPU()) + SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetMonitorCommitCharge()) + SendDlgItemMessage(hwndDlg, IDC_MONITORCOMMIT, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetMonitorPhysicalMem()) + SendDlgItemMessage(hwndDlg, IDC_MONITORPHY, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetMonitorPagefile()) + SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_SETCHECK, BST_CHECKED, 0); + + if (_wcsicmp(pSettings->GetDirectionOrientation(), TEXT("vertical")) == 0) + SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_SETCHECK, BST_CHECKED, 0); + else + SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetHistoryMode()) + SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_SETCHECK, BST_CHECKED, 0); + + if (_wcsicmp(pSettings->GetBarDirection(), TEXT("left")) == 0) + SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_SETCHECK, BST_CHECKED, 0); + if (_wcsicmp(pSettings->GetBarDirection(), TEXT("down")) == 0) + SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_SETCHECK, BST_CHECKED, 0); + if (_wcsicmp(pSettings->GetBarDirection(), TEXT("right")) == 0) + SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_SETCHECK, BST_CHECKED, 0); + if (_wcsicmp(pSettings->GetBarDirection(), TEXT("up")) == 0) + SendDlgItemMessage(hwndDlg, IDC_UP, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetShowNumbers()) + SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_SETCHECK, BST_CHECKED, 0); + + if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("left")) == 0) + SendDlgItemMessage(hwndDlg, IDC_TEXTLEFT, BM_SETCHECK, BST_CHECKED, 0); + if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("down")) == 0) + SendDlgItemMessage(hwndDlg, IDC_TEXTDOWN, BM_SETCHECK, BST_CHECKED, 0); + if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("right")) == 0) + SendDlgItemMessage(hwndDlg, IDC_TEXTRIGHT, BM_SETCHECK, BST_CHECKED, 0); + if (_wcsicmp(pSettings->GetNumberPosition(), TEXT("up")) == 0) + SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_SETCHECK, BST_CHECKED, 0); + + if (_wcsicmp(pSettings->GetZPosition(), TEXT("top")) == 0) + SendDlgItemMessage(hwndDlg, IDC_TOP, BM_SETCHECK, BST_CHECKED, 0); + else if (_wcsicmp(pSettings->GetZPosition(), TEXT("bottom")) == 0) + SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_SETCHECK, BST_CHECKED, 0); + else + SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_SETCHECK, BST_CHECKED, 0); + + SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("16x16")); + SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_ADDSTRING, 0, (LPARAM)TEXT("32x32")); + + if (pSettings->GetIconSize() == 32) + SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)1, 0); + else + SendDlgItemMessage(hwndDlg, IDC_ICONSIZE, CB_SETCURSEL, (WPARAM)0, 0); + + SetDlgItemInt(hwndDlg, IDC_ICONSPACING, pSettings->GetIconSpacing(), false); + + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Full")); + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Background")); + + if (pSettings->GetClickThrough() == 0) + EnableWindow(clickThroughWnd, false); + + if (pSettings->GetClickThrough() == 1) + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)0, 0); + else + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)1, 0); + + CopyMemory(&newFont, pSettings->GetFont(), sizeof(LOGFONT)); + if (buttonFont) + DeleteObject(buttonFont); + buttonFont = CreateFontIndirect(&newFont); + SendDlgItemMessage(hwndDlg, IDC_FONTBUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); + SetDlgItemText(hwndDlg, IDC_FONTBUTTON, newFont.lfFaceName); + + // colors + CPUColourFrom = pSettings->GetCPUGradientFrom(); + CPUColourTo = pSettings->GetCPUGradientTo(); + MemColourFrom = pSettings->GetMemGradientFrom(); + MemColourTo = pSettings->GetMemGradientTo(); + + if (SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_GETCOUNT, 0, 0) == 0) + { + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); + } + + std::wstring lower = pSettings->GetCPUGradientMethod(); + std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); + if (lower.find(TEXT("vertical")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)1, 0); + else if (lower.find(TEXT("horizontal")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)2, 0); + else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)3, 0); + else if (lower.find(TEXT("diagonal")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)4, 0); + else if (lower.find(TEXT("pipecross")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)5, 0); + else if (lower.find(TEXT("elliptic")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)6, 0); + else if (lower.find(TEXT("rectangle")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)7, 0); + else if (lower.find(TEXT("pyramid")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)8, 0); + else + SendDlgItemMessage(hwndDlg, IDC_METHODCPU, CB_SETCURSEL, (WPARAM)0, 0); + + hbmCPUColourFrom = EGCreateBitmap(0xff, CPUColourFrom, colourRect); + if (hbmCPUColourFrom) + SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourFrom); + + hbmCPUColourTo = EGCreateBitmap(0xff, CPUColourTo, colourRect); + if (hbmCPUColourTo) + SendDlgItemMessage(hwndDlg, IDC_TOCOLOURCPU, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmCPUColourTo); + + if (SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_GETCOUNT, 0, 0) == 0) + { + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Solid")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Vertical")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Horizontal")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("CrossDiagonal")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Diagonal")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pipecross")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Elliptic")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Rectangle")); + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_ADDSTRING, 0, (LPARAM)TEXT("Pyramid")); + } + + lower = pSettings->GetMemGradientMethod(); + std::transform(lower.begin(), lower.end(), lower.begin(), (int(*)(int)) std::tolower); + if (lower.find(TEXT("vertical")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)1, 0); + else if (lower.find(TEXT("horizontal")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)2, 0); + else if (lower.find(TEXT("crossdiagonal")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)3, 0); + else if (lower.find(TEXT("diagonal")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)4, 0); + else if (lower.find(TEXT("pipecross")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)5, 0); + else if (lower.find(TEXT("elliptic")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)6, 0); + else if (lower.find(TEXT("rectangle")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)7, 0); + else if (lower.find(TEXT("pyramid")) != std::wstring::npos) + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)8, 0); + else + SendDlgItemMessage(hwndDlg, IDC_METHODMEM, CB_SETCURSEL, (WPARAM)0, 0); + + hbmMemColourFrom = EGCreateBitmap(0xff, MemColourFrom, colourRect); + if (hbmMemColourFrom) + SendDlgItemMessage(hwndDlg, IDC_FROMCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourFrom); + + hbmMemColourTo = EGCreateBitmap(0xff, MemColourTo, colourRect); + if (hbmMemColourTo) + SendDlgItemMessage(hwndDlg, IDC_TOCOLOURMEM, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmMemColourTo); + + UpdateEnabledStates(hwndDlg); + + return TRUE; +} + +BOOL ConfigPage::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) +{ + HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); + + switch (LOWORD(wParam)) + { + case IDOK: + if (!UpdateSettings(hwndDlg)) + break; + case IDCANCEL: + EndDialog(hwndDlg, wParam); + return TRUE; + case IDC_FONTBUTTON: + if (DoFontChooser(hwndDlg)) + { + if (buttonFont) + DeleteObject(buttonFont); + buttonFont = CreateFontIndirect(&newFont); + SendDlgItemMessage(hwndDlg, IDC_FONTBUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); + SetDlgItemText(hwndDlg, IDC_FONTBUTTON, newFont.lfFaceName); + + return TRUE; + } + + return FALSE; + case IDC_HISTORYMODE: + case IDC_SHOWNUMBERS: + UpdateEnabledStates(hwndDlg); + return TRUE; + case IDC_CLICKTHROUGH: + if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) + EnableWindow(clickThroughWnd, true); + else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + EnableWindow(clickThroughWnd, false); + return TRUE; + case IDC_FROMCOLOURCPU: + if (DoColourChooser(&CPUColourFrom, hwndDlg)) + { + UpdateColorButton(hwndDlg, hbmCPUColourFrom, CPUColourFrom, LOWORD(wParam)); + return TRUE; + } + return FALSE; + case IDC_TOCOLOURCPU: + if (DoColourChooser(&CPUColourTo, hwndDlg)) + { + UpdateColorButton(hwndDlg, hbmCPUColourTo, CPUColourTo, LOWORD(wParam)); + return TRUE; + } + return FALSE; + case IDC_FROMCOLOURMEM: + if (DoColourChooser(&MemColourFrom, hwndDlg)) + { + UpdateColorButton(hwndDlg, hbmMemColourFrom, MemColourFrom, LOWORD(wParam)); + return TRUE; + } + return FALSE; + case IDC_TOCOLOURMEM: + if (DoColourChooser(&MemColourTo, hwndDlg)) + { + UpdateColorButton(hwndDlg, hbmMemColourTo, MemColourTo, LOWORD(wParam)); + return TRUE; + } + return FALSE; + } + + return FALSE; +} + +void ConfigPage::UpdateColorButton(HWND hwndDlg, HBITMAP bitmap, COLORREF colour, int controlId) +{ + if (bitmap) + DeleteObject(bitmap); + bitmap = EGCreateBitmap(0xff, colour, colourRect); + if (bitmap) + DeleteObject((HBITMAP)SendDlgItemMessage(hwndDlg, controlId, BM_SETIMAGE, + IMAGE_BITMAP, (LPARAM)bitmap)); +} + +bool ConfigPage::DoFontChooser(HWND hwndDlg) +{ + CHOOSEFONT chooseFont; + + ZeroMemory(&chooseFont, sizeof(CHOOSEFONT)); + chooseFont.lStructSize = sizeof(CHOOSEFONT); + chooseFont.hwndOwner = hwndDlg; + chooseFont.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_NOSCRIPTSEL; + chooseFont.lpLogFont = &newFont; + + return (ChooseFont(&chooseFont) == TRUE); +} + +BOOL ConfigPage::DoColourChooser(COLORREF *colour, HWND hwndDlg) +{ + CHOOSECOLOR chooseColour; + COLORREF tmpColour = *colour; + BOOL res; + + ZeroMemory(&chooseColour, sizeof(CHOOSECOLOR)); + chooseColour.lStructSize = sizeof(CHOOSECOLOR); + chooseColour.hwndOwner = hwndDlg; + chooseColour.rgbResult = tmpColour; + chooseColour.lpCustColors = (LPDWORD)custColours; + chooseColour.Flags = CC_RGBINIT | CC_FULLOPEN; + + res = ChooseColor(&chooseColour); + + if (res) + *colour = chooseColour.rgbResult; + + return res; +} + +bool ConfigPage::UpdateSettings(HWND hwndDlg) +{ + BOOL success; + int result, index; + const WCHAR *tmpValue = NULL; + + if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_CHECKED) + success = true; + else if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + success = false; + pSettings->SetSnapMove(success); + + if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_CHECKED) + success = true; + else if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + success = false; + pSettings->SetDynamicPositioning(success); + + if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_CHECKED) + success = true; + else if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + success = false; + pSettings->SetSnapSize(success); + + if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) + { + index = (int)SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_GETCURSEL, 0, 0); + index++; + pSettings->SetClickThrough(index); + } + else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + pSettings->SetClickThrough(0); + + + if (SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_GETCHECK, 0, 0) == BST_CHECKED) + success = true; + else if (SendDlgItemMessage(hwndDlg, IDC_MONITORCPU, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + success = false; + pSettings->SetMonitorCPU(success); + + pSettings->SetMonitorCommitCharge( + SendDlgItemMessage(hwndDlg, IDC_MONITORCOMMIT, BM_GETCHECK, 0, 0) == BST_CHECKED); + + pSettings->SetMonitorPhysicalMem( + SendDlgItemMessage(hwndDlg, IDC_MONITORPHY, BM_GETCHECK, 0, 0) == BST_CHECKED); + + pSettings->SetMonitorPagefile( + SendDlgItemMessage(hwndDlg, IDC_MONITORPAGE, BM_GETCHECK, 0, 0) == BST_CHECKED); + + if (SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_CHECKED) + success = true; + else if (SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + success = false; + pSettings->SetHistoryMode(success); + + result = GetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, &success, false); + if (success) + pSettings->SetUpdateInterval(result); + else if (!success) + { + ELMessageBox(GetDesktopWindow(), (WCHAR*)TEXT("Invalid value for update interval"), + (WCHAR*)TEXT("emergeSysMon"), ELMB_OK|ELMB_ICONERROR|ELMB_MODAL); + SetDlgItemInt(hwndDlg, IDC_UPDATEINTERVAL, pSettings->GetUpdateInterval(), false); + return false; + } + + if (SendDlgItemMessage(hwndDlg, IDC_VERTICAL, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Vertical"); + if (SendDlgItemMessage(hwndDlg, IDC_HORIZONTAL, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Horizontal"); + pSettings->SetDirectionOrientation((WCHAR*)tmpValue); + + if (SendDlgItemMessage(hwndDlg, IDC_UP, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("up"); + if (SendDlgItemMessage(hwndDlg, IDC_RIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("right"); + if (SendDlgItemMessage(hwndDlg, IDC_DOWN, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("down"); + if (SendDlgItemMessage(hwndDlg, IDC_LEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("left"); + pSettings->SetBarDirection((WCHAR*)tmpValue); + + if (SendDlgItemMessage(hwndDlg, IDC_TOP, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Top"); + if (SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Bottom"); + if (SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Normal"); + pSettings->SetZPosition((WCHAR*)tmpValue); + + if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED) + success = true; + else if (SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + success = false; + pSettings->SetShowNumbers(success); + + if (SendDlgItemMessage(hwndDlg, IDC_TEXTUP, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("up"); + if (SendDlgItemMessage(hwndDlg, IDC_TEXTRIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("right"); + if (SendDlgItemMessage(hwndDlg, IDC_TEXTDOWN, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("down"); + if (SendDlgItemMessage(hwndDlg, IDC_TEXTLEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("left"); + pSettings->SetNumberPosition((WCHAR*)tmpValue); + + WCHAR methodString[MAX_LINE_LENGTH]; + GetDlgItemText(hwndDlg, IDC_METHODCPU, methodString, MAX_LINE_LENGTH); + pSettings->SetCPUGradientMethod(methodString); + pSettings->SetCPUGradientFrom(CPUColourFrom); + pSettings->SetCPUGradientTo(CPUColourTo); + GetDlgItemText(hwndDlg, IDC_METHODMEM, methodString, MAX_LINE_LENGTH); + pSettings->SetMemGradientMethod(methodString); + pSettings->SetMemGradientFrom(MemColourFrom); + pSettings->SetMemGradientTo(MemColourTo); + + pSettings->SetFont(&newFont); + + // commit the changes, if any + pSettings->WriteSettings(); + + return true; +} + +void ConfigPage::UpdateEnabledStates(HWND hwndDlg) +{ + bool historyMode = SendDlgItemMessage(hwndDlg, IDC_HISTORYMODE, BM_GETCHECK, 0, 0) == BST_CHECKED; + EnableWindow(GetDlgItem(hwndDlg, IDC_UP), !historyMode); + EnableWindow(GetDlgItem(hwndDlg, IDC_DOWN), !historyMode); + EnableWindow(GetDlgItem(hwndDlg, IDC_LEFT), !historyMode); + EnableWindow(GetDlgItem(hwndDlg, IDC_RIGHT), !historyMode); + bool showNumbers = SendDlgItemMessage(hwndDlg, IDC_SHOWNUMBERS, BM_GETCHECK, 0, 0) == BST_CHECKED; + EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTUP), showNumbers); + EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTDOWN), showNumbers); + EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTLEFT), showNumbers); + EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTRIGHT), showNumbers); +} Added: trunk/Source/emergeSysMon/ConfigPage.dlg =================================================================== --- trunk/Source/emergeSysMon/ConfigPage.dlg (rev 0) +++ trunk/Source/emergeSysMon/ConfigPage.dlg 2009-11-16 19:30:50 UTC (rev 2719) @@ -0,0 +1,94 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +IDD_CONFIG_PAGE DIALOGEX 0, 0, 360, 305 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "emergeSysMon Configuration" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "SnapMove",IDC_SNAPMOVE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,5,55,10 + CONTROL "SnapSize",IDC_SNAPSIZE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,80,5,90,10 + + CONTROL "Click Through:",IDC_CLICKTHROUGH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,20,60,10 + COMBOBOX IDC_CLICKTHROUGHMETHOD,65,18,60,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP + + CONTROL "Dynamic Positioning",IDC_DYNAMICPOSITIONING,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,35,75,10 + + LTEXT "Font",IDC_STATIC1,185,15,15,8 + PUSHBUTTON "",IDC_FONTBUTTON,235,5,120,30,BS_CENTER|BS_FLAT + + GROUPBOX "Monitor",IDC_STATIC2,5,50,170,35,WS_GROUP + CONTROL "CPU usage",IDC_MONITORCPU,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,60,85,10 + CONTROL "Commit charge",IDC_MONITORCOMMIT,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,100,60,60,10 + CONTROL "Physical mem usage",IDC_MONITORPHY,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,70,85,10 + CONTROL "Pagefile usage",IDC_MONITORPAGE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,100,70,60,10 + + GROUPBOX "Update",IDC_STATIC3,5,85,170,25,WS_GROUP + LTEXT "Interval",IDC_STATIC4,10,95,25,8 + EDITTEXT IDC_UPDATEINTERVAL,40,93,35,12,ES_AUTOHSCROLL|ES_NUMBER + CONTROL "",IDC_UPDATEINTERVALUPDOWN,UPDOWN_CLASS,UDS_AUTOBUDDY|UDS_SETBUDDYINT|UDS_ARROWKEYS|UDS_ALIGNRIGHT|UDS_NOTHOUSANDS,0,0,10,12 + + GROUPBOX "ZPosition",IDC_STATIC5,5,115,170,25,WS_GROUP + CONTROL "Top",IDC_TOP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,10,125,40,10 + CONTROL "Normal",IDC_NORMAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,70,125,40,10 + CONTROL "Bottom",IDC_BOTTOM,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,130,125,40,10 + + GROUPBOX "Direction",IDC_STATIC6,5,145,170,80,WS_GROUP + + GROUPBOX "Orientation",IDC_STATIC7,10,155,160,25,WS_GROUP + CONTROL "Vertical",IDC_VERTICAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,165,50,10 + CONTROL "Horizontal",IDC_HORIZONTAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,90,165,50,10 + + CONTROL "History mode",IDC_HISTORYMODE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,185,120,10 + + GROUPBOX "Bar direction",IDC_STATIC8,10,195,160,25,WS_GROUP + CONTROL "Left",IDC_LEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,205,40,10 + CONTROL "Down",IDC_DOWN,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,55,205,40,10 + CONTROL "Right",IDC_RIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,95,205,35,10 + CONTROL "Up",IDC_UP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,140,205,25,10 + + GROUPBOX "Numbers",IDC_STATIC9,5,230,170,50,WS_GROUP + CONTROL "Show numeric info",IDC_SHOWNUMBERS,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,10,240,120,10 + GROUPBOX "Number position",IDC_STATIC10,10,250,160,25,WS_GROUP + CONTROL "Left",IDC_TEXTLEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,260,40,10 + CONTROL "Under",IDC_TEXTDOWN,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,55,260,40,10 + CONTROL "Right",IDC_TEXTRIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,95,260,35,10 + CONTROL "Over",IDC_TEXTUP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,140,260,25,10 + + GROUPBOX "Processor colors", IDC_STATIC1,185,40,170,50,WS_GROUP + LTEXT "Method:",IDC_STATIC1,190,55,30,8 + COMBOBOX IDC_METHODCPU,230,53,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP + LTEXT "From Color:",IDC_STATIC1,210,75,40,8 + PUSHBUTTON "",IDC_FROMCOLOURCPU,250,70,16,16,BS_BITMAP|BS_FLAT + LTEXT "To Color:",IDC_STATIC1,290,75,40,8 + PUSHBUTTON "",IDC_TOCOLOURCPU,330,70,16,16,BS_BITMAP|BS_FLAT + + GROUPBOX "Memory colors", IDC_STATIC1,185,100,170,50,WS_GROUP + LTEXT "Method:",IDC_STATIC1,190,115,30,8 + COMBOBOX IDC_METHODMEM,230,113,80,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP + LTEXT "From Color:",IDC_STATIC1,210,135,40,8 + PUSHBUTTON "",IDC_FROMCOLOURMEM,250,130,16,16,BS_BITMAP|BS_FLAT + LTEXT "To Color:",IDC_STATIC1,290,135,40,8 + PUSHBUTTON "",IDC_TOCOLOURMEM,330,130,16,16,BS_BITMAP|BS_FLAT + + PUSHBUTTON "&OK",IDOK,5,285,70,14 + PUSHBUTTON "&Cancel",IDCANCEL,285,285,70,14 +END + Added: trunk/Source/emergeSysMon/ConfigPage.h =================================================================== --- trunk/Source/emergeSysMon/ConfigPage.h (rev 0) +++ trunk/Source/emergeSysMon/ConfigPage.h 2009-11-16 19:30:50 UTC (rev 2719) @@ -0,0 +1,57 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#ifndef __CONFIGPAGE_H +#define __CONFIGPAGE_H + +#include "Settings.h" +#include "resource.h" + +class ConfigPage +{ +public: + ConfigPage(std::tr1::shared_ptr<Settings> pSettings); + ~ConfigPage(); + BOOL DoInitDialog(HWND hwndDlg); + BOOL DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam); + bool UpdateSettings(HWND hwndDlg); + bool DoFontChooser(HWND hwndDlg); + BOOL DoColourChooser(COLORREF *colour, HWND hwndDlg); + void UpdateEnabledStates(HWND hwndDlg); + static INT_PTR CALLBACK ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam);... [truncated message content] |
From: <ir0...@us...> - 2009-11-16 15:39:40
|
Revision: 2718 http://emerge.svn.sourceforge.net/emerge/?rev=2718&view=rev Author: ir0nh34d Date: 2009-11-16 15:39:06 +0000 (Mon, 16 Nov 2009) Log Message: ----------- Re-implement ShellExecuteEx as 'all-else-fails' mechanism to play nice with UAC Modified Paths: -------------- trunk/Source/emergeLib/main.cpp Modified: trunk/Source/emergeLib/main.cpp =================================================================== --- trunk/Source/emergeLib/main.cpp 2009-11-15 23:51:50 UTC (rev 2717) +++ trunk/Source/emergeLib/main.cpp 2009-11-16 15:39:06 UTC (rev 2718) @@ -22,33 +22,33 @@ @note 1) For MSVC users, put the AggressiveOptimize.h header file (available from http://www.nopcode.com) in your 'include' directory. It cuts down on executable filesize. - @note 2) The ELExit code is based on a function from the LiteShell code base. +@note 2) The ELExit code is based on a function from the LiteShell code base. - @note 3) Using vectors for strings (taken from - http://www.codeguru.com/forum/archive/index.php/t-193852.html): - Whenever a function wants a constant pointer to a string (LPCSTR, LPWCSTR), you can - supply the string using the c_str() function. No problem since the buffer is not - modified by the function. +@note 3) Using vectors for strings (taken from +http://www.codeguru.com/forum/archive/index.php/t-193852.html): +Whenever a function wants a constant pointer to a string (LPCSTR, LPWCSTR), you can +supply the string using the c_str() function. No problem since the buffer is not +modified by the function. - However, if the function wants to modify the string contents (an LPSTR or LPWSTR), - you can't use c_str() since c_str() returns a pointer to an unmodifiable buffer. - Even so, a std::(w)string may not store its contents in a contiguous buffer, which - is what the function requires. Instead you use a vector<WCHAR> or a vector<char> to - store your characters. You must make sure that the vector is sized (via reserve or - resize)appropriately when it is constructed. +However, if the function wants to modify the string contents (an LPSTR or LPWSTR), +you can't use c_str() since c_str() returns a pointer to an unmodifiable buffer. +Even so, a std::(w)string may not store its contents in a contiguous buffer, which +is what the function requires. Instead you use a vector<WCHAR> or a vector<char> to +store your characters. You must make sure that the vector is sized (via reserve or +resize)appropriately when it is constructed. - A vector is guaranteed to have its contents stored in contiguous memory, and its - contents are modifiable, providing you have a sufficient number of elements in the - vector. You then pass the address of the first element of the vector -- this is no - different than passing the address of the first character. The advantage of this is - that you don't have to hard code your array sizes, since the constructor for a vector - takes any integer argument for the size. +A vector is guaranteed to have its contents stored in contiguous memory, and its +contents are modifiable, providing you have a sufficient number of elements in the +vector. You then pass the address of the first element of the vector -- this is no +different than passing the address of the first character. The advantage of this is +that you don't have to hard code your array sizes, since the constructor for a vector +takes any integer argument for the size. - This is a trick that you won't learn from Microsoft or MSDN -- how to use std::string, - vector<> and std::wstring with their API (or any function that requires pointers to - buffers). In the Scott Meyers book "Effective STL", he has a whole chapter on just this - topic alone. - */ +This is a trick that you won't learn from Microsoft or MSDN -- how to use std::string, +vector<> and std::wstring with their API (or any function that requires pointers to +buffers). In the Scott Meyers book "Effective STL", he has a whole chapter on just this +topic alone. +*/ #undef WINVER #define WINVER 0x0600 @@ -838,12 +838,12 @@ std::vector<char> tmpString; size_t tmpStringLength = WideCharToMultiByte(CP_UTF8, 0, wideString.c_str(), wideString.length(), NULL, 0, - NULL, NULL); + NULL, NULL); if (tmpStringLength != 0) { tmpString.reserve(tmpStringLength + 1); size_t writtenBytes = WideCharToMultiByte(CP_UTF8, 0, wideString.c_str(), wideString.length(), &tmpString.front(), - tmpStringLength, NULL, NULL); + tmpStringLength, NULL, NULL); if (writtenBytes != 0) { if (writtenBytes <= tmpStringLength) @@ -866,7 +866,7 @@ { tmpString.reserve(tmpStringLength + 1); size_t writtenBytes = MultiByteToWideChar(CP_UTF8, 0, narrowString.c_str(), narrowString.length(), &tmpString.front(), - tmpStringLength); + tmpStringLength); if (writtenBytes != 0) { if (writtenBytes <= tmpStringLength) @@ -1446,7 +1446,16 @@ return true; } - return false; + // Call ShellExecuteEx as an 'all-else-fails' mechanism since things like UAC escalation don't play nice + // with CreateProcess + sei.cbSize = sizeof(sei); + sei.fMask = SEE_MASK_FLAG_NO_UI|SEE_MASK_ASYNCOK|SEE_MASK_UNICODE; + sei.lpFile = program; + sei.lpParameters = arguments; + sei.lpDirectory = workingString.c_str(); + sei.nShow = nShow; + + return (ShellExecuteEx(&sei) == TRUE); } bool ELFileTypeCommand(WCHAR *document, WCHAR *docArgs, WCHAR *commandLine) @@ -2280,7 +2289,7 @@ if (user32DLL) { static lpfnMSSwitchToThisWindow MSSwitchToThisWindow = (lpfnMSSwitchToThisWindow)GetProcAddress( - user32DLL, "SwitchToThisWindow"); + user32DLL, "SwitchToThisWindow"); if (MSSwitchToThisWindow) { MSSwitchToThisWindow(wnd, TRUE); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-15 23:52:00
|
Revision: 2717 http://emerge.svn.sourceforge.net/emerge/?rev=2717&view=rev Author: ir0nh34d Date: 2009-11-15 23:51:50 +0000 (Sun, 15 Nov 2009) Log Message: ----------- Patch from szatanistainternista that implements direct accessing of VWM desktop Modified Paths: -------------- trunk/Source/emergeDesktop/ItemEditor.cpp trunk/Source/emergeDesktop/MenuEditor.cpp trunk/Source/emergeHotkeys/Actions.cpp trunk/Source/emergeLauncher/LaunchPage.cpp trunk/Source/emergeLib/emergeLib.h trunk/Source/emergeLib/main.cpp trunk/Source/emergeVWM/Applet.cpp Modified: trunk/Source/emergeDesktop/ItemEditor.cpp =================================================================== --- trunk/Source/emergeDesktop/ItemEditor.cpp 2009-11-13 14:59:07 UTC (rev 2716) +++ trunk/Source/emergeDesktop/ItemEditor.cpp 2009-11-15 23:51:50 UTC (rev 2717) @@ -1,647 +1,656 @@ -//---- -------------------------------------------------------------------------------------------------------- -// -// This file is part of Emerge Desktop. -// Copyright (C) 2004-2009 The Emerge Desktop Development Team -// -// Emerge Desktop is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3 of the License, or -// (at your option) any later version. -// -// Emerge Desktop is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// -//---- -------------------------------------------------------------------------------------------------------- - -#include "ItemEditor.h" - -BOOL CALLBACK ItemEditor::MenuDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - static ItemEditor *pItemEditor = NULL; - - switch (message) - { - case WM_INITDIALOG: - pItemEditor = reinterpret_cast<ItemEditor*>(lParam); - if (!pItemEditor) - break; - return pItemEditor->DoInitDialog(hwndDlg); - - case WM_COMMAND: - return pItemEditor->DoMenuCommand(hwndDlg, wParam, lParam); - } - - return FALSE; -} - -ItemEditor::ItemEditor(HINSTANCE hInstance, HWND mainWnd) -{ - (*this).hInstance = hInstance; - (*this).mainWnd = mainWnd; - section = NULL; - - InitCommonControls(); - - toolWnd = CreateWindowEx( - 0, - TOOLTIPS_CLASS, - NULL, - TTS_ALWAYSTIP|WS_POPUP|TTS_NOPREFIX, - CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, - NULL, - NULL, - hInstance, - NULL); - - if (toolWnd) - { - SendMessage(toolWnd, TTM_SETMAXTIPWIDTH, 0, 300); - SetWindowPos(toolWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | - SWP_NOACTIVATE); - } - - browseIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_BROWSE), IMAGE_ICON, 16, 16, 0); - - dialogVisible = false; -} - -ItemEditor::~ItemEditor() -{ - if (browseIcon) - DestroyIcon(browseIcon); - - DestroyWindow(toolWnd); -} - -int ItemEditor::Show(TiXmlElement *section, WCHAR *name, WCHAR *value, UINT type, WCHAR *workingDir) -{ - (*this).section = section; - wcscpy((*this).name, name); - wcscpy((*this).value, value); - (*this).type = type; - wcscpy((*this).workingDir, workingDir); - dialogVisible = true; - return (int)DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ITEMEDIT), mainWnd, (DLGPROC)MenuDlgProc, (LPARAM)this); -} - -BOOL ItemEditor::DoInitDialog(HWND hwndDlg) -{ - RECT rect; - int x, y; - TOOLINFO ti; - - ZeroMemory(&ti, sizeof(TOOLINFO)); - GetWindowRect(hwndDlg, &rect); - - HWND nameWnd = GetDlgItem(hwndDlg, IDC_ITEMNAME); - HWND nameTextWnd = GetDlgItem(hwndDlg, IDC_NAMETEXT); - HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); - HWND typeTextWnd = GetDlgItem(hwndDlg, IDC_TYPETEXT); - HWND valueWnd = GetDlgItem(hwndDlg, IDC_ITEMVALUE); - HWND valueTextWnd = GetDlgItem(hwndDlg, IDC_VALUETEXT); - HWND commandWnd = GetDlgItem(hwndDlg, IDC_ITEMCOMMAND); - HWND saveWnd = GetDlgItem(hwndDlg, IDC_SAVEITEM); - HWND abortWnd = GetDlgItem(hwndDlg, IDC_ABORTITEM); - HWND browseWnd = GetDlgItem(hwndDlg, IDC_ITEMBROWSE); - HWND dirWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIR); - HWND workingDirTextWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIRTEXT); - HWND dirBrowseWnd = GetDlgItem(hwndDlg, IDC_DIRBROWSE); - HWND specialFoldersWnd = GetDlgItem(hwndDlg, IDC_ITEMSPECIALFOLDERS); - - x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right - rect.left) / 2); - y = (GetSystemMetrics(SM_CYSCREEN) / 2) - ((rect.bottom - rect.top) / 2); - SetWindowPos(hwndDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE); - ELStealFocus(hwndDlg); - - PopulateCommands(commandWnd); - ShowWindow(commandWnd, false); - - PopulateSpecialFolders(specialFoldersWnd); - ShowWindow(specialFoldersWnd, false); - - if (browseIcon) - { - SendMessage(browseWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)browseIcon); - SendMessage(dirBrowseWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)browseIcon); - } - - ti.cbSize = TTTOOLINFOW_V2_SIZE; - ti.uFlags = TTF_SUBCLASS; - ti.hwnd = saveWnd; - ti.uId = (ULONG_PTR)saveWnd; - ti.lpszText = (WCHAR*)TEXT("Save Changes"); - GetClientRect(saveWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = abortWnd; - ti.uId = (ULONG_PTR)abortWnd; - ti.lpszText = (WCHAR*)TEXT("Discard Changes"); - GetClientRect(abortWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = browseWnd; - ti.uId = (ULONG_PTR)browseWnd; - ti.lpszText = (WCHAR*)TEXT(""); - GetClientRect(browseWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - SetDlgItemText(hwndDlg, IDC_ITEMNAME, name); - SetDlgItemText(hwndDlg, IDC_WORKINGDIR, workingDir); - - EnableWindow(nameWnd, true); - EnableWindow(nameTextWnd, true); - EnableWindow(typeWnd, true); - EnableWindow(typeTextWnd, true); - EnableWindow(valueWnd, false); - EnableWindow(valueTextWnd, false); - EnableWindow(saveWnd, false); - EnableWindow(abortWnd, false); - EnableWindow(commandWnd, false); - EnableWindow(browseWnd, false); - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - EnableWindow(specialFoldersWnd, false); - - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Separator")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Executable")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Internal Command")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("DateTime")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Special Folder")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Submenu")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Folder Menu")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Tasks Menu")); - SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Settings Menu")); - - SendMessage(typeWnd, CB_SETCURSEL, - (WPARAM)GetTypeValue(type), 0); - switch (type) - { - case 2: - SendMessage(commandWnd, CB_SETCURSEL, - SendMessage(commandWnd, - CB_FINDSTRINGEXACT, - (WPARAM)-1, - (LPARAM)value), - 0); - break; - case 4: - { - int folder = ELIsSpecialFolder(value); - if (ELGetSpecialFolder(folder, value)) - SendMessage(specialFoldersWnd, CB_SETCURSEL, - SendMessage(specialFoldersWnd, - CB_FINDSTRINGEXACT, - (WPARAM)-1, - (LPARAM)value), - 0); - } - break; - default: - SetDlgItemText(hwndDlg, IDC_ITEMVALUE, value); - break; - } - EnableFields(hwndDlg); - - return TRUE; -} - -void ItemEditor::PopulateCommands(HWND commandWnd) -{ - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("RightDeskMenu")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("MidDeskMenu")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Quit")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Run")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Shutdown")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Lock")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Hide")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Show")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMUp")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMDown")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMLeft")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMRight")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMGather")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("EmptyBin")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Logoff")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Reboot")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Halt")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Suspend")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Hibernate")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Disconnect")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("ShowDesktop")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VolumeUp")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VolumeDown")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VolumeMute")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("DesktopSettings")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("DesktopItemEditor")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("CoreLaunchEditor")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("CoreShellChanger")); - SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("CoreAbout")); -} - -void ItemEditor::PopulateSpecialFolders(HWND specialFoldersWnd) -{ - WCHAR tmp[MAX_PATH]; - - if (ELGetSpecialFolder(CSIDL_DRIVES, tmp)) - SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); - if (ELGetSpecialFolder(CSIDL_NETWORK, tmp)) - SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); - if (ELGetSpecialFolder(CSIDL_CONTROLS, tmp)) - SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); - if (ELGetSpecialFolder(CSIDL_BITBUCKET, tmp)) - SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); -} - -bool ItemEditor::GetVisible() -{ - return dialogVisible; -} - -BOOL ItemEditor::DoMenuCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) -{ - switch (LOWORD(wParam)) - { - case IDOK: - if (!DoSaveItem(hwndDlg)) - return FALSE; - case IDCANCEL: - dialogVisible = false; - EndDialog(hwndDlg, wParam); - return TRUE; - case IDC_ITEMTYPE: - if (HIWORD(wParam) == CBN_SELCHANGE) - return DoSelChange(hwndDlg, (HWND)lParam); - break; - case IDC_ITEMBROWSE: - return DoBrowseItem(hwndDlg, false); - case IDC_DIRBROWSE: - return DoBrowseItem(hwndDlg, true); - } - - return FALSE; -} - -bool ItemEditor::DoBrowseItem(HWND hwndDlg, bool workingDir) -{ - OPENFILENAME ofn; - BROWSEINFO bi; - HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); - WCHAR tmp[MAX_PATH], program[MAX_PATH], arguments[MAX_LINE_LENGTH]; - WCHAR initPath[MAX_PATH]; - UINT type = GetValueType((int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0)); - std::wstring workingPath; - - ZeroMemory(tmp, MAX_PATH); - - if ((type == 101) || workingDir) - { - ZeroMemory(&bi, sizeof(BROWSEINFO)); - bi.hwndOwner = hwndDlg; - bi.ulFlags = BIF_NEWDIALOGSTYLE; - bi.lpszTitle = TEXT("Select a folder:"); - - LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi); - - if (pItemIDList != NULL) - { - if (SHGetPathFromIDList(pItemIDList, tmp)) - { - IMalloc* pMalloc = NULL; - if (SUCCEEDED(SHGetMalloc(&pMalloc))) - { - pMalloc->Free(pItemIDList); - pMalloc->Release(); - } - - ELUnExpandVars(tmp); - if (workingDir) - SetDlgItemText(hwndDlg, IDC_WORKINGDIR, tmp); - else - SetDlgItemText(hwndDlg, IDC_ITEMVALUE, tmp); - - return true; - } - } - } - else - { - ZeroMemory(&ofn, sizeof(ofn)); - - ELGetCurrentPath(initPath); - - ofn.lpstrInitialDir = initPath; - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = hwndDlg; - ofn.lpstrFilter = TEXT("All Files (*.*)\0*.*\0"); - GetDlgItemText(hwndDlg, IDC_ITEMVALUE, tmp, MAX_PATH); - workingPath = tmp; - workingPath = ELExpandVars(workingPath); - if (ELParseCommand(workingPath.c_str(), program, arguments)) - wcscpy(tmp, program); - ofn.lpstrFile = tmp; - ofn.nMaxFile = MAX_PATH; - ofn.lpstrTitle = TEXT("Browse For File"); - ofn.lpstrDefExt = NULL; - ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_DONTADDTORECENT | OFN_NOCHANGEDIR | OFN_NODEREFERENCELINKS; - - if (GetOpenFileName(&ofn)) - { - ELUnExpandVars(tmp); - if (type == 4) - swprintf(tmp, TEXT("*%s"), PathFindFileName(tmp)); - - SetDlgItemText(hwndDlg, IDC_ITEMVALUE, tmp); - - return true; - } - } - - return false; -} - -int ItemEditor::GetTypeValue(UINT type) -{ - switch (type) - { - case 0: - return 0; - case 1: - return 1; - case 2: - return 2; - case 3: - return 3; - case 4: - return 4; - case 100: - return 5; - case 101: - return 6; - case 102: - return 7; - case 103: - return 8; - } - - return -1; -} - -bool ItemEditor::EnableFields(HWND hwndDlg) -{ - HWND nameWnd = GetDlgItem(hwndDlg, IDC_ITEMNAME); - HWND nameTextWnd = GetDlgItem(hwndDlg, IDC_NAMETEXT); - HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); - HWND typeTextWnd = GetDlgItem(hwndDlg, IDC_TYPETEXT); - HWND valueWnd = GetDlgItem(hwndDlg, IDC_ITEMVALUE); - HWND valueTextWnd = GetDlgItem(hwndDlg, IDC_VALUETEXT); - HWND commandWnd = GetDlgItem(hwndDlg, IDC_ITEMCOMMAND); - HWND browseWnd = GetDlgItem(hwndDlg, IDC_ITEMBROWSE); - HWND dirWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIR); - HWND workingDirTextWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIRTEXT); - HWND dirBrowseWnd = GetDlgItem(hwndDlg, IDC_DIRBROWSE); - HWND specialFoldersWnd = GetDlgItem(hwndDlg, IDC_ITEMSPECIALFOLDERS); - int index = (int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0); - - EnableWindow(typeWnd, true); - EnableWindow(typeTextWnd, true); - - switch (index) - { - case 0: - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - ShowWindow(valueWnd, true); - ShowWindow(browseWnd, true); - ShowWindow(commandWnd, false); - ShowWindow(specialFoldersWnd, false); - EnableWindow(nameWnd, false); - EnableWindow(nameTextWnd, false); - EnableWindow(valueWnd, false); - EnableWindow(valueTextWnd, false); - EnableWindow(browseWnd, false); - break; - case 2: - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - ShowWindow(valueWnd, false); - ShowWindow(browseWnd, false); - ShowWindow(specialFoldersWnd, false); - ShowWindow(commandWnd, true); - EnableWindow(commandWnd, true); - EnableWindow(nameWnd, true); - EnableWindow(nameTextWnd, true); - EnableWindow(valueTextWnd, true); - break; - case 3: - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - ShowWindow(valueWnd, true); - ShowWindow(browseWnd, true); - ShowWindow(commandWnd, false); - ShowWindow(specialFoldersWnd, false); - EnableWindow(valueWnd, true); - EnableWindow(valueTextWnd, true); - EnableWindow(browseWnd, false); - EnableWindow(nameWnd, false); - EnableWindow(nameTextWnd, true); - break; - case 4: - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - ShowWindow(valueWnd, false); - ShowWindow(browseWnd, false); - ShowWindow(commandWnd, false); - ShowWindow(specialFoldersWnd, true); - EnableWindow(specialFoldersWnd, true); - EnableWindow(nameWnd, true); - EnableWindow(nameTextWnd, true); - EnableWindow(valueTextWnd, true); - break; - case 5: - case 7: - case 8: - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - ShowWindow(valueWnd, true); - ShowWindow(browseWnd, true); - ShowWindow(commandWnd, false); - ShowWindow(specialFoldersWnd, false); - EnableWindow(valueWnd, false); - EnableWindow(valueTextWnd, false); - EnableWindow(browseWnd, false); - EnableWindow(nameWnd, true); - EnableWindow(nameTextWnd, true); - break; - case 1: - EnableWindow(dirWnd, true); - EnableWindow(workingDirTextWnd, true); - EnableWindow(dirBrowseWnd, true); - ShowWindow(valueWnd, true); - ShowWindow(browseWnd, true); - ShowWindow(commandWnd, false); - ShowWindow(specialFoldersWnd, false); - EnableWindow(nameWnd, true); - EnableWindow(nameTextWnd, true); - EnableWindow(valueWnd, true); - EnableWindow(valueTextWnd, true); - EnableWindow(browseWnd, true); - break; - case 6: - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - ShowWindow(valueWnd, true); - ShowWindow(browseWnd, true); - ShowWindow(commandWnd, false); - ShowWindow(specialFoldersWnd, false); - EnableWindow(nameWnd, true); - EnableWindow(nameTextWnd, true); - EnableWindow(valueWnd, true); - EnableWindow(valueTextWnd, true); - EnableWindow(browseWnd, true); - break; - default: - EnableWindow(dirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(dirBrowseWnd, false); - ShowWindow(valueWnd, true); - ShowWindow(browseWnd, true); - ShowWindow(commandWnd, false); - ShowWindow(specialFoldersWnd, false); - EnableWindow(nameWnd, true); - EnableWindow(nameTextWnd, true); - EnableWindow(valueWnd, false); - EnableWindow(valueTextWnd, false); - EnableWindow(browseWnd, false); - } - - return true; -} - -bool ItemEditor::DoSelChange(HWND hwndDlg, HWND typeWnd) -{ - HWND browseWnd = GetDlgItem(hwndDlg, IDC_ITEMBROWSE); - - SetDlgItemText(hwndDlg, IDC_ITEMVALUE, TEXT("\0")); - - SetTooltip(browseWnd, GetValueType((int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0))); - - return EnableFields(hwndDlg); -} - -UINT ItemEditor::GetValueType(int value) -{ - switch (value) - { - case 0: - return 0; - case 1: - return 1; - case 2: - return 2; - case 3: - return 3; - case 4: - return 4; - case 5: - return 100; - case 6: - return 101; - case 7: - return 102; - case 8: - return 103; - } - - return 0; -} - -void ItemEditor::SetTooltip(HWND browseWnd, UINT type) -{ - TOOLINFO ti; - ZeroMemory(&ti, sizeof(TOOLINFO)); - - ti.cbSize = TTTOOLINFOW_V2_SIZE; - ti.hwnd = browseWnd; - ti.uId = (ULONG_PTR)browseWnd; - - SendMessage(toolWnd, TTM_GETTOOLINFO, 0,(LPARAM) (LPTOOLINFO) &ti); - - switch (type) - { - case 1: - ti.lpszText = (WCHAR*)TEXT("Browse for a file"); - break; - case 4: - ti.lpszText = (WCHAR*)TEXT("Browse for an ELScript"); - break; - case 101: - ti.lpszText = (WCHAR*)TEXT("Browse for a directory"); - } - - SendMessage(toolWnd, TTM_SETTOOLINFO, 0, (LPARAM)(LPTOOLINFO)&ti); -} - -bool ItemEditor::DoSaveItem(HWND hwndDlg) -{ - HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); - HWND nameWnd = GetDlgItem(hwndDlg, IDC_ITEMNAME); - WCHAR name[MAX_LINE_LENGTH], value[MAX_LINE_LENGTH], workingDir[MAX_LINE_LENGTH], tmp[MAX_LINE_LENGTH]; - ZeroMemory(name, MAX_LINE_LENGTH); - ZeroMemory(workingDir, MAX_LINE_LENGTH); - ZeroMemory(tmp, MAX_LINE_LENGTH); - int type; - - if (IsWindowEnabled(nameWnd)) - { - GetDlgItemText(hwndDlg, IDC_ITEMNAME, name, MAX_LINE_LENGTH); - if (wcslen(name) == 0) - { - ELMessageBox(hwndDlg, (WCHAR*)TEXT("Name cannot be empty"), (WCHAR*)TEXT("emergeDesktop"), - ELMB_OK|ELMB_ICONERROR|ELMB_MODAL); - return false; - } - } - - type = GetValueType((int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0)); - switch (type) - { - case 2: - GetDlgItemText(hwndDlg, IDC_ITEMCOMMAND, value, MAX_LINE_LENGTH); - break; - case 4: - GetDlgItemText(hwndDlg, IDC_ITEMSPECIALFOLDERS, tmp, MAX_LINE_LENGTH); - if (!ELSpecialFolderValue(tmp, value)) - wcscpy(value, TEXT("")); - break; - default: - GetDlgItemText(hwndDlg, IDC_ITEMVALUE, value, MAX_LINE_LENGTH); - break; - } - GetDlgItemText(hwndDlg, IDC_WORKINGDIR, workingDir, MAX_LINE_LENGTH); - - ELWriteXMLStringValue(section, (WCHAR*)TEXT("Name"), name); - ELWriteXMLIntValue(section, (WCHAR*)TEXT("Type"), type); - if (wcslen(value) > 0) - ELWriteXMLStringValue(section, (WCHAR*)TEXT("Value"), value); - if (wcslen(workingDir) > 0) - ELWriteXMLStringValue(section, (WCHAR*)TEXT("WorkingDir"), workingDir); - - TiXmlDocument *configXML = ELGetXMLConfig(section); - if (configXML) - return ELWriteXMLConfig(configXML); - - return false; -} +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include "ItemEditor.h" + +BOOL CALLBACK ItemEditor::MenuDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static ItemEditor *pItemEditor = NULL; + + switch (message) + { + case WM_INITDIALOG: + pItemEditor = reinterpret_cast<ItemEditor*>(lParam); + if (!pItemEditor) + break; + return pItemEditor->DoInitDialog(hwndDlg); + + case WM_COMMAND: + return pItemEditor->DoMenuCommand(hwndDlg, wParam, lParam); + } + + return FALSE; +} + +ItemEditor::ItemEditor(HINSTANCE hInstance, HWND mainWnd) +{ + (*this).hInstance = hInstance; + (*this).mainWnd = mainWnd; + section = NULL; + + InitCommonControls(); + + toolWnd = CreateWindowEx( + 0, + TOOLTIPS_CLASS, + NULL, + TTS_ALWAYSTIP|WS_POPUP|TTS_NOPREFIX, + CW_USEDEFAULT, CW_USEDEFAULT, + CW_USEDEFAULT, CW_USEDEFAULT, + NULL, + NULL, + hInstance, + NULL); + + if (toolWnd) + { + SendMessage(toolWnd, TTM_SETMAXTIPWIDTH, 0, 300); + SetWindowPos(toolWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | + SWP_NOACTIVATE); + } + + browseIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_BROWSE), IMAGE_ICON, 16, 16, 0); + + dialogVisible = false; +} + +ItemEditor::~ItemEditor() +{ + if (browseIcon) + DestroyIcon(browseIcon); + + DestroyWindow(toolWnd); +} + +int ItemEditor::Show(TiXmlElement *section, WCHAR *name, WCHAR *value, UINT type, WCHAR *workingDir) +{ + (*this).section = section; + wcscpy((*this).name, name); + wcscpy((*this).value, value); + (*this).type = type; + wcscpy((*this).workingDir, workingDir); + dialogVisible = true; + return (int)DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ITEMEDIT), mainWnd, (DLGPROC)MenuDlgProc, (LPARAM)this); +} + +BOOL ItemEditor::DoInitDialog(HWND hwndDlg) +{ + RECT rect; + int x, y; + TOOLINFO ti; + + ZeroMemory(&ti, sizeof(TOOLINFO)); + GetWindowRect(hwndDlg, &rect); + + HWND nameWnd = GetDlgItem(hwndDlg, IDC_ITEMNAME); + HWND nameTextWnd = GetDlgItem(hwndDlg, IDC_NAMETEXT); + HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); + HWND typeTextWnd = GetDlgItem(hwndDlg, IDC_TYPETEXT); + HWND valueWnd = GetDlgItem(hwndDlg, IDC_ITEMVALUE); + HWND valueTextWnd = GetDlgItem(hwndDlg, IDC_VALUETEXT); + HWND commandWnd = GetDlgItem(hwndDlg, IDC_ITEMCOMMAND); + HWND saveWnd = GetDlgItem(hwndDlg, IDC_SAVEITEM); + HWND abortWnd = GetDlgItem(hwndDlg, IDC_ABORTITEM); + HWND browseWnd = GetDlgItem(hwndDlg, IDC_ITEMBROWSE); + HWND dirWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIR); + HWND workingDirTextWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIRTEXT); + HWND dirBrowseWnd = GetDlgItem(hwndDlg, IDC_DIRBROWSE); + HWND specialFoldersWnd = GetDlgItem(hwndDlg, IDC_ITEMSPECIALFOLDERS); + + x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right - rect.left) / 2); + y = (GetSystemMetrics(SM_CYSCREEN) / 2) - ((rect.bottom - rect.top) / 2); + SetWindowPos(hwndDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE); + ELStealFocus(hwndDlg); + + PopulateCommands(commandWnd); + ShowWindow(commandWnd, false); + + PopulateSpecialFolders(specialFoldersWnd); + ShowWindow(specialFoldersWnd, false); + + if (browseIcon) + { + SendMessage(browseWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)browseIcon); + SendMessage(dirBrowseWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)browseIcon); + } + + ti.cbSize = TTTOOLINFOW_V2_SIZE; + ti.uFlags = TTF_SUBCLASS; + ti.hwnd = saveWnd; + ti.uId = (ULONG_PTR)saveWnd; + ti.lpszText = (WCHAR*)TEXT("Save Changes"); + GetClientRect(saveWnd, &ti.rect); + SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); + + ti.hwnd = abortWnd; + ti.uId = (ULONG_PTR)abortWnd; + ti.lpszText = (WCHAR*)TEXT("Discard Changes"); + GetClientRect(abortWnd, &ti.rect); + SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); + + ti.hwnd = browseWnd; + ti.uId = (ULONG_PTR)browseWnd; + ti.lpszText = (WCHAR*)TEXT(""); + GetClientRect(browseWnd, &ti.rect); + SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); + + SetDlgItemText(hwndDlg, IDC_ITEMNAME, name); + SetDlgItemText(hwndDlg, IDC_WORKINGDIR, workingDir); + + EnableWindow(nameWnd, true); + EnableWindow(nameTextWnd, true); + EnableWindow(typeWnd, true); + EnableWindow(typeTextWnd, true); + EnableWindow(valueWnd, false); + EnableWindow(valueTextWnd, false); + EnableWindow(saveWnd, false); + EnableWindow(abortWnd, false); + EnableWindow(commandWnd, false); + EnableWindow(browseWnd, false); + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + EnableWindow(specialFoldersWnd, false); + + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Separator")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Executable")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Internal Command")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("DateTime")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Special Folder")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Submenu")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Folder Menu")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Tasks Menu")); + SendMessage(typeWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Settings Menu")); + + SendMessage(typeWnd, CB_SETCURSEL, + (WPARAM)GetTypeValue(type), 0); + switch (type) + { + case 2: + SendMessage(commandWnd, CB_SETCURSEL, + SendMessage(commandWnd, + CB_FINDSTRINGEXACT, + (WPARAM)-1, + (LPARAM)value), + 0); + break; + case 4: + { + int folder = ELIsSpecialFolder(value); + if (ELGetSpecialFolder(folder, value)) + SendMessage(specialFoldersWnd, CB_SETCURSEL, + SendMessage(specialFoldersWnd, + CB_FINDSTRINGEXACT, + (WPARAM)-1, + (LPARAM)value), + 0); + } + break; + default: + SetDlgItemText(hwndDlg, IDC_ITEMVALUE, value); + break; + } + EnableFields(hwndDlg); + + return TRUE; +} + +void ItemEditor::PopulateCommands(HWND commandWnd) +{ + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("RightDeskMenu")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("MidDeskMenu")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Quit")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Run")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Shutdown")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Lock")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Hide")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Show")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_1")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_2")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_3")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_4")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_5")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_6")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_7")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_8")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_9")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMUp")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMDown")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMLeft")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMRight")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMGather")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("EmptyBin")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Logoff")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Reboot")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Halt")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Suspend")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Hibernate")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Disconnect")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("ShowDesktop")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VolumeUp")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VolumeDown")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VolumeMute")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("DesktopSettings")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("DesktopItemEditor")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("CoreLaunchEditor")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("CoreShellChanger")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("CoreAbout")); +} + +void ItemEditor::PopulateSpecialFolders(HWND specialFoldersWnd) +{ + WCHAR tmp[MAX_PATH]; + + if (ELGetSpecialFolder(CSIDL_DRIVES, tmp)) + SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); + if (ELGetSpecialFolder(CSIDL_NETWORK, tmp)) + SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); + if (ELGetSpecialFolder(CSIDL_CONTROLS, tmp)) + SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); + if (ELGetSpecialFolder(CSIDL_BITBUCKET, tmp)) + SendMessage(specialFoldersWnd, CB_ADDSTRING, 0, (LPARAM)tmp); +} + +bool ItemEditor::GetVisible() +{ + return dialogVisible; +} + +BOOL ItemEditor::DoMenuCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) +{ + switch (LOWORD(wParam)) + { + case IDOK: + if (!DoSaveItem(hwndDlg)) + return FALSE; + case IDCANCEL: + dialogVisible = false; + EndDialog(hwndDlg, wParam); + return TRUE; + case IDC_ITEMTYPE: + if (HIWORD(wParam) == CBN_SELCHANGE) + return DoSelChange(hwndDlg, (HWND)lParam); + break; + case IDC_ITEMBROWSE: + return DoBrowseItem(hwndDlg, false); + case IDC_DIRBROWSE: + return DoBrowseItem(hwndDlg, true); + } + + return FALSE; +} + +bool ItemEditor::DoBrowseItem(HWND hwndDlg, bool workingDir) +{ + OPENFILENAME ofn; + BROWSEINFO bi; + HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); + WCHAR tmp[MAX_PATH], program[MAX_PATH], arguments[MAX_LINE_LENGTH]; + WCHAR initPath[MAX_PATH]; + UINT type = GetValueType((int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0)); + std::wstring workingPath; + + ZeroMemory(tmp, MAX_PATH); + + if ((type == 101) || workingDir) + { + ZeroMemory(&bi, sizeof(BROWSEINFO)); + bi.hwndOwner = hwndDlg; + bi.ulFlags = BIF_NEWDIALOGSTYLE; + bi.lpszTitle = TEXT("Select a folder:"); + + LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi); + + if (pItemIDList != NULL) + { + if (SHGetPathFromIDList(pItemIDList, tmp)) + { + IMalloc* pMalloc = NULL; + if (SUCCEEDED(SHGetMalloc(&pMalloc))) + { + pMalloc->Free(pItemIDList); + pMalloc->Release(); + } + + ELUnExpandVars(tmp); + if (workingDir) + SetDlgItemText(hwndDlg, IDC_WORKINGDIR, tmp); + else + SetDlgItemText(hwndDlg, IDC_ITEMVALUE, tmp); + + return true; + } + } + } + else + { + ZeroMemory(&ofn, sizeof(ofn)); + + ELGetCurrentPath(initPath); + + ofn.lpstrInitialDir = initPath; + ofn.lStructSize = sizeof(ofn); + ofn.hwndOwner = hwndDlg; + ofn.lpstrFilter = TEXT("All Files (*.*)\0*.*\0"); + GetDlgItemText(hwndDlg, IDC_ITEMVALUE, tmp, MAX_PATH); + workingPath = tmp; + workingPath = ELExpandVars(workingPath); + if (ELParseCommand(workingPath.c_str(), program, arguments)) + wcscpy(tmp, program); + ofn.lpstrFile = tmp; + ofn.nMaxFile = MAX_PATH; + ofn.lpstrTitle = TEXT("Browse For File"); + ofn.lpstrDefExt = NULL; + ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_DONTADDTORECENT | OFN_NOCHANGEDIR | OFN_NODEREFERENCELINKS; + + if (GetOpenFileName(&ofn)) + { + ELUnExpandVars(tmp); + if (type == 4) + swprintf(tmp, TEXT("*%s"), PathFindFileName(tmp)); + + SetDlgItemText(hwndDlg, IDC_ITEMVALUE, tmp); + + return true; + } + } + + return false; +} + +int ItemEditor::GetTypeValue(UINT type) +{ + switch (type) + { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + case 3: + return 3; + case 4: + return 4; + case 100: + return 5; + case 101: + return 6; + case 102: + return 7; + case 103: + return 8; + } + + return -1; +} + +bool ItemEditor::EnableFields(HWND hwndDlg) +{ + HWND nameWnd = GetDlgItem(hwndDlg, IDC_ITEMNAME); + HWND nameTextWnd = GetDlgItem(hwndDlg, IDC_NAMETEXT); + HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); + HWND typeTextWnd = GetDlgItem(hwndDlg, IDC_TYPETEXT); + HWND valueWnd = GetDlgItem(hwndDlg, IDC_ITEMVALUE); + HWND valueTextWnd = GetDlgItem(hwndDlg, IDC_VALUETEXT); + HWND commandWnd = GetDlgItem(hwndDlg, IDC_ITEMCOMMAND); + HWND browseWnd = GetDlgItem(hwndDlg, IDC_ITEMBROWSE); + HWND dirWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIR); + HWND workingDirTextWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIRTEXT); + HWND dirBrowseWnd = GetDlgItem(hwndDlg, IDC_DIRBROWSE); + HWND specialFoldersWnd = GetDlgItem(hwndDlg, IDC_ITEMSPECIALFOLDERS); + int index = (int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0); + + EnableWindow(typeWnd, true); + EnableWindow(typeTextWnd, true); + + switch (index) + { + case 0: + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + ShowWindow(valueWnd, true); + ShowWindow(browseWnd, true); + ShowWindow(commandWnd, false); + ShowWindow(specialFoldersWnd, false); + EnableWindow(nameWnd, false); + EnableWindow(nameTextWnd, false); + EnableWindow(valueWnd, false); + EnableWindow(valueTextWnd, false); + EnableWindow(browseWnd, false); + break; + case 2: + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + ShowWindow(valueWnd, false); + ShowWindow(browseWnd, false); + ShowWindow(specialFoldersWnd, false); + ShowWindow(commandWnd, true); + EnableWindow(commandWnd, true); + EnableWindow(nameWnd, true); + EnableWindow(nameTextWnd, true); + EnableWindow(valueTextWnd, true); + break; + case 3: + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + ShowWindow(valueWnd, true); + ShowWindow(browseWnd, true); + ShowWindow(commandWnd, false); + ShowWindow(specialFoldersWnd, false); + EnableWindow(valueWnd, true); + EnableWindow(valueTextWnd, true); + EnableWindow(browseWnd, false); + EnableWindow(nameWnd, false); + EnableWindow(nameTextWnd, true); + break; + case 4: + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + ShowWindow(valueWnd, false); + ShowWindow(browseWnd, false); + ShowWindow(commandWnd, false); + ShowWindow(specialFoldersWnd, true); + EnableWindow(specialFoldersWnd, true); + EnableWindow(nameWnd, true); + EnableWindow(nameTextWnd, true); + EnableWindow(valueTextWnd, true); + break; + case 5: + case 7: + case 8: + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + ShowWindow(valueWnd, true); + ShowWindow(browseWnd, true); + ShowWindow(commandWnd, false); + ShowWindow(specialFoldersWnd, false); + EnableWindow(valueWnd, false); + EnableWindow(valueTextWnd, false); + EnableWindow(browseWnd, false); + EnableWindow(nameWnd, true); + EnableWindow(nameTextWnd, true); + break; + case 1: + EnableWindow(dirWnd, true); + EnableWindow(workingDirTextWnd, true); + EnableWindow(dirBrowseWnd, true); + ShowWindow(valueWnd, true); + ShowWindow(browseWnd, true); + ShowWindow(commandWnd, false); + ShowWindow(specialFoldersWnd, false); + EnableWindow(nameWnd, true); + EnableWindow(nameTextWnd, true); + EnableWindow(valueWnd, true); + EnableWindow(valueTextWnd, true); + EnableWindow(browseWnd, true); + break; + case 6: + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + ShowWindow(valueWnd, true); + ShowWindow(browseWnd, true); + ShowWindow(commandWnd, false); + ShowWindow(specialFoldersWnd, false); + EnableWindow(nameWnd, true); + EnableWindow(nameTextWnd, true); + EnableWindow(valueWnd, true); + EnableWindow(valueTextWnd, true); + EnableWindow(browseWnd, true); + break; + default: + EnableWindow(dirWnd, false); + EnableWindow(workingDirTextWnd, false); + EnableWindow(dirBrowseWnd, false); + ShowWindow(valueWnd, true); + ShowWindow(browseWnd, true); + ShowWindow(commandWnd, false); + ShowWindow(specialFoldersWnd, false); + EnableWindow(nameWnd, true); + EnableWindow(nameTextWnd, true); + EnableWindow(valueWnd, false); + EnableWindow(valueTextWnd, false); + EnableWindow(browseWnd, false); + } + + return true; +} + +bool ItemEditor::DoSelChange(HWND hwndDlg, HWND typeWnd) +{ + HWND browseWnd = GetDlgItem(hwndDlg, IDC_ITEMBROWSE); + + SetDlgItemText(hwndDlg, IDC_ITEMVALUE, TEXT("\0")); + + SetTooltip(browseWnd, GetValueType((int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0))); + + return EnableFields(hwndDlg); +} + +UINT ItemEditor::GetValueType(int value) +{ + switch (value) + { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + case 3: + return 3; + case 4: + return 4; + case 5: + return 100; + case 6: + return 101; + case 7: + return 102; + case 8: + return 103; + } + + return 0; +} + +void ItemEditor::SetTooltip(HWND browseWnd, UINT type) +{ + TOOLINFO ti; + ZeroMemory(&ti, sizeof(TOOLINFO)); + + ti.cbSize = TTTOOLINFOW_V2_SIZE; + ti.hwnd = browseWnd; + ti.uId = (ULONG_PTR)browseWnd; + + SendMessage(toolWnd, TTM_GETTOOLINFO, 0,(LPARAM) (LPTOOLINFO) &ti); + + switch (type) + { + case 1: + ti.lpszText = (WCHAR*)TEXT("Browse for a file"); + break; + case 4: + ti.lpszText = (WCHAR*)TEXT("Browse for an ELScript"); + break; + case 101: + ti.lpszText = (WCHAR*)TEXT("Browse for a directory"); + } + + SendMessage(toolWnd, TTM_SETTOOLINFO, 0, (LPARAM)(LPTOOLINFO)&ti); +} + +bool ItemEditor::DoSaveItem(HWND hwndDlg) +{ + HWND typeWnd = GetDlgItem(hwndDlg, IDC_ITEMTYPE); + HWND nameWnd = GetDlgItem(hwndDlg, IDC_ITEMNAME); + WCHAR name[MAX_LINE_LENGTH], value[MAX_LINE_LENGTH], workingDir[MAX_LINE_LENGTH], tmp[MAX_LINE_LENGTH]; + ZeroMemory(name, MAX_LINE_LENGTH); + ZeroMemory(workingDir, MAX_LINE_LENGTH); + ZeroMemory(tmp, MAX_LINE_LENGTH); + int type; + + if (IsWindowEnabled(nameWnd)) + { + GetDlgItemText(hwndDlg, IDC_ITEMNAME, name, MAX_LINE_LENGTH); + if (wcslen(name) == 0) + { + ELMessageBox(hwndDlg, (WCHAR*)TEXT("Name cannot be empty"), (WCHAR*)TEXT("emergeDesktop"), + ELMB_OK|ELMB_ICONERROR|ELMB_MODAL); + return false; + } + } + + type = GetValueType((int)SendMessage(typeWnd, CB_GETCURSEL, 0, 0)); + switch (type) + { + case 2: + GetDlgItemText(hwndDlg, IDC_ITEMCOMMAND, value, MAX_LINE_LENGTH); + break; + case 4: + GetDlgItemText(hwndDlg, IDC_ITEMSPECIALFOLDERS, tmp, MAX_LINE_LENGTH); + if (!ELSpecialFolderValue(tmp, value)) + wcscpy(value, TEXT("")); + break; + default: + GetDlgItemText(hwndDlg, IDC_ITEMVALUE, value, MAX_LINE_LENGTH); + break; + } + GetDlgItemText(hwndDlg, IDC_WORKINGDIR, workingDir, MAX_LINE_LENGTH); + + ELWriteXMLStringValue(section, (WCHAR*)TEXT("Name"), name); + ELWriteXMLIntValue(section, (WCHAR*)TEXT("Type"), type); + if (wcslen(value) > 0) + ELWriteXMLStringValue(section, (WCHAR*)TEXT("Value"), value); + if (wcslen(workingDir) > 0) + ELWriteXMLStringValue(section, (WCHAR*)TEXT("WorkingDir"), workingDir); + + TiXmlDocument *configXML = ELGetXMLConfig(section); + if (configXML) + return ELWriteXMLConfig(configXML); + + return false; +} Modified: trunk/Source/emergeDesktop/MenuEditor.cpp =================================================================== --- trunk/Source/emergeDesktop/MenuEditor.cpp 2009-11-13 14:59:07 UTC (rev 2716) +++ trunk/Source/emergeDesktop/MenuEditor.cpp 2009-11-15 23:51:50 UTC (rev 2717) @@ -258,6 +258,15 @@ SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Lock")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Hide")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Show")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_1")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_2")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_3")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_4")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_5")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_6")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_7")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_8")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_9")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMUp")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMDown")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMLeft")); Modified: trunk/Source/emergeHotkeys/Actions.cpp =================================================================== --- trunk/Source/emergeHotkeys/Actions.cpp 2009-11-13 14:59:07 UTC (rev 2716) +++ trunk/Source/emergeHotkeys/Actions.cpp 2009-11-15 23:51:50 UTC (rev 2717) @@ -939,6 +939,15 @@ SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Lock")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Hide")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Show")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_1")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_2")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_3")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_4")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_5")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_6")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_7")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_8")); + SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWM_9")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMUp")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMDown")); SendMessage(commandWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMLeft")); Modified: trunk/Source/emergeLauncher/LaunchPage.cpp =================================================================== --- trunk/Source/emergeLauncher/LaunchPage.cpp 2009-11-13 14:59:07 UTC (rev 2716) +++ trunk/Source/emergeLauncher/LaunchPage.cpp 2009-11-15 23:51:50 UTC (rev 2717) @@ -1,971 +1,980 @@ -// vim: tags+=../emergeLib/tags -//---- -------------------------------------------------------------------------------------------------------- -// -// This file is part of Emerge Desktop. -// Copyright (C) 2004-2009 The Emerge Desktop Development Team -// -// Emerge Desktop is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 3 of the License, or -// (at your option) any later version. -// -// Emerge Desktop is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// -//---- -------------------------------------------------------------------------------------------------------- - -#include "LaunchPage.h" - -INT_PTR CALLBACK LaunchPage::LaunchPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - static LaunchPage *pLaunchPage = NULL; - PROPSHEETPAGE *psp; - - switch (message) - { - case WM_INITDIALOG: - psp = (PROPSHEETPAGE*)lParam; - pLaunchPage = reinterpret_cast<LaunchPage*>(psp->lParam); - if (!pLaunchPage) - break; - return pLaunchPage->DoInitDialog(hwndDlg); - - case WM_COMMAND: - return pLaunchPage->DoCommand(hwndDlg, wParam, lParam); - - case WM_NOTIFY: - return pLaunchPage->DoNotify(hwndDlg, lParam); - } - - return FALSE; -} - -LaunchPage::LaunchPage(HINSTANCE hInstance, std::tr1::shared_ptr<Settings> pSettings) -{ - this->hInstance = hInstance; - this->pSettings = pSettings; - itemMoved = false; - edit = false; - - InitCommonControls(); - - toolWnd = CreateWindowEx( - 0, - TOOLTIPS_CLASS, - NULL, - TTS_ALWAYSTIP|WS_POPUP|TTS_NOPREFIX, - CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, - NULL, - NULL, - hInstance, - NULL); - - if (toolWnd) - { - SendMessage(toolWnd, TTM_SETMAXTIPWIDTH, 0, 300); - SetWindowPos(toolWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | - SWP_NOACTIVATE); - } - - addIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_ADD), IMAGE_ICON, 16, 16, 0); - editIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_EDIT), IMAGE_ICON, 16, 16, 0); - delIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_DEL), IMAGE_ICON, 16, 16, 0); - upIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_UP), IMAGE_ICON, 16, 16, 0); - downIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_DOWN), IMAGE_ICON, 16, 16, 0); - saveIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_SAVE), IMAGE_ICON, 16, 16, 0); - abortIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_ABORT), IMAGE_ICON, 16, 16, 0); - browseIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_BROWSE), IMAGE_ICON, 16, 16, 0); -} - -LaunchPage::~LaunchPage() -{ - if (addIcon) - DestroyIcon(addIcon); - if (editIcon) - DestroyIcon(editIcon); - if (delIcon) - DestroyIcon(delIcon); - if (upIcon) - DestroyIcon(upIcon); - if (downIcon) - DestroyIcon(downIcon); - if (saveIcon) - DestroyIcon(saveIcon); - if (abortIcon) - DestroyIcon(abortIcon); - if (browseIcon) - DestroyIcon(browseIcon); -} - -bool LaunchPage::CheckSaveCount(HWND hwndDlg) -{ - if ((saveCount != 0) || (deleteCount != 0)) - { - if (ELMessageBox(hwndDlg, - (WCHAR*)TEXT("All currently modifications will be lost. To save and exit press OK.\n\nDo you wish to continue?"), - (WCHAR*)TEXT("emergeLauncher"), - ELMB_YESNO|ELMB_ICONQUESTION|ELMB_MODAL) == IDYES) - return true; - else - return false; - } - - return true; -} - -bool LaunchPage::CheckFields(HWND hwndDlg) -{ - WCHAR tmp[MAX_LINE_LENGTH]; - HWND commandWnd = GetDlgItem(hwndDlg, IDC_COMMAND); - HWND internalWnd = GetDlgItem(hwndDlg, IDC_INTERNAL); - - if ((!IsWindowEnabled(commandWnd)) && (!IsWindowEnabled(internalWnd))) - return true; - - if ((GetDlgItemText(hwndDlg, IDC_COMMAND, tmp, MAX_LINE_LENGTH) != 0) || - (GetDlgItemText(hwndDlg, IDC_INTERNAL, tmp, MAX_LINE_LENGTH) != 0)) - { - if (ELMessageBox(hwndDlg, - (WCHAR*)TEXT("The current command will be lost.\n\nDo you wish to continue?"), - (WCHAR*)TEXT("emergeLauncher"), - ELMB_YESNO|ELMB_ICONQUESTION|ELMB_MODAL) == IDYES) - return true; - else - return false; - } - - return true; -} - -BOOL LaunchPage::DoInitDialog(HWND hwndDlg) -{ - int iRet; - LVCOLUMN lvCol; - TOOLINFO ti; - ZeroMemory(&ti, sizeof(TOOLINFO)); - DWORD dwRet; - - saveCount = 0; - deleteCount = 0; - - HWND listWnd = GetDlgItem(hwndDlg, IDC_APPLIST); - HWND commandWnd = GetDlgItem(hwndDlg, IDC_COMMAND); - HWND iconWnd = GetDlgItem(hwndDlg, IDC_ICONPATH); - HWND iconTextWnd = GetDlgItem(hwndDlg, IDC_ICONTEXT); - HWND tipWnd = GetDlgItem(hwndDlg, IDC_TIP); - HWND tipTextWnd = GetDlgItem(hwndDlg, IDC_TIPTEXT); - HWND addWnd = GetDlgItem(hwndDlg, IDC_ADDITEM); - HWND editWnd = GetDlgItem(hwndDlg, IDC_EDITITEM); - HWND delWnd = GetDlgItem(hwndDlg, IDC_DELITEM); - HWND upWnd = GetDlgItem(hwndDlg, IDC_UPITEM); - HWND downWnd = GetDlgItem(hwndDlg, IDC_DOWNITEM); - HWND saveWnd = GetDlgItem(hwndDlg, IDC_SAVEITEM); - HWND abortWnd = GetDlgItem(hwndDlg, IDC_ABORTITEM); - HWND browseIconWnd = GetDlgItem(hwndDlg, IDC_BROWSEICON); - HWND browseCommandWnd = GetDlgItem(hwndDlg, IDC_BROWSECOMMAND); - HWND browseWorkingDirWnd = GetDlgItem(hwndDlg, IDC_BROWSEWORKINGDIR); - HWND workingDirWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIR); - HWND workingDirTextWnd = GetDlgItem(hwndDlg, IDC_WORKINGDIRTEXT); - HWND exeButtonWnd = GetDlgItem(hwndDlg, IDC_EXEBUTTON); - HWND comButtonWnd = GetDlgItem(hwndDlg, IDC_COMBUTTON); - HWND internalWnd = GetDlgItem(hwndDlg, IDC_INTERNAL); - - if (addIcon) - SendMessage(addWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)addIcon); - if (editIcon) - SendMessage(editWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)editIcon); - if (delIcon) - SendMessage(delWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)delIcon); - if (upIcon) - SendMessage(upWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)upIcon); - if (downIcon) - SendMessage(downWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)downIcon); - if (saveIcon) - SendMessage(saveWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)saveIcon); - if (abortIcon) - SendMessage(abortWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)abortIcon); - if (browseIcon) - { - SendMessage(browseCommandWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)browseIcon); - SendMessage(browseIconWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)browseIcon); - SendMessage(browseWorkingDirWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)browseIcon); - } - - lvCol.mask = LVCF_TEXT | LVCF_WIDTH; - lvCol.pszText = (WCHAR*)TEXT("Command"); - lvCol.cx = 160; - iRet = ListView_InsertColumn(listWnd, 0, &lvCol); - - lvCol.pszText = (WCHAR*)TEXT("Working Directory"); - lvCol.cx = 160; - iRet = ListView_InsertColumn(listWnd, 1, &lvCol); - - lvCol.pszText = (WCHAR*)TEXT("Icon"); - lvCol.cx = 100; - iRet = ListView_InsertColumn(listWnd, 2, &lvCol); - - lvCol.pszText = (WCHAR*)TEXT("Tip"); - lvCol.cx = 160; - iRet = ListView_InsertColumn(listWnd, 3, &lvCol); - - dwRet = ListView_SetExtendedListViewStyle(listWnd, LVS_EX_FULLROWSELECT); - - PopulateList(listWnd); - PopulateInternal(internalWnd); - - EnableWindow(commandWnd, false); - EnableWindow(iconWnd, false); - EnableWindow(iconTextWnd, false); - EnableWindow(tipWnd, false); - EnableWindow(tipTextWnd, false); - EnableWindow(saveWnd, false); - EnableWindow(abortWnd, false); - EnableWindow(browseIconWnd, false); - EnableWindow(browseCommandWnd, false); - EnableWindow(editWnd, false); - EnableWindow(delWnd, false); - EnableWindow(upWnd, false); - EnableWindow(downWnd, false); - EnableWindow(workingDirWnd, false); - EnableWindow(workingDirTextWnd, false); - EnableWindow(browseWorkingDirWnd, false); - EnableWindow(exeButtonWnd, false); - EnableWindow(comButtonWnd, false); - EnableWindow(internalWnd, false); - - ti.cbSize = TTTOOLINFOW_V2_SIZE; - ti.uFlags = TTF_SUBCLASS; - ti.hwnd = addWnd; - ti.uId = (ULONG_PTR)addWnd; - ti.hinst = hInstance; - ti.lpszText = (WCHAR*)TEXT("Add Item"); - GetClientRect(addWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = delWnd; - ti.uId = (ULONG_PTR)delWnd; - ti.lpszText = (WCHAR*)TEXT("Delete Item"); - GetClientRect(delWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = editWnd; - ti.uId = (ULONG_PTR)editWnd; - ti.lpszText = (WCHAR*)TEXT("Edit Item"); - GetClientRect(editWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = upWnd; - ti.uId = (ULONG_PTR)upWnd; - ti.lpszText = (WCHAR*)TEXT("Move Item Up"); - GetClientRect(upWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = downWnd; - ti.uId = (ULONG_PTR)downWnd; - ti.lpszText = (WCHAR*)TEXT("Move Item Down"); - GetClientRect(downWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = saveWnd; - ti.uId = (ULONG_PTR)saveWnd; - ti.lpszText = (WCHAR*)TEXT("Save Item"); - GetClientRect(downWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = abortWnd; - ti.uId = (ULONG_PTR)abortWnd; - ti.lpszText = (WCHAR*)TEXT("Discard Item"); - GetClientRect(abortWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = browseCommandWnd; - ti.uId = (ULONG_PTR)browseCommandWnd; - ti.lpszText = (WCHAR*)TEXT("Browse For An Application"); - GetClientRect(browseCommandWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - ti.hwnd = browseIconWnd; - ti.uId = (ULONG_PTR)browseIconWnd; - ti.lpszText = (WCHAR*)TEXT("Browse For An Icon"); - GetClientRect(browseIconWnd, &ti.rect); - SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); - - return TRUE; -} - -BOOL LaunchPage::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) -{ - bool exeButton = false; - - switch (LOWORD(wParam)) - { - case IDC_EDITITEM: - return DoEdit(hwndDlg); - case IDC_ADDITEM: - return DoAdd(hwndDlg); - case IDC_DELITEM: - return DelItem(hwndDlg); - case IDC_UPITEM: - return MoveItem(hwndDlg, true); - case IDC_DOWNITEM: - return MoveItem(hwndDlg, false); - case IDC_SAVEITEM: - SaveItem(hwndDlg); - return EnableFields(hwndDlg, false); - case IDC_ABORTITEM: - AbortItem(hwndDlg); - return EnableFields(hwndDlg, false); - case IDC_BROWSECOMMAND: - return Browse(hwndDlg, BROWSE_COMMAND); - case IDC_BROWSEICON: - return GetIcon(hwndDlg); - case IDC_BROWSEWORKINGDIR: - return Browse(hwndDlg, BROWSE_WORKINGDIR); - case IDC_EXEBUTTON: - exeButton = true; - case IDC_COMBUTTON: - return DoExeCom(hwndDlg, exeButton); - } - - return FALSE; -} - -BOOL LaunchPage::GetIcon(HWND hwndDlg) -{ - WCHAR unexpanded[MAX_PATH], iconPath[MAX_PATH], *token; - WCHAR source[MAX_LINE_LENGTH]; - WCHAR tmp[MAX_LINE_LENGTH]; - int iconIndex = 0; - - ZeroMemory(unexpanded, MAX_PATH); - ZeroMemory(iconPath, MAX_PATH); - ZeroMemory(source, MAX_LINE_LENGTH); - ZeroMemory(tmp, MAX_LINE_LENGTH); - - if (GetDlgItemText(hwndDlg, IDC_ICONPATH, iconPath, MAX_LINE_LENGTH) != 0) - { - wcscpy(tmp, iconPath); - token = wcstok(tmp, TEXT(",")); - if (token != NULL) - wcscpy(iconPath, token); - token = wcstok(NULL, TEXT(",")); - if (token != NULL) - iconIndex = _wtoi(token); - } - else if (GetDlgItemText(hwndDlg, IDC_COMMAND, iconPath, MAX_LINE_LENGTH) != 0) - { - ELParseCommand(iconPath, source, tmp); - wcscpy(iconPath, source); - } - - if (EGGetIconDialogue(hwndDlg, iconPath, iconIndex)) - { - ELUnExpandVars(iconPath); - SetDlgItemText(hwndDlg, IDC_ICONPATH, iconPath); - } - return TRUE; -} - -void LaunchPage::PopulateInternal(HWND internalWnd) -{ - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("RightDeskMenu")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("MidDeskMenu")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Quit")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Run")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Shutdown")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Lock")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Hide")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("Show")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMUp")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMDown")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMLeft")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMRight")); - SendMessage(internalWnd, CB_ADDSTRING, 0, (LPARAM)TEXT("VWMGather")); - Sen... [truncated message content] |
From: <ir0...@us...> - 2009-11-13 14:59:14
|
Revision: 2716 http://emerge.svn.sourceforge.net/emerge/?rev=2716&view=rev Author: ir0nh34d Date: 2009-11-13 14:59:07 +0000 (Fri, 13 Nov 2009) Log Message: ----------- Define a global ICON_LOOKUP_TIMOUT and set it to 1 second Modified Paths: -------------- trunk/Source/emergeGraphics/main.cpp Modified: trunk/Source/emergeGraphics/main.cpp =================================================================== --- trunk/Source/emergeGraphics/main.cpp 2009-11-13 13:38:39 UTC (rev 2715) +++ trunk/Source/emergeGraphics/main.cpp 2009-11-13 14:59:07 UTC (rev 2716) @@ -40,6 +40,8 @@ #define GIL_DEFAULTICON 64 #endif +#define ICON_LOOKUP_TIMEOUT 1000 + typedef UINT (WINAPI *fnPrivateExtractIcons)(LPCTSTR, int, int, int, HICON*, UINT*, UINT, UINT); static fnPrivateExtractIcons MSPrivateExtractIcons = NULL; @@ -743,11 +745,11 @@ if (smallIcon) { - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, ICON_LOOKUP_TIMEOUT, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, ICON_LOOKUP_TIMEOUT, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, ICON_LOOKUP_TIMEOUT, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICONSM); if (!icon) @@ -755,11 +757,11 @@ } else { - SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, ICON_LOOKUP_TIMEOUT, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, ICON_LOOKUP_TIMEOUT, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, ICON_LOOKUP_TIMEOUT, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICON); if (!icon) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-13 13:38:46
|
Revision: 2715 http://emerge.svn.sourceforge.net/emerge/?rev=2715&view=rev Author: ir0nh34d Date: 2009-11-13 13:38:39 +0000 (Fri, 13 Nov 2009) Log Message: ----------- Ignore .svnignore files Property Changed: ---------------- trunk/Source/emergeHelloWorld/ trunk/Source/emergeHelloWorld/icons/ Property changes on: trunk/Source/emergeHelloWorld ___________________________________________________________________ Added: svn:ignore + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save Property changes on: trunk/Source/emergeHelloWorld/icons ___________________________________________________________________ Added: svn:ignore + *.depend *.layout *.zip *.bmarks *.suo *.ncb svnversion.h .objs64 bin64 .objs tags *.tags bin *.mk Release Debug *.7z .deps .deps64 *.save This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-13 13:38:02
|
Revision: 2714 http://emerge.svn.sourceforge.net/emerge/?rev=2714&view=rev Author: ir0nh34d Date: 2009-11-13 13:37:51 +0000 (Fri, 13 Nov 2009) Log Message: ----------- Additional documentation Modified Paths: -------------- trunk/Source/emergeHelloWorld/Applet.cpp trunk/Source/emergeHelloWorld/main.cpp Modified: trunk/Source/emergeHelloWorld/Applet.cpp =================================================================== --- trunk/Source/emergeHelloWorld/Applet.cpp 2009-11-11 19:52:43 UTC (rev 2713) +++ trunk/Source/emergeHelloWorld/Applet.cpp 2009-11-13 13:37:51 UTC (rev 2714) @@ -37,6 +37,8 @@ CREATESTRUCT *cs; static Applet *pApplet = NULL; + // As part of the CreateWindowEx function, an Applet class pointer is passed, which is recieved + // in the WM_CREATE message. A static class pointer is created to store the passed class pointer. if (message == WM_CREATE) { cs = (CREATESTRUCT*)lParam; @@ -44,11 +46,14 @@ return DefWindowProc(hwnd, message, wParam, lParam); } + // If the class pointer is NULL (other than for the WM_CREATE message), simply return the default + // action for that message so as to not cause an access violation. if (pApplet == NULL) return DefWindowProc(hwnd, message, wParam, lParam); switch (message) { + // The WM_COPYDATA message is used to notify the applet of a change to the ThemeDir variable. case WM_COPYDATA: cpData = (COPYDATASTRUCT *)lParam; if (cpData->dwData == EMERGE_MESSAGE) @@ -74,10 +79,13 @@ pApplet->DoNCLButtonUp(); return DefWindowProc(hwnd, message, wParam, lParam); + // The WM_SETCURSOR message is used to determine when the Applet should switch to 'mouse over' + // state. case WM_SETCURSOR: pApplet->DoSetCursor(); return DefWindowProc(hwnd, message, wParam, lParam); + // If the display changes size, let the application now. case WM_DISPLAYCHANGE: return pApplet->DoDisplayChange(hwnd); @@ -89,29 +97,32 @@ case WM_WINDOWPOSCHANGING: return pApplet->DoWindowPosChanging((WINDOWPOS *)lParam); + // The WM_MOVING message is used to fascilitate Snap Move. case WM_MOVING: return pApplet->DoMoving(hwnd, (RECT*)lParam); + // WM_ENTERSIZEMOVE is captured to determine the an anchor point that is used to assist + // Snap Move. case WM_ENTERSIZEMOVE: return pApplet->DoEnterSizeMove(hwnd); + // Capture WM_EXITSIZEMOVE messages so as to save the size and the position of the applet. case WM_EXITSIZEMOVE: return pApplet->DoExitSizeMove(hwnd); + // WM_SIZING is used to enable Snap Size. case WM_SIZING: return pApplet->DoSizing(hwnd, (UINT)wParam, (LPRECT)lParam); + // Hande WM_SYSCOMMAND messages so the applet does not close on Alt+F4 / maximize / minimize. case WM_SYSCOMMAND: return pApplet->DoSysCommand(hwnd, message, wParam, lParam); - case WM_SHOWWINDOW: - if (wParam) - pApplet->DrawAlphaBlend(); - break; - + // WM_TIMER messages captured to handle the mouse leaving the applet. case WM_TIMER: return pApplet->DoTimer((UINT)wParam); + // When the window is destroyed, send a '0' as the quit value. case WM_DESTROY: case WM_NCDESTROY: PostQuitMessage(0); Modified: trunk/Source/emergeHelloWorld/main.cpp =================================================================== --- trunk/Source/emergeHelloWorld/main.cpp 2009-11-11 19:52:43 UTC (rev 2713) +++ trunk/Source/emergeHelloWorld/main.cpp 2009-11-13 13:37:51 UTC (rev 2714) @@ -20,28 +20,6 @@ #include "Applet.h" -BOOL CALLBACK FocusWindowEnum(HWND hwnd, LPARAM lParam UNUSED) -{ - WCHAR window[MAX_PATH]; - - ZeroMemory(window, MAX_PATH); - ELGetWindowApp(hwnd, window, false); - _wcslwr(window); - - if (wcscmp(window, TEXT("emergecommand.exe")) == 0) - { - if (!IsWindowVisible(hwnd)) - return true; - - SetForegroundWindow(hwnd); - SendMessage(hwnd, WM_LBUTTONDOWN, 0, 0); - - return false; - } - - return true; -} - //----- // Function: WinMain // Required: HINSTANCE hThisInstance - the instance of this application @@ -60,15 +38,16 @@ { MSG messages; - // Check to see if iTray is already running, if so exit + // Create a Mutex so as to guard that only one instance of the applet is + // running HANDLE hMutex = CreateMutex(NULL, false, TEXT("emergeHelloWorld")); if (GetLastError() == ERROR_ALREADY_EXISTS) { - EnumWindows(FocusWindowEnum, 0); CloseHandle(hMutex); return 0; } + // Initialize the main Applet class Applet applet(hInstance); if (!applet.Initialize()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-11 19:52:49
|
Revision: 2713 http://emerge.svn.sourceforge.net/emerge/?rev=2713&view=rev Author: ir0nh34d Date: 2009-11-11 19:52:43 +0000 (Wed, 11 Nov 2009) Log Message: ----------- Re-enable fix to handle message flood Modified Paths: -------------- trunk/Source/emergeTasks/Applet.cpp Modified: trunk/Source/emergeTasks/Applet.cpp =================================================================== --- trunk/Source/emergeTasks/Applet.cpp 2009-11-11 16:32:21 UTC (rev 2712) +++ trunk/Source/emergeTasks/Applet.cpp 2009-11-11 19:52:43 UTC (rev 2713) @@ -624,7 +624,8 @@ // A "task" was modified case HSHELL_REDRAW: pr = modifyMap.insert(std::pair<HWND, UINT>(task, modifyIndex)); - SetTimer(hwnd, modifyIndex, MODIFY_POLL_TIME, (TIMERPROC)ModifyTimerProc); + if (pr.second) + SetTimer(hwnd, modifyIndex, MODIFY_POLL_TIME, (TIMERPROC)ModifyTimerProc); return TRUE; // A "task" was ended This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-11 16:32:30
|
Revision: 2712 http://emerge.svn.sourceforge.net/emerge/?rev=2712&view=rev Author: ir0nh34d Date: 2009-11-11 16:32:21 +0000 (Wed, 11 Nov 2009) Log Message: ----------- x64 fixes Modified Paths: -------------- trunk/Source/emergeGraphics/main.cpp trunk/Source/emergeTasks/Applet.cpp Modified: trunk/Source/emergeGraphics/main.cpp =================================================================== --- trunk/Source/emergeGraphics/main.cpp 2009-11-11 15:12:57 UTC (rev 2711) +++ trunk/Source/emergeGraphics/main.cpp 2009-11-11 16:32:21 UTC (rev 2712) @@ -743,11 +743,11 @@ if (smallIcon) { - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICONSM); if (!icon) @@ -755,11 +755,11 @@ } else { - SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) - SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 500, reinterpret_cast<ULONG_PTR*>(&icon)); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICON); if (!icon) Modified: trunk/Source/emergeTasks/Applet.cpp =================================================================== --- trunk/Source/emergeTasks/Applet.cpp 2009-11-11 15:12:57 UTC (rev 2711) +++ trunk/Source/emergeTasks/Applet.cpp 2009-11-11 16:32:21 UTC (rev 2712) @@ -192,7 +192,7 @@ bool Applet::PaintItem(HDC hdc, UINT index, int x, int y, RECT rect) { WCHAR windowTitle[MAX_LINE_LENGTH]; - DWORD response = 0; + ULONG_PTR response = 0; TaskVector::iterator iter = taskList.begin() + index; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-11 15:13:03
|
Revision: 2711 http://emerge.svn.sourceforge.net/emerge/?rev=2711&view=rev Author: ir0nh34d Date: 2009-11-11 15:12:57 +0000 (Wed, 11 Nov 2009) Log Message: ----------- Add emergeTasks - Debug target Modified Paths: -------------- trunk/Source/EmergeDesktop.cbp Modified: trunk/Source/EmergeDesktop.cbp =================================================================== --- trunk/Source/EmergeDesktop.cbp 2009-11-11 15:12:17 UTC (rev 2710) +++ trunk/Source/EmergeDesktop.cbp 2009-11-11 15:12:57 UTC (rev 2711) @@ -561,6 +561,29 @@ <Add directory=".\bin" /> </Linker> </Target> + <Target title="emergeTasks - Debug"> + <Option platforms="Windows;" /> + <Option output="bin\emergeTasks" prefix_auto="1" extension_auto="1" /> + <Option object_output=".objs\Release" /> + <Option external_deps="bin\emergeAppletEngine.dll;bin\emergeBaseClasses.dll;bin\emergeGraphics.dll;bin\emergeLib.dll;bin\emergeSchemeEngine.dll;" /> + <Option type="0" /> + <Option compiler="gcc" /> + <Compiler> + <Add option="-g" /> + </Compiler> + <ResourceCompiler> + <Add directory=".\emergeTasks" /> + </ResourceCompiler> + <Linker> + <Add library="emergeLib" /> + <Add library="emergeSchemeEngine" /> + <Add library="emergeAppletEngine" /> + <Add library="emergeGraphics" /> + <Add library="emergeBaseClasses" /> + <Add library="comctl32" /> + <Add directory=".\bin" /> + </Linker> + </Target> <Environment> <Variable name="SVN_BUILD" value="0" /> </Environment> @@ -1258,49 +1281,64 @@ </Unit> <Unit filename="emergeTasks\Applet.cpp"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\Applet.h"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\Config.cpp"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\Config.h"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\ConfigPage.cpp"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\ConfigPage.dlg"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\ConfigPage.h"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\Settings.cpp"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\Settings.h"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\Task.cpp"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\Task.h"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\emergeTasks.exe.manifest"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\emergeTasks.rc"> <Option compilerVar="WINDRES" /> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\main.cpp"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTasks\resource.h"> <Option target="emergeTasks - Release" /> + <Option target="emergeTasks - Debug" /> </Unit> <Unit filename="emergeTray\AppBar.cpp"> <Option target="emergeTray - Release" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-11 15:12:32
|
Revision: 2710 http://emerge.svn.sourceforge.net/emerge/?rev=2710&view=rev Author: ir0nh34d Date: 2009-11-11 15:12:17 +0000 (Wed, 11 Nov 2009) Log Message: ----------- Fix one hang if task window is unresponsive Modified Paths: -------------- trunk/Source/WindowTitleTest/TestDialog.cpp trunk/Source/emergeGraphics/main.cpp trunk/Source/emergeTasks/Applet.cpp Modified: trunk/Source/WindowTitleTest/TestDialog.cpp =================================================================== --- trunk/Source/WindowTitleTest/TestDialog.cpp 2009-11-10 15:06:59 UTC (rev 2709) +++ trunk/Source/WindowTitleTest/TestDialog.cpp 2009-11-11 15:12:17 UTC (rev 2710) @@ -59,7 +59,7 @@ { WCHAR tmp[MAX_LINE_LENGTH]; - for (UINT i = 0; i < 10000 ; i++) + for (UINT i = 0; i < 1000000 ; i++) { swprintf(tmp, TEXT("%d"), i); SetWindowText(hwndDlg, tmp); Modified: trunk/Source/emergeGraphics/main.cpp =================================================================== --- trunk/Source/emergeGraphics/main.cpp 2009-11-10 15:06:59 UTC (rev 2709) +++ trunk/Source/emergeGraphics/main.cpp 2009-11-11 15:12:17 UTC (rev 2710) @@ -739,48 +739,36 @@ //---- -------------------------------------------------------------------------------------------------------- HICON EGGetWindowIcon(HWND hwnd, bool smallIcon) { - HICON icon; - WCHAR applicationName[MAX_PATH]; + HICON icon = NULL; if (smallIcon) { - icon = (HICON)SendMessage(hwnd, WM_GETICON, ICON_SMALL2, 0); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); if (!icon) - icon = (HICON)SendMessage(hwnd, WM_GETICON, ICON_SMALL, 0); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); if (!icon) - icon = (HICON)SendMessage(hwnd, WM_GETICON, ICON_BIG, 0); + SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICONSM); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICON); - if (!icon) - { - ELGetWindowApp(hwnd, applicationName, true); - icon = EGGetFileIcon(applicationName, 16); - } - if (!icon) - icon = LoadIcon(NULL, IDI_APPLICATION); } else { - icon = (HICON)SendMessage(hwnd, WM_GETICON, ICON_BIG, 0); + SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); if (!icon) - icon = (HICON)SendMessage(hwnd, WM_GETICON, ICON_SMALL2, 0); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); if (!icon) - icon = (HICON)SendMessage(hwnd, WM_GETICON, ICON_SMALL, 0); + SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 100, reinterpret_cast<LPDWORD>(&icon)); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICON); if (!icon) icon = (HICON)GetClassLongPtr(hwnd, GCLP_HICONSM); - if (!icon) - { - ELGetWindowApp(hwnd, applicationName, true); - icon = EGGetFileIcon(applicationName, 32); - } - if (!icon) - icon = LoadIcon(NULL, IDI_APPLICATION); } + if (!icon) + icon = LoadIcon(NULL, IDI_APPLICATION); + return icon; } @@ -868,7 +856,7 @@ int width = clientInfo.rt.right - clientInfo.rt.left; int height = clientInfo.rt.bottom - clientInfo.rt.top; -// TODO (ironhead#5#): Switch to the text calculations used in MsgBox? + // TODO (ironhead#5#): Switch to the text calculations used in MsgBox? int displayHeight = formatInfo.fontHeight * formatInfo.lines; maskRect.left = 0; Modified: trunk/Source/emergeTasks/Applet.cpp =================================================================== --- trunk/Source/emergeTasks/Applet.cpp 2009-11-10 15:06:59 UTC (rev 2709) +++ trunk/Source/emergeTasks/Applet.cpp 2009-11-11 15:12:17 UTC (rev 2710) @@ -192,14 +192,16 @@ bool Applet::PaintItem(HDC hdc, UINT index, int x, int y, RECT rect) { WCHAR windowTitle[MAX_LINE_LENGTH]; + DWORD response = 0; TaskVector::iterator iter = taskList.begin() + index; (*iter)->SetRect(rect); // Update the tooltip - GetWindowText((*iter)->GetWnd(), windowTitle, MAX_LINE_LENGTH); - (*iter)->UpdateTip(mainWnd, toolWnd, windowTitle); + SendMessageTimeout((*iter)->GetWnd(), WM_GETTEXT, MAX_LINE_LENGTH, reinterpret_cast<LPARAM>(windowTitle), SMTO_ABORTIFHUNG, 100, &response); + if (response != 0) + (*iter)->UpdateTip(mainWnd, toolWnd, windowTitle); (*iter)->CreateNewIcon(hdc, guiInfo.alphaForeground); if ((*iter)->GetVisible()) @@ -622,8 +624,7 @@ // A "task" was modified case HSHELL_REDRAW: pr = modifyMap.insert(std::pair<HWND, UINT>(task, modifyIndex)); - if (pr.second) - SetTimer(hwnd, modifyIndex, MODIFY_POLL_TIME, (TIMERPROC)ModifyTimerProc); + SetTimer(hwnd, modifyIndex, MODIFY_POLL_TIME, (TIMERPROC)ModifyTimerProc); return TRUE; // A "task" was ended This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-10 15:07:16
|
Revision: 2709 http://emerge.svn.sourceforge.net/emerge/?rev=2709&view=rev Author: ir0nh34d Date: 2009-11-10 15:06:59 +0000 (Tue, 10 Nov 2009) Log Message: ----------- Add emergeHelloWorld to project Modified Paths: -------------- trunk/Source/EmergeDesktop.cbp trunk/Source/EmergeDesktop_W64.cbp Modified: trunk/Source/EmergeDesktop.cbp =================================================================== --- trunk/Source/EmergeDesktop.cbp 2009-11-10 14:55:59 UTC (rev 2708) +++ trunk/Source/EmergeDesktop.cbp 2009-11-10 15:06:59 UTC (rev 2709) @@ -394,6 +394,29 @@ <Add directory=".\bin" /> </Linker> </Target> + <Target title="emergeHelloWorld - Release"> + <Option platforms="Windows;" /> + <Option output="bin\emergeHelloWorld" prefix_auto="1" extension_auto="1" /> + <Option object_output=".objs\Release" /> + <Option external_deps="bin\emergeAppletEngine.dll;bin\emergeBaseClasses.dll;bin\emergeGraphics.dll;bin\emergeLib.dll;bin\emergeSchemeEngine.dll;" /> + <Option type="0" /> + <Option compiler="gcc" /> + <ResourceCompiler> + <Add directory=".\emergeCommand" /> + </ResourceCompiler> + <Linker> + <Add option="-s" /> + <Add library="emergeSchemeEngine" /> + <Add library="emergeLib" /> + <Add library="emergeAppletEngine" /> + <Add library="emergeGraphics" /> + <Add library="emergeBaseClasses" /> + <Add library="uuid" /> + <Add library="ole32" /> + <Add library="comctl32" /> + <Add directory=".\bin" /> + </Linker> + </Target> <Target title="emergeLib - Debug"> <Option platforms="Windows;" /> <Option output="bin\emergeLib" prefix_auto="1" extension_auto="1" /> @@ -543,7 +566,7 @@ </Environment> </Build> <VirtualTargets> - <Add alias="All - Release" targets="emergeLib - Release;emergeGraphics - Release;emergeAppletEngine - Release;emergeSchemeEngine - Release;emergeBaseClasses - Release;emergeCore - Release;emergeCommand - Release;emergeDesktop - Release;emergeHotkeys - Release;emergeLauncher - Release;emergeTasks - Release;emergeTray - Release;emergeVWM - Release;emerge - Release;emergePower - Release;emergeSysMon - Release;reg2xml - Release;" /> + <Add alias="All - Release" targets="emergeLib - Release;emergeGraphics - Release;emergeAppletEngine - Release;emergeSchemeEngine - Release;emergeBaseClasses - Release;emergeCore - Release;emergeCommand - Release;emergeDesktop - Release;emergeHotkeys - Release;emergeLauncher - Release;emergeTasks - Release;emergeTray - Release;emergeVWM - Release;emerge - Release;emergePower - Release;reg2xml - Release;emergeSysMon - Release;" /> </VirtualTargets> <Compiler> <Add option="-march=pentium4" /> @@ -915,6 +938,55 @@ <Unit filename="emergeGraphics\resource.h"> <Option target="emergeGraphics - Release" /> </Unit> + <Unit filename="emergeHelloWorld\Applet.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Applet.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Config.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Config.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\ConfigPage.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\ConfigPage.dlg"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\ConfigPage.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Settings.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Settings.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\TextPage.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\TextPage.dlg"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\TextPage.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\emergeHelloWorld.exe.manifest"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\emergeHelloWorld.rc"> + <Option compilerVar="WINDRES" /> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\main.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\resource.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> <Unit filename="emergeHotkeys\Actions.cpp"> <Option target="emergeHotkeys - Release" /> </Unit> Modified: trunk/Source/EmergeDesktop_W64.cbp =================================================================== --- trunk/Source/EmergeDesktop_W64.cbp 2009-11-10 14:55:59 UTC (rev 2708) +++ trunk/Source/EmergeDesktop_W64.cbp 2009-11-10 15:06:59 UTC (rev 2709) @@ -418,6 +418,31 @@ <Add directory=".\bin64" /> </Linker> </Target> + <Target title="emergeHelloWorld - Release"> + <Option output="bin64\emergeHelloWorld" prefix_auto="1" extension_auto="1" /> + <Option object_output=".objs64\Release" /> + <Option external_deps="bin\emergeAppletEngine.dll;bin\emergeBaseClasses.dll;bin\emergeGraphics.dll;bin\emergeLib.dll;bin\emergeSchemeEngine.dll;" /> + <Option type="0" /> + <Option compiler="gnu_gcc_compiler_for_mingw64" /> + <Compiler> + <Add option="-O2" /> + </Compiler> + <ResourceCompiler> + <Add directory=".\emergeCommand" /> + </ResourceCompiler> + <Linker> + <Add option="-s" /> + <Add library="emergeSchemeEngine" /> + <Add library="emergeLib" /> + <Add library="emergeAppletEngine" /> + <Add library="emergeGraphics" /> + <Add library="emergeBaseClasses" /> + <Add library="uuid" /> + <Add library="ole32" /> + <Add library="comctl32" /> + <Add directory=".\bin64" /> + </Linker> + </Target> <Environment> <Variable name="SVN_BUILD" value="0" /> </Environment> @@ -715,6 +740,55 @@ <Unit filename="emergeGraphics\resource.h"> <Option target="emergeGraphics - Release" /> </Unit> + <Unit filename="emergeHelloWorld\Applet.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Applet.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Config.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Config.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\ConfigPage.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\ConfigPage.dlg"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\ConfigPage.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Settings.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\Settings.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\TextPage.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\TextPage.dlg"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\TextPage.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\emergeHelloWorld.exe.manifest"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\emergeHelloWorld.rc"> + <Option compilerVar="WINDRES" /> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\main.cpp"> + <Option target="emergeHelloWorld - Release" /> + </Unit> + <Unit filename="emergeHelloWorld\resource.h"> + <Option target="emergeHelloWorld - Release" /> + </Unit> <Unit filename="emergeHotkeys\Actions.cpp"> <Option target="emergeHotkeys - Release" /> </Unit> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-10 14:56:07
|
Revision: 2708 http://emerge.svn.sourceforge.net/emerge/?rev=2708&view=rev Author: ir0nh34d Date: 2009-11-10 14:55:59 +0000 (Tue, 10 Nov 2009) Log Message: ----------- Remove accidentally checked in swap file Removed Paths: ------------- trunk/Source/emergeHelloWorld/.ConfigPage.dlg.swp Deleted: trunk/Source/emergeHelloWorld/.ConfigPage.dlg.swp =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ir0...@us...> - 2009-11-10 14:55:25
|
Revision: 2707 http://emerge.svn.sourceforge.net/emerge/?rev=2707&view=rev Author: ir0nh34d Date: 2009-11-10 14:55:10 +0000 (Tue, 10 Nov 2009) Log Message: ----------- Initial checkin of emergeHelloWorld Added Paths: ----------- trunk/Source/emergeHelloWorld/ trunk/Source/emergeHelloWorld/.ConfigPage.dlg.swp trunk/Source/emergeHelloWorld/Applet.cpp trunk/Source/emergeHelloWorld/Applet.h trunk/Source/emergeHelloWorld/Config.cpp trunk/Source/emergeHelloWorld/Config.h trunk/Source/emergeHelloWorld/ConfigPage.cpp trunk/Source/emergeHelloWorld/ConfigPage.dlg trunk/Source/emergeHelloWorld/ConfigPage.h trunk/Source/emergeHelloWorld/Makefile trunk/Source/emergeHelloWorld/Settings.cpp trunk/Source/emergeHelloWorld/Settings.h trunk/Source/emergeHelloWorld/TextPage.cpp trunk/Source/emergeHelloWorld/TextPage.dlg trunk/Source/emergeHelloWorld/TextPage.h trunk/Source/emergeHelloWorld/emergeHelloWorld.exe.manifest trunk/Source/emergeHelloWorld/emergeHelloWorld.rc trunk/Source/emergeHelloWorld/icons/ trunk/Source/emergeHelloWorld/icons/emerge.ico trunk/Source/emergeHelloWorld/main.cpp trunk/Source/emergeHelloWorld/resource.h trunk/Source/emergeHelloWorld/tags Added: trunk/Source/emergeHelloWorld/.ConfigPage.dlg.swp =================================================================== (Binary files differ) Property changes on: trunk/Source/emergeHelloWorld/.ConfigPage.dlg.swp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/emergeHelloWorld/Applet.cpp =================================================================== --- trunk/Source/emergeHelloWorld/Applet.cpp (rev 0) +++ trunk/Source/emergeHelloWorld/Applet.cpp 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,231 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include "Applet.h" + +WCHAR myName[ ] = TEXT("emergeHelloWorld"); + +//---- -------------------------------------------------------------------------------------------------------- +// Function: WindowProcedure +// Required: HWND hwnd - window handle that message was sent to +// UINT message - action to handle +// WPARAM wParam - dependant on message +// LPARAM lParam - dependant on message +// Returns: LRESULT +// Purpose: Handles messages sent from DispatchMessage +//---- -------------------------------------------------------------------------------------------------------- +LRESULT CALLBACK Applet::WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + COPYDATASTRUCT *cpData; + CREATESTRUCT *cs; + static Applet *pApplet = NULL; + + if (message == WM_CREATE) + { + cs = (CREATESTRUCT*)lParam; + pApplet = reinterpret_cast<Applet*>(cs->lpCreateParams); + return DefWindowProc(hwnd, message, wParam, lParam); + } + + if (pApplet == NULL) + return DefWindowProc(hwnd, message, wParam, lParam); + + switch (message) + { + case WM_COPYDATA: + cpData = (COPYDATASTRUCT *)lParam; + if (cpData->dwData == EMERGE_MESSAGE) + return pApplet->DoCopyData(cpData); + break; + + // Needed to handle changing the system colors. It forces + // a repaint of the window as well as the frame. + case WM_SYSCOLORCHANGE: + return pApplet->DoSysColorChange(); + + // Allow for window dragging via Ctrl - Left - Click dragging + case WM_NCLBUTTONDOWN: + pApplet->DoNCLButtonDown(); + return DefWindowProc(hwnd, message, wParam, lParam); + + // Display the mainMenu via Ctrl - Right - Click + case WM_NCRBUTTONUP: + return pApplet->DoNCRButtonUp(); + + // Reset the cursor back to the standard arrow after dragging + case WM_NCLBUTTONUP: + pApplet->DoNCLButtonUp(); + return DefWindowProc(hwnd, message, wParam, lParam); + + case WM_SETCURSOR: + pApplet->DoSetCursor(); + return DefWindowProc(hwnd, message, wParam, lParam); + + case WM_DISPLAYCHANGE: + return pApplet->DoDisplayChange(hwnd); + + // Handles the resizing of the window + case WM_NCHITTEST: + return pApplet->DoHitTest(lParam); + + // Repaint the icons as the window size is changing + case WM_WINDOWPOSCHANGING: + return pApplet->DoWindowPosChanging((WINDOWPOS *)lParam); + + case WM_MOVING: + return pApplet->DoMoving(hwnd, (RECT*)lParam); + + case WM_ENTERSIZEMOVE: + return pApplet->DoEnterSizeMove(hwnd); + + case WM_EXITSIZEMOVE: + return pApplet->DoExitSizeMove(hwnd); + + case WM_SIZING: + return pApplet->DoSizing(hwnd, (UINT)wParam, (LPRECT)lParam); + + case WM_SYSCOMMAND: + return pApplet->DoSysCommand(hwnd, message, wParam, lParam); + + case WM_SHOWWINDOW: + if (wParam) + pApplet->DrawAlphaBlend(); + break; + + case WM_TIMER: + return pApplet->DoTimer((UINT)wParam); + + case WM_DESTROY: + case WM_NCDESTROY: + PostQuitMessage(0); + break; + + // If not handled just forward the message on + default: + return pApplet->DoDefault(hwnd, message, wParam, lParam); + } + + return 0; +} + +Applet::Applet(HINSTANCE hInstance) + :BaseApplet(hInstance, myName, false) +{ + mainInst = hInstance; + wcscpy(commandText, TEXT("\0")); + mainFont = NULL; +} + +Applet::~Applet() +{ + if (mainFont) + DeleteObject(mainFont); +} + +UINT Applet::Initialize() +{ + pSettings = std::tr1::shared_ptr<Settings>(new Settings()); + UINT ret = BaseApplet::Initialize(WindowProcedure, this, pSettings); + if (ret == 0) + return ret; + + // Set the window transparency + UpdateGUI(); + + return 1; +} + +LRESULT Applet::PaintContent(HDC hdc, RECT clientrt) +{ + CLIENTINFO clientInfo; + FORMATINFO formatInfo; + + if (_wcsicmp(pSettings->GetTextAlign(), TEXT("center")) == 0) + formatInfo.horizontalAlignment = EGDAT_HCENTER; + else if (_wcsicmp(pSettings->GetTextAlign(), TEXT("right")) == 0) + formatInfo.horizontalAlignment = EGDAT_RIGHT; + else + formatInfo.horizontalAlignment = EGDAT_LEFT; + if (_wcsicmp(pSettings->GetVerticalAlign(), TEXT("center")) == 0) + formatInfo.verticalAlignment = EGDAT_VCENTER; + else if (_wcsicmp(pSettings->GetVerticalAlign(), TEXT("bottom")) == 0) + formatInfo.verticalAlignment = EGDAT_BOTTOM; + else + formatInfo.verticalAlignment = EGDAT_TOP; + formatInfo.font = mainFont; + formatInfo.color = guiInfo.colorFont; + formatInfo.lines = pSettings->GetDisplayLines(); + formatInfo.fontHeight = pSettings->GetFont()->lfHeight; + + clientInfo.hdc = hdc; + CopyRect(&clientInfo.rt, &clientrt); + clientInfo.bgAlpha = guiInfo.alphaBackground; + + EGDrawAlphaText(guiInfo.alphaText, clientInfo, formatInfo, pSettings->GetDisplayTextFormat()); + UpdateTip(pSettings->GetDisplayTipFormat()); + + return 0; +} + +void Applet::ShowConfig() +{ + Config config(mainInst, mainWnd, pSettings); + if (config.Show() == IDOK) + UpdateGUI(); +} + +void Applet::UpdateTip(WCHAR *tip) +{ + TOOLINFO ti; + ZeroMemory(&ti, sizeof(TOOLINFO)); + RECT rect; + bool exists; + + GetClientRect(mainWnd, &rect); + + // fill in the TOOLINFO structure + ti.cbSize = TTTOOLINFOW_V2_SIZE; + ti.uFlags = TTF_SUBCLASS; + ti.hwnd = mainWnd; + ti.uId = (ULONG_PTR)toolWnd; + + // Check to see if the tooltip exists + exists = SendMessage(toolWnd, TTM_GETTOOLINFO, 0,(LPARAM) (LPTOOLINFO) &ti) ? true : false; + + // complete the rest of the TOOLINFO structure + ti.hinst = mainInst; + ti.lpszText = tip; + ti.rect = rect; + + // If it exists, modify the tooltip, if not add it + if (exists) + SendMessage(toolWnd, TTM_SETTOOLINFO, 0, (LPARAM)(LPTOOLINFO)&ti); + else + SendMessage(toolWnd, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti); +} + +void Applet::AppletUpdate() +{ + + if (mainFont != NULL) + DeleteObject(mainFont); + mainFont = CreateFontIndirect(pSettings->GetFont()); +} + Added: trunk/Source/emergeHelloWorld/Applet.h =================================================================== --- trunk/Source/emergeHelloWorld/Applet.h (rev 0) +++ trunk/Source/emergeHelloWorld/Applet.h 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,69 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#ifndef __APPLET_H +#define __APPLET_H + +// Defines required for tooltip +#undef _WIN32_IE +#define _WIN32_IE 0x0600 + +// Define required for the Window Transparency +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0501 + +// Define required for menu animation +#undef WINVER +#define WINVER 0x0501 + +#define MOUSE_TIMER 0 +#define MOUSE_POLL_TIME 250 +#define ID_CLOCKTIMER 101 + +#define FULLSCREEN_TIMER 1 +#define FULLSCREEN_POLL_TIME 100 + +#include <vector> +#include "../emergeAppletEngine/emergeAppletEngine.h" +#include "../emergeBaseClasses/BaseApplet.h" +#include "Config.h" + +class Applet: public BaseApplet +{ +private: + std::tr1::shared_ptr<Settings> pSettings; + WCHAR commandText[MAX_LINE_LENGTH]; + HFONT mainFont; + static LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); + +public: + Applet(HINSTANCE hInstance); + ~Applet(); + void ShowConfig(); + UINT Initialize(); + LRESULT DoMove(); + void AppletUpdate(); + void WriteAppletSettings(); + LRESULT DoButtonDown(UINT message, WPARAM wParam, LPARAM lParam); + void UpdateTip(WCHAR *tip); + LRESULT PaintContent(HDC hdc, RECT clientrt); +}; + +#endif Added: trunk/Source/emergeHelloWorld/Config.cpp =================================================================== --- trunk/Source/emergeHelloWorld/Config.cpp (rev 0) +++ trunk/Source/emergeHelloWorld/Config.cpp 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,120 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include "Config.h" +#include "Applet.h" + +INT_PTR CALLBACK Config::ConfigDlgProc(HWND hwndDlg, UINT message, WPARAM wParam UNUSED, LPARAM lParam UNUSED) +{ + static Config *pConfig = NULL; + + switch (message) + { + case WM_INITDIALOG: + pConfig = reinterpret_cast<Config*>(lParam); + if (!pConfig) + break; + return pConfig->DoInitDialog(hwndDlg); + } + + return 0; +} + +Config::Config(HINSTANCE hInstance, HWND mainWnd, std::tr1::shared_ptr<Settings> pSettings) +{ + this->hInstance = hInstance; + this->mainWnd = mainWnd; + this->pSettings = pSettings; + + pConfigPage = std::tr1::shared_ptr<ConfigPage>(new ConfigPage(pSettings)); + pTextPage = std::tr1::shared_ptr<TextPage>(new TextPage(pSettings)); + pSchemeEditor = std::tr1::shared_ptr<SchemeEditor>(new SchemeEditor(mainWnd)); +} + +Config::~Config() +{ +} + +int Config::Show() +{ + return (int)DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CONFIG), mainWnd, (DLGPROC)ConfigDlgProc, (LPARAM)this); +} + +INT_PTR Config::DoInitDialog(HWND hwndDlg) +{ + int ret; + PROPSHEETPAGE psp[3]; + PROPSHEETHEADER psh; + + ELStealFocus(hwndDlg); + + psp[0].dwSize = sizeof(PROPSHEETPAGE); + psp[0].dwFlags = PSP_USETITLE; + psp[0].hInstance = hInstance; + psp[0].pszTemplate = MAKEINTRESOURCE(IDD_CONFIG_PAGE); + psp[0].pfnDlgProc = pConfigPage->ConfigPageDlgProc; + psp[0].pszTitle = TEXT("Configuration"); + psp[0].lParam = reinterpret_cast<LPARAM>(pConfigPage.get()); + psp[0].pfnCallback = NULL; + + psp[1].dwSize = sizeof(PROPSHEETPAGE); + psp[1].dwFlags = PSP_USETITLE; + psp[1].hInstance = hInstance; + psp[1].pszTemplate = MAKEINTRESOURCE(IDD_TEXT_PAGE); + psp[1].pfnDlgProc = pTextPage->TextPageDlgProc; + psp[1].pszTitle = TEXT("Position"); + psp[1].lParam = reinterpret_cast<LPARAM>(pTextPage.get()); + psp[1].pfnCallback = NULL; + + pSchemeEditor->Edit(pSettings->GetSchemeFile()); + psp[2].dwSize = sizeof(PROPSHEETPAGE); + psp[2].dwFlags = PSP_USETITLE; + psp[2].hInstance = GetModuleHandle(TEXT("emergeSchemeEngine.dll")); + psp[2].pszTemplate = pSchemeEditor->GetTemplate(); + psp[2].pfnDlgProc = pSchemeEditor->SchemeEditorDlgProc; + psp[2].pszTitle = TEXT("Scheme Editor"); + psp[2].lParam = reinterpret_cast<LPARAM>(pSchemeEditor.get()); + psp[2].pfnCallback = NULL; + + psh.dwSize = sizeof(PROPSHEETHEADER); + psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW | PSH_NOCONTEXTHELP; + psh.hwndParent = hwndDlg; + psh.hInstance = hInstance; + psh.pszCaption = TEXT("emergeHelloWorld Properties"); + psh.nPages = sizeof(psp) / + sizeof(PROPSHEETPAGE); + psh.nStartPage = 0; + psh.ppsp = (LPCPROPSHEETPAGE) &psp; + psh.pfnCallback = NULL; + + ret = PropertySheet(&psh); + + if (ret >= 1) + { + pSettings->SetSchemeFile(ESEGetScheme()); + pSettings->WriteSettings(); + EndDialog(hwndDlg, IDOK); + } + if (ret <= 0) + EndDialog(hwndDlg, IDCANCEL); + + return 1; +} + Added: trunk/Source/emergeHelloWorld/Config.h =================================================================== --- trunk/Source/emergeHelloWorld/Config.h (rev 0) +++ trunk/Source/emergeHelloWorld/Config.h 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,54 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2007 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#ifndef __CONFIG_H +#define __CONFIG_H + +#undef _WIN32_IE +#define _WIN32_IE 0x0600 + +#include "Settings.h" +#include "resource.h" +#include "../emergeSchemeEngine/SchemeEditor.h" +#include "ConfigPage.h" +#include "TextPage.h" +#include <tr1/memory> +#include <tr1/shared_ptr.h> + +class Config +{ +public: + Config(HINSTANCE hInstance, HWND mainWnd, std::tr1::shared_ptr<Settings> pSettings); + ~Config(); + int Show(); + INT_PTR DoInitDialog(HWND hwndDlg); + +private: + std::tr1::shared_ptr<SchemeEditor> pSchemeEditor; + std::tr1::shared_ptr<ConfigPage> pConfigPage; + std::tr1::shared_ptr<TextPage> pTextPage; + std::tr1::shared_ptr<Settings> pSettings; + HINSTANCE hInstance; + HWND mainWnd; + static INT_PTR CALLBACK ConfigDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam); +}; + +#endif + Added: trunk/Source/emergeHelloWorld/ConfigPage.cpp =================================================================== --- trunk/Source/emergeHelloWorld/ConfigPage.cpp (rev 0) +++ trunk/Source/emergeHelloWorld/ConfigPage.cpp 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,207 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include "ConfigPage.h" + +INT_PTR CALLBACK ConfigPage::ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static ConfigPage *pConfigPage = NULL; + PROPSHEETPAGE *psp; + + switch (message) + { + case WM_INITDIALOG: + psp = (PROPSHEETPAGE*)lParam; + pConfigPage = reinterpret_cast<ConfigPage*>(psp->lParam); + if (!pConfigPage) + break; + return pConfigPage->DoInitDialog(hwndDlg); + + case WM_COMMAND: + if (!pConfigPage) + break; + return pConfigPage->DoCommand(hwndDlg, wParam, lParam); + + case WM_NOTIFY: + if (!pConfigPage) + break; + return pConfigPage->DoNotify(hwndDlg, lParam); + } + + return FALSE; +} + +ConfigPage::ConfigPage(std::tr1::shared_ptr<Settings> pSettings) +{ + this->pSettings = pSettings; +} + +ConfigPage::~ConfigPage() +{ + if (buttonFont) + DeleteObject(buttonFont); +} + +BOOL ConfigPage::DoInitDialog(HWND hwndDlg) +{ + HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); + + if (pSettings->GetSnapMove()) + SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetSnapSize()) + SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_SETCHECK, BST_CHECKED, 0); + + if (pSettings->GetClickThrough()) + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_SETCHECK, BST_CHECKED, 0); + + SetDlgItemText(hwndDlg, IDC_CLOCKTEXT, pSettings->GetTextFormat()); + + SetDlgItemText(hwndDlg, IDC_TIPTEXT, pSettings->GetTipFormat()); + + CopyMemory(&newFont, pSettings->GetFont(), sizeof(LOGFONT)); + + if (buttonFont) + DeleteObject(buttonFont); + buttonFont = CreateFontIndirect(&newFont); + SendDlgItemMessage(hwndDlg, IDC_FONT_BUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); + SetDlgItemText(hwndDlg, IDC_FONT_BUTTON, newFont.lfFaceName); + + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Full")); + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_ADDSTRING, 0, (LPARAM)TEXT("Background")); + + if (pSettings->GetClickThrough() == 0) + EnableWindow(clickThroughWnd, false); + + if (pSettings->GetClickThrough() == 1) + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)0, 0); + else + SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_SETCURSEL, (WPARAM)1, 0); + + return TRUE; +} + +INT_PTR ConfigPage::DoNotify(HWND hwndDlg, LPARAM lParam) +{ + NMHDR *phdr = (NMHDR*)lParam; + + switch (phdr->code) + { + case PSN_APPLY: + if (UpdateSettings(hwndDlg)) + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_NOERROR); + else + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID); + return 1; + + case PSN_SETACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, 0); + return 1; + + case PSN_KILLACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, FALSE); + return 1; + } + + return 0; +} + +BOOL ConfigPage::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED) +{ + HWND clickThroughWnd = GetDlgItem(hwndDlg, IDC_CLICKTHROUGHMETHOD); + + switch (LOWORD(wParam)) + { + case IDC_FONT_BUTTON: + if (DoFontChooser(hwndDlg)) + { + if (buttonFont) + DeleteObject(buttonFont); + buttonFont = CreateFontIndirect(&newFont); + SendDlgItemMessage(hwndDlg, IDC_FONT_BUTTON, WM_SETFONT, (WPARAM)buttonFont, (LPARAM)TRUE); + SetDlgItemText(hwndDlg, IDC_FONT_BUTTON, newFont.lfFaceName); + + return TRUE; + } + break; + case IDC_CLICKTHROUGH: + if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) + EnableWindow(clickThroughWnd, true); + else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + EnableWindow(clickThroughWnd, false); + return TRUE; + } + + return FALSE; +} + +bool ConfigPage::DoFontChooser(HWND hwndDlg) +{ + CHOOSEFONT chooseFont; + + ZeroMemory(&chooseFont, sizeof(CHOOSEFONT)); + chooseFont.lStructSize = sizeof(CHOOSEFONT); + chooseFont.hwndOwner = hwndDlg; + chooseFont.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_NOSCRIPTSEL; + chooseFont.lpLogFont = &newFont; + + return (ChooseFont(&chooseFont) == TRUE); +} + +bool ConfigPage::UpdateSettings(HWND hwndDlg) +{ + WCHAR tmp[MAX_LINE_LENGTH]; + bool tmpBool = false; + + if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpBool = true; + else if (SendDlgItemMessage(hwndDlg, IDC_SNAPMOVE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + tmpBool = false; + pSettings->SetSnapMove(tmpBool); + + if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpBool = true; + else if (SendDlgItemMessage(hwndDlg, IDC_SNAPSIZE, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + tmpBool = false; + pSettings->SetSnapSize(tmpBool); + + if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_CHECKED) + { + int index = (int)SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGHMETHOD, CB_GETCURSEL, 0, 0); + index++; + pSettings->SetClickThrough(index); + } + else if (SendDlgItemMessage(hwndDlg, IDC_CLICKTHROUGH, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + pSettings->SetClickThrough(0); + + GetDlgItemText(hwndDlg, IDC_CLOCKTEXT, tmp, MAX_LINE_LENGTH); + pSettings->SetTextFormat(tmp); + + GetDlgItemText(hwndDlg, IDC_TIPTEXT, tmp, MAX_LINE_LENGTH); + pSettings->SetTipFormat(tmp); + + pSettings->SetFont(&newFont); + + // commit changes + pSettings->WriteSettings(); + + return true; +} + Added: trunk/Source/emergeHelloWorld/ConfigPage.dlg =================================================================== --- trunk/Source/emergeHelloWorld/ConfigPage.dlg (rev 0) +++ trunk/Source/emergeHelloWorld/ConfigPage.dlg 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,43 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +IDD_CONFIG_PAGE DIALOGEX 0, 0, CONFIG_WIDTH, CONFIG_HEIGHT +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "emergeHelloWorld Configuration" +FONT 8, "MS Shell Dlg" +BEGIN + + CONTROL "SnapMove",IDC_SNAPMOVE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,5,55,10 + CONTROL "SnapSize",IDC_SNAPSIZE,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,CONFIG_WIDTH-95,5,90,10 + + CONTROL "Click Through:",IDC_CLICKTHROUGH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,20,60,10 + COMBOBOX IDC_CLICKTHROUGHMETHOD,65,18,60,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP + + LTEXT "Text Format",IDC_STATIC1,5,35,50,8 + EDITTEXT IDC_CLOCKTEXT,55,34,CONFIG_WIDTH-60,12,ES_AUTOHSCROLL + + LTEXT "Tooltip Format",IDC_STATIC2,5,50,50,8 + EDITTEXT IDC_TIPTEXT,55,49,CONFIG_WIDTH-60,12,ES_AUTOHSCROLL + + LTEXT "Font",IDC_STATIC3,5,75,50,8 + PUSHBUTTON "",IDC_FONT_BUTTON,55,65,CONFIG_WIDTH-60,30,BS_CENTER|BS_FLAT + +END + Added: trunk/Source/emergeHelloWorld/ConfigPage.h =================================================================== --- trunk/Source/emergeHelloWorld/ConfigPage.h (rev 0) +++ trunk/Source/emergeHelloWorld/ConfigPage.h 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,48 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2007 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#ifndef __CONFIGPAGE_H +#define __CONFIGPAGE_H + +#include <tr1/memory> +#include <tr1/shared_ptr.h> +#include "Settings.h" +#include "resource.h" + +class ConfigPage +{ +public: + ConfigPage(std::tr1::shared_ptr<Settings> pSettings); + ~ConfigPage(); + BOOL DoInitDialog(HWND hwndDlg); + BOOL DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam); + INT_PTR DoNotify(HWND hwndDlg, LPARAM lParam); + bool UpdateSettings(HWND hwndDlg); + bool DoFontChooser(HWND hwndDlg); + static INT_PTR CALLBACK ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam); + +private: + std::tr1::shared_ptr<Settings> pSettings; + LOGFONT newFont; + HFONT buttonFont; +}; + +#endif + Added: trunk/Source/emergeHelloWorld/Makefile =================================================================== --- trunk/Source/emergeHelloWorld/Makefile (rev 0) +++ trunk/Source/emergeHelloWorld/Makefile 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,18 @@ +LIBS += -lemergeLib \ + -lole32 \ + -luuid \ + -lgdi32 \ + -lcomctl32 \ + -lcomdlg32 \ + -lemergeGraphics \ + -lemergeAppletEngine \ + -lemergeSchemeEngine \ + -lemergeBaseClasses + +TARGET = emergeHelloWorld +SUFFIX = .exe + +include ../functions.in +include ../globals.in +include ../applet_globals.in +include ../svn.in Added: trunk/Source/emergeHelloWorld/Settings.cpp =================================================================== --- trunk/Source/emergeHelloWorld/Settings.cpp (rev 0) +++ trunk/Source/emergeHelloWorld/Settings.cpp 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,169 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include "Settings.h" +#include <wchar.h> + +Settings::Settings() + :BaseSettings(false) +{ + ZeroMemory(&logFont, sizeof(LOGFONT)); +} + +void Settings::DoReadSettings(IOHelper& helper) +{ + BaseSettings::DoReadSettings(helper); + helper.ReadString(TEXT("TextAlign"), clockTextAlign, TEXT("left")); + helper.ReadString(TEXT("VerticalAlign"), clockVerticalAlign, TEXT("top")); + helper.ReadString(TEXT("Text"), textFormat, TEXT("Hello World!")); + helper.ReadString(TEXT("Tip"), tipFormat, TEXT("Welcome to%_My World!")); + helper.ReadString(TEXT("Font"), fontString, TEXT("Tahoma-12")); +} + +void Settings::DoWriteSettings(IOHelper& helper) +{ + BaseSettings::DoWriteSettings(helper); + helper.WriteString(TEXT("TextAlign"), clockTextAlign); + helper.WriteString(TEXT("VerticalAlign"), clockVerticalAlign); + helper.WriteString(TEXT("Text"), textFormat); + helper.WriteString(TEXT("Tip"), tipFormat); + + EGFontToString(logFont, fontString); + helper.WriteString(TEXT("Font"), fontString); +} + +void Settings::DoInitialize() +{ + BaseSettings::DoInitialize(); + + EGStringToFont(fontString, logFont); + + wcscpy(displayTextFormat, textFormat); + displayLines = ELStringReplace(displayTextFormat, (WCHAR*)TEXT("%_"), (WCHAR*)TEXT("\n"), false) + 1; + wcscpy(displayTipFormat, tipFormat); + ELStringReplace(displayTipFormat, (WCHAR*)TEXT("%_"), (WCHAR*)TEXT("\n"), false); +} + +void Settings::ResetDefaults() +{ + BaseSettings::ResetDefaults(); + wcscpy(clockTextAlign, (WCHAR*)TEXT("left")); + wcscpy(clockVerticalAlign, (WCHAR*)TEXT("top")); + wcscpy(textFormat, (WCHAR*)TEXT("Hello World!")); + wcscpy(tipFormat, (WCHAR*)TEXT("Welcome to%_My World!")); + wcscpy(fontString, (WCHAR*)TEXT("Tahoma-12")); + x = 400; + y = 400; +} + + +UINT Settings::GetDisplayLines() +{ + return displayLines; +} + +bool Settings::SetFont(LOGFONT *logFont) +{ + WCHAR tmp[MAX_LINE_LENGTH]; + EGFontToString(*logFont, tmp); + if (_wcsicmp(fontString, tmp) != 0) + { + wcscpy(fontString, tmp); + CopyMemory(&this->logFont, logFont, sizeof(LOGFONT)); + SetModified(); + } + return true; +} + +LOGFONT *Settings::GetFont() +{ + return &logFont; +} + +WCHAR *Settings::GetTextAlign() +{ + return clockTextAlign; +} + +WCHAR *Settings::GetVerticalAlign() +{ + return clockVerticalAlign; +} + +WCHAR *Settings::GetTextFormat() +{ + return textFormat; +} + +WCHAR *Settings::GetDisplayTextFormat() +{ + return displayTextFormat; +} + +WCHAR *Settings::GetDisplayTipFormat() +{ + return displayTipFormat; +} + +WCHAR *Settings::GetTipFormat() +{ + return tipFormat; +} + +bool Settings::SetTextAlign(WCHAR *clockTextAlign) +{ + if (_wcsicmp(this->clockTextAlign, clockTextAlign) != 0) + { + wcscpy(this->clockTextAlign, clockTextAlign); + SetModified(); + } + return true; +} + +bool Settings::SetVerticalAlign(WCHAR *clockVerticalAlign) +{ + if (_wcsicmp(this->clockVerticalAlign, clockVerticalAlign) != 0) + { + wcscpy(this->clockVerticalAlign, clockVerticalAlign); + SetModified(); + } + return true; +} + +bool Settings::SetTextFormat(WCHAR *textFormat) +{ + if (_wcsicmp(this->textFormat, textFormat) != 0) + { + wcscpy(this->textFormat, textFormat); + SetModified(); + } + return true; +} + +bool Settings::SetTipFormat(WCHAR *tipFormat) +{ + if (_wcsicmp(this->tipFormat, tipFormat) != 0) + { + wcscpy(this->tipFormat, tipFormat); + SetModified(); + } + return true; +} + Added: trunk/Source/emergeHelloWorld/Settings.h =================================================================== --- trunk/Source/emergeHelloWorld/Settings.h (rev 0) +++ trunk/Source/emergeHelloWorld/Settings.h 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,68 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2007 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#ifndef __SETTINGS_H +#define __SETTINGS_H + +#include "../emergeLib/emergeLib.h" +#include "../emergeBaseClasses/BaseSettings.h" + +#include <string> +#include <vector> + +#define MAX_HISTORY 10 + +class Settings : public BaseSettings +{ +public: + Settings(); + WCHAR *GetTextFormat(); + WCHAR *GetDisplayTextFormat(); + WCHAR *GetTipFormat(); + WCHAR *GetDisplayTipFormat(); + WCHAR *GetTextAlign(); + WCHAR *GetVerticalAlign(); + LOGFONT *GetFont(); + UINT GetDisplayLines(); + bool SetFont(LOGFONT *logFont); + bool SetTextFormat(WCHAR *textFormat); + bool SetTipFormat(WCHAR *textFormat); + bool SetTextAlign(WCHAR *clockTextAlign); + bool SetVerticalAlign(WCHAR *clockVerticalAlign); + +protected: + virtual void DoReadSettings(IOHelper& helper); + virtual void DoWriteSettings(IOHelper& helper); + virtual void DoInitialize(); + virtual void ResetDefaults(); + +private: + WCHAR textFormat[MAX_LINE_LENGTH]; + WCHAR displayTextFormat[MAX_LINE_LENGTH]; + WCHAR tipFormat[MAX_LINE_LENGTH]; + WCHAR displayTipFormat[MAX_LINE_LENGTH]; + WCHAR clockTextAlign[MAX_LINE_LENGTH]; + WCHAR clockVerticalAlign[MAX_LINE_LENGTH]; + WCHAR fontString[MAX_LINE_LENGTH]; + LOGFONT logFont; + UINT displayLines; +}; + +#endif Added: trunk/Source/emergeHelloWorld/TextPage.cpp =================================================================== --- trunk/Source/emergeHelloWorld/TextPage.cpp (rev 0) +++ trunk/Source/emergeHelloWorld/TextPage.cpp 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,169 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include "TextPage.h" + +INT_PTR CALLBACK TextPage::TextPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam UNUSED, LPARAM lParam) +{ + static TextPage *pTextPage = NULL; + PROPSHEETPAGE *psp; + + switch (message) + { + case WM_INITDIALOG: + psp = (PROPSHEETPAGE*)lParam; + pTextPage = reinterpret_cast<TextPage*>(psp->lParam); + if (!pTextPage) + break; + return pTextPage->DoInitDialog(hwndDlg); + + case WM_NOTIFY: + if (!pTextPage) + break; + return pTextPage->DoNotify(hwndDlg, lParam); + } + + return FALSE; +} + +TextPage::TextPage(std::tr1::shared_ptr<Settings> pSettings) +{ + this->pSettings = pSettings; +} + +TextPage::~TextPage() +{ +} + +INT_PTR TextPage::DoNotify(HWND hwndDlg, LPARAM lParam) +{ + NMHDR *phdr = (NMHDR*)lParam; + + switch (phdr->code) + { + case PSN_APPLY: + if (UpdateSettings(hwndDlg)) + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_NOERROR); + else + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID); + return 1; + + case PSN_SETACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, 0); + return 1; + + case PSN_KILLACTIVE: + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, FALSE); + return 1; + } + + return 0; +} + +BOOL TextPage::DoInitDialog(HWND hwndDlg) +{ + int anchorIndex; + + if (pSettings->GetDynamicPositioning()) + SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_SETCHECK, BST_CHECKED, 0); + + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("TopLeft")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("TopMiddle")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("TopRight")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("CenterLeft")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("CenterMiddle")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("CenterRight")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("BottomLeft")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("BottomMiddle")); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_ADDSTRING, 0, (LPARAM)TEXT("BottomRight")); + + anchorIndex = (int)SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_FINDSTRINGEXACT, (WPARAM)-1, + (LPARAM)pSettings->GetAnchorPoint()); + SendDlgItemMessage(hwndDlg, IDC_ANCHOR, CB_SETCURSEL, anchorIndex, 0); + + if (_wcsicmp(pSettings->GetZPosition(), TEXT("top")) == 0) + SendDlgItemMessage(hwndDlg, IDC_TOP, BM_SETCHECK, BST_CHECKED, 0); + else if (_wcsicmp(pSettings->GetZPosition(), TEXT("bottom")) == 0) + SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_SETCHECK, BST_CHECKED, 0); + else + SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_SETCHECK, BST_CHECKED, 0); + + if (_wcsicmp(pSettings->GetTextAlign(), TEXT("right")) == 0) + SendDlgItemMessage(hwndDlg, IDC_CLOCKRIGHT, BM_SETCHECK, BST_CHECKED, 0); + else if (_wcsicmp(pSettings->GetTextAlign(), TEXT("center")) == 0) + SendDlgItemMessage(hwndDlg, IDC_CLOCKHCENTER, BM_SETCHECK, BST_CHECKED, 0); + else + SendDlgItemMessage(hwndDlg, IDC_CLOCKLEFT, BM_SETCHECK, BST_CHECKED, 0); + + if (_wcsicmp(pSettings->GetVerticalAlign(), TEXT("bottom")) == 0) + SendDlgItemMessage(hwndDlg, IDC_CLOCKBOTTOM, BM_SETCHECK, BST_CHECKED, 0); + else if (_wcsicmp(pSettings->GetVerticalAlign(), TEXT("center")) == 0) + SendDlgItemMessage(hwndDlg, IDC_CLOCKVCENTER, BM_SETCHECK, BST_CHECKED, 0); + else + SendDlgItemMessage(hwndDlg, IDC_CLOCKTOP, BM_SETCHECK, BST_CHECKED, 0); + + return TRUE; +} + +bool TextPage::UpdateSettings(HWND hwndDlg) +{ + const WCHAR* tmpValue; + WCHAR tmp[MAX_LINE_LENGTH]; + + if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_CHECKED) + pSettings->SetDynamicPositioning(true); + else if (SendDlgItemMessage(hwndDlg, IDC_DYNAMICPOSITIONING, BM_GETCHECK, 0, 0) == BST_UNCHECKED) + pSettings->SetDynamicPositioning(false); + + if (GetDlgItemText(hwndDlg, IDC_ANCHOR, tmp, MAX_LINE_LENGTH) != 0) + { + if (wcscmp(tmp, pSettings->GetAnchorPoint()) != 0) + pSettings->SetAnchorPoint(tmp); + } + + if (SendDlgItemMessage(hwndDlg, IDC_TOP, BM_GETCHECK, 0, 0) == BST_CHECKED) + pSettings->SetZPosition((WCHAR*)TEXT("Top")); + if (SendDlgItemMessage(hwndDlg, IDC_BOTTOM, BM_GETCHECK, 0, 0) == BST_CHECKED) + pSettings->SetZPosition((WCHAR*)TEXT("Bottom")); + if (SendDlgItemMessage(hwndDlg, IDC_NORMAL, BM_GETCHECK, 0, 0) == BST_CHECKED) + pSettings->SetZPosition((WCHAR*)TEXT("Normal")); + + if (SendDlgItemMessage(hwndDlg, IDC_CLOCKLEFT, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Left"); + if (SendDlgItemMessage(hwndDlg, IDC_CLOCKHCENTER, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Center"); + if (SendDlgItemMessage(hwndDlg, IDC_CLOCKRIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Right"); + pSettings->SetTextAlign((WCHAR*)tmpValue); + + if (SendDlgItemMessage(hwndDlg, IDC_CLOCKTOP, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Top"); + if (SendDlgItemMessage(hwndDlg, IDC_CLOCKVCENTER, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Center"); + if (SendDlgItemMessage(hwndDlg, IDC_CLOCKBOTTOM, BM_GETCHECK, 0, 0) == BST_CHECKED) + tmpValue = TEXT("Bottom"); + pSettings->SetVerticalAlign((WCHAR*)tmpValue); + + // commit changes + pSettings->WriteSettings(); + + return true; +} + Added: trunk/Source/emergeHelloWorld/TextPage.dlg =================================================================== --- trunk/Source/emergeHelloWorld/TextPage.dlg (rev 0) +++ trunk/Source/emergeHelloWorld/TextPage.dlg 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,48 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +IDD_TEXT_PAGE DIALOGEX 0, 0, CONFIG_WIDTH, CONFIG_HEIGHT +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "emergeHelloWorld Configuration" +FONT 8, "MS Shell Dlg" +BEGIN + +CONTROL "Anchor Point:",IDC_DYNAMICPOSITIONING,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,5,55,10 +COMBOBOX IDC_ANCHOR,62,3,60,150,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP + +GROUPBOX "ZPosition",IDC_STATIC6,5,20,CONFIG_WIDTH-10,25,WS_GROUP +CONTROL "Top",IDC_TOP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,10,30,40,10 +CONTROL "Normal",IDC_NORMAL,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,CONFIG_WIDTH/2-20,30,40,10 +CONTROL "Bottom",IDC_BOTTOM,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,CONFIG_WIDTH-50,30,40,10 + +GROUPBOX "Text Alignment",IDC_STATIC5,5,50,CONFIG_WIDTH-10,75,WS_GROUP + +GROUPBOX "Horizontal",IDC_STATIC6,10,60,CONFIG_WIDTH-20,25,WS_GROUP +CONTROL "Left",IDC_CLOCKLEFT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,70,40,10 +CONTROL "Center",IDC_CLOCKHCENTER,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,CONFIG_WIDTH/2-17,70,35,10 +CONTROL "Right",IDC_CLOCKRIGHT,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,CONFIG_WIDTH-50,70,35,10 + +GROUPBOX "Vertical",IDC_STATIC7,10,95,CONFIG_WIDTH-20,25,WS_GROUP +CONTROL "Top",IDC_CLOCKTOP,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,15,105,40,10 +CONTROL "Center",IDC_CLOCKVCENTER,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,CONFIG_WIDTH/2-17,105,35,10 +CONTROL "Bottom",IDC_CLOCKBOTTOM,"Button",BS_AUTORADIOBUTTON|WS_TABSTOP,CONFIG_WIDTH-50,105,35,10 + +END + Added: trunk/Source/emergeHelloWorld/TextPage.h =================================================================== --- trunk/Source/emergeHelloWorld/TextPage.h (rev 0) +++ trunk/Source/emergeHelloWorld/TextPage.h 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,44 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2007 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#ifndef __TEXTPAGE_H +#define __TEXTPAGE_H + +#include <tr1/memory> +#include <tr1/shared_ptr.h> +#include "Settings.h" +#include "resource.h" + +class TextPage +{ +public: + TextPage(std::tr1::shared_ptr<Settings> pSettings); + ~TextPage(); + BOOL DoInitDialog(HWND hwndDlg); + INT_PTR DoNotify(HWND hwndDlg, LPARAM lParam); + bool UpdateSettings(HWND hwndDlg); + static INT_PTR CALLBACK TextPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam); + +private: + std::tr1::shared_ptr<Settings> pSettings; +}; + +#endif + Added: trunk/Source/emergeHelloWorld/emergeHelloWorld.exe.manifest =================================================================== --- trunk/Source/emergeHelloWorld/emergeHelloWorld.exe.manifest (rev 0) +++ trunk/Source/emergeHelloWorld/emergeHelloWorld.exe.manifest 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> + +<!-- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2007 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +--> + +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture="*" + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> + </dependency> + <!-- Vista High DPI aware --> + <asmv3:application> + <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> + <dpiAware>true</dpiAware> + </asmv3:windowsSettings> + </asmv3:application> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="asInvoker" /> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> Added: trunk/Source/emergeHelloWorld/emergeHelloWorld.rc =================================================================== --- trunk/Source/emergeHelloWorld/emergeHelloWorld.rc (rev 0) +++ trunk/Source/emergeHelloWorld/emergeHelloWorld.rc 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,71 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#define UNICODE +#define _WINGDI_ + +#include "resource.h" +#include "../version.h" +#include "../svnversion.h" +#include "ConfigPage.dlg" +#include "TextPage.dlg" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION EMERGE_MAJOR_VERSION,EMERGE_MINOR_VERSION,EMERGE_RELEASE_VERSION,SVN_VERSION + PRODUCTVERSION EMERGE_MAJOR_VERSION,EMERGE_MINOR_VERSION,EMERGE_RELEASE_VERSION,SVN_VERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef DEBUG + FILEFLAGS VS_FF_DEBUG +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004B0" + BEGIN + VALUE "CompanyName", "The Emerge Desktop Development Team" + VALUE "FileDescription", "emergeHelloWorld - applet for the Emerge Desktop" + VALUE "FileVersion", EMERGE_MAJOR_VERSION_STR "." EMERGE_MINOR_VERSION_STR "." EMERGE_RELEASE_VERSION_STR "." SVN_VERSION_STR + VALUE "InternalName", "emergeHelloWorld" + VALUE "LegalCopyright", "Copyright (C) 2009" + VALUE "OriginalFilename", "emergeHelloWorld.exe" + VALUE "ProductName", "emergeHelloWorld" + VALUE "ProductVersion", EMERGE_MAJOR_VERSION_STR "." EMERGE_MINOR_VERSION_STR "." EMERGE_RELEASE_VERSION_STR "." SVN_VERSION_STR + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END + +#ifdef __GNUC__ +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "emergeHelloWorld.exe.manifest" +#endif + +IDI_DEFAULT ICON "icons/emerge.ico" + +IDD_CONFIG DIALOGEX 0, 0, CONFIG_WIDTH, CONFIG_HEIGHT +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER +CAPTION "emergeTasks Configuration" +FONT 8, "MS Shell Dlg" +BEGIN +END Added: trunk/Source/emergeHelloWorld/icons/emerge.ico =================================================================== (Binary files differ) Property changes on: trunk/Source/emergeHelloWorld/icons/emerge.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/emergeHelloWorld/main.cpp =================================================================== --- trunk/Source/emergeHelloWorld/main.cpp (rev 0) +++ trunk/Source/emergeHelloWorld/main.cpp 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,91 @@ +//--- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2007 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--- + +#include "Applet.h" + +BOOL CALLBACK FocusWindowEnum(HWND hwnd, LPARAM lParam UNUSED) +{ + WCHAR window[MAX_PATH]; + + ZeroMemory(window, MAX_PATH); + ELGetWindowApp(hwnd, window, false); + _wcslwr(window); + + if (wcscmp(window, TEXT("emergecommand.exe")) == 0) + { + if (!IsWindowVisible(hwnd)) + return true; + + SetForegroundWindow(hwnd); + SendMessage(hwnd, WM_LBUTTONDOWN, 0, 0); + + return false; + } + + return true; +} + +//----- +// Function: WinMain +// Required: HINSTANCE hThisInstance - the instance of this application +// HINSTANCE hPrevInstance - not used +// LPSTR lpCmdLine - command line arguments +// int nCmdShow - Show / Hide window indicator +// Returns: int +// Purpose: Creates the window class as well as the main and tooltip +// windows +//----- +int WINAPI WinMain (HINSTANCE hInstance, + HINSTANCE hPrevInstance UNUSED, + LPSTR lpCmdLine UNUSED, + int nCmdShow UNUSED) + +{ + MSG messages; + + // Check to see if iTray is already running, if so exit + HANDLE hMutex = CreateMutex(NULL, false, TEXT("emergeHelloWorld")); + if (GetLastError() == ERROR_ALREADY_EXISTS) + { + EnumWindows(FocusWindowEnum, 0); + CloseHandle(hMutex); + return 0; + } + + Applet applet(hInstance); + + if (!applet.Initialize()) + return 0; + + // Run the message loop. It will run until GetMessage() returns 0 + while (GetMessage (&messages, NULL, 0, 0)) + { + // Translate virtual-key messages into character messages + TranslateMessage(&messages); + // Send message to WindowProcedure + DispatchMessage(&messages); + } + + // Clean-up the Mutex + CloseHandle(hMutex); + + // The program return-value is 0 - The value that PostQuitMessage() gave + return (int)messages.wParam; +} Added: trunk/Source/emergeHelloWorld/resource.h =================================================================== --- trunk/Source/emergeHelloWorld/resource.h (rev 0) +++ trunk/Source/emergeHelloWorld/resource.h 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,70 @@ +//---- -------------------------------------------------------------------------------------------------------- +// +// This file is part of Emerge Desktop. +// Copyright (C) 2004-2009 The Emerge Desktop Development Team +// +// Emerge Desktop is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// Emerge Desktop is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//---- -------------------------------------------------------------------------------------------------------- + +#include <winver.h> +#include <winuser.h> + +#define IDC_STATIC1 1001 +#define IDC_STATIC2 1002 +#define IDC_STATIC3 1003 +#define IDC_STATIC4 1004 +#define IDC_STATIC5 1005 +#define IDC_STATIC6 1006 +#define IDC_STATIC7 1007 +#define IDC_STATIC8 1008 +#define IDC_STATIC9 1009 +#define IDC_STATIC10 1010 + +#define IDD_CONFIG 100 +#define IDD_CONFIG_PAGE 101 +#define IDD_TEXT_PAGE 102 + + +#define IDC_CLOCKTEXT 200 +#define IDC_TIPTEXT 201 + +#define IDC_FONT_BUTTON 300 + +#define IDC_TOP 400 +#define IDC_NORMAL 401 +#define IDC_BOTTOM 402 + +#define IDC_CLOCKLEFT 500 +#define IDC_CLOCKHCENTER 501 +#define IDC_CLOCKRIGHT 502 +#define IDC_CLOCKTOP 503 +#define IDC_CLOCKVCENTER 504 +#define IDC_CLOCKBOTTOM 505 + +#define IDC_COMMANDLEFT 600 +#define IDC_COMMANDHCENTER 601 +#define IDC_COMMANDRIGHT 602 +#define IDC_COMMANDTOP 603 +#define IDC_COMMANDVCENTER 604 +#define IDC_COMMANDBOTTOM 605 + +#define IDC_SNAPMOVE 700 +#define IDC_SNAPSIZE 701 +#define IDC_CLICKTHROUGH 702 +#define IDC_CLICKTHROUGHMETHOD 703 +#define IDC_ANCHOR 704 +#define IDC_DYNAMICPOSITIONING 705 + +#define IDI_DEFAULT 1000 Added: trunk/Source/emergeHelloWorld/tags =================================================================== --- trunk/Source/emergeHelloWorld/tags (rev 0) +++ trunk/Source/emergeHelloWorld/tags 2009-11-10 14:55:10 UTC (rev 2707) @@ -0,0 +1,138 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhi...@us.../ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.8 // +Applet Applet.cpp /^Applet::Applet(HINSTANCE hInstance)$/;" f class:Applet +Applet Applet.h /^class Applet: public BaseApplet$/;" c +AppletUpdate Applet.cpp /^void Applet::AppletUpdate()$/;" f class:Applet +Config Config.cpp /^Config::Config(HINSTANCE hInstance, HWND mainWnd, std::tr1::shared_ptr<Settings> pSettings)$/;" f class:Config +Config Config.h /^class Config$/;" c +ConfigDlgProc Config.cpp /^INT_PTR CALLBACK Config::ConfigDlgProc(HWND hwndDlg, UINT message, WPARAM wParam UNUSED, LPARAM lParam UNUSED)$/;" f class:Config +ConfigPage ConfigPage.cpp /^ConfigPage::ConfigPage(std::tr1::shared_ptr<Settings> pSettings)$/;" f class:ConfigPage +ConfigPage ConfigPage.h /^class ConfigPage$/;" c +ConfigPageDlgProc ConfigPage.cpp /^INT_PTR CALLBACK ConfigPage::ConfigPageDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)$/;" f class:ConfigPage +DoCommand ConfigPage.cpp /^BOOL ConfigPage::DoCommand(HWND hwndDlg, WPARAM wParam, LPARAM lParam UNUSED)$/;" f class:ConfigPage +DoFontChooser ConfigPage.cpp /^bool ConfigPage::DoFontChooser(HWND hwndDlg)$/;" f class:ConfigPage +DoInitDialog Config.cpp /^INT_PTR Config::DoInitDialog(HWND hwndDlg)$/;" f class:Config +DoInitDialog ConfigPage.cpp /^BOOL ConfigPage::DoInitDialog(HWND hwndDlg)$/;" f class:ConfigPage +DoInitDialog TextP... [truncated message content] |