Merge from 2.5 r20855 through r20966

Build fails: http://www.pasteall.org/6201/text
This commit is contained in:
Arystanbek Dyussenov 2009-06-18 11:42:30 +00:00
commit 8bafa19853
236 changed files with 19638 additions and 5063 deletions

@ -3,6 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 10.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj", "{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj", "{F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F} = {E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F} {E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F} = {E5F2F004-C704-4DCC-A08F-6EB1E38EAB9F}
{6E24BF09-9653-4166-A871-F65CC9E98A9B} = {6E24BF09-9653-4166-A871-F65CC9E98A9B}
{A90C4918-4B21-4277-93BD-AF65F30951D9} = {A90C4918-4B21-4277-93BD-AF65F30951D9} {A90C4918-4B21-4277-93BD-AF65F30951D9} = {A90C4918-4B21-4277-93BD-AF65F30951D9}
{FB88301F-F725-401B-ACD7-D2ABBF333B71} = {FB88301F-F725-401B-ACD7-D2ABBF333B71} {FB88301F-F725-401B-ACD7-D2ABBF333B71} = {FB88301F-F725-401B-ACD7-D2ABBF333B71}
{98330220-47A6-42E0-9DE4-AD0FF5D204D6} = {98330220-47A6-42E0-9DE4-AD0FF5D204D6} {98330220-47A6-42E0-9DE4-AD0FF5D204D6} = {98330220-47A6-42E0-9DE4-AD0FF5D204D6}
@ -11,6 +12,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj",
{9625642D-6F20-4FB6-A089-BE7441B223E3} = {9625642D-6F20-4FB6-A089-BE7441B223E3} {9625642D-6F20-4FB6-A089-BE7441B223E3} = {9625642D-6F20-4FB6-A089-BE7441B223E3}
{D1A9312F-4557-4982-A0F4-4D08508235F4} = {D1A9312F-4557-4982-A0F4-4D08508235F4} {D1A9312F-4557-4982-A0F4-4D08508235F4} = {D1A9312F-4557-4982-A0F4-4D08508235F4}
{884D8731-654C-4C7F-9A75-8F37A305BE1E} = {884D8731-654C-4C7F-9A75-8F37A305BE1E} {884D8731-654C-4C7F-9A75-8F37A305BE1E} = {884D8731-654C-4C7F-9A75-8F37A305BE1E}
{E645CC32-4823-463E-82F0-46ADDE664018} = {E645CC32-4823-463E-82F0-46ADDE664018}
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284} = {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284} {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284} = {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}
{FAF46346-65CC-4DB2-85C4-B99826F79D0C} = {FAF46346-65CC-4DB2-85C4-B99826F79D0C} {FAF46346-65CC-4DB2-85C4-B99826F79D0C} = {FAF46346-65CC-4DB2-85C4-B99826F79D0C}
{51FB3D48-2467-4BFA-A321-D848252B437E} = {51FB3D48-2467-4BFA-A321-D848252B437E} {51FB3D48-2467-4BFA-A321-D848252B437E} = {51FB3D48-2467-4BFA-A321-D848252B437E}
@ -20,6 +22,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj",
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E} = {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E} {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E} = {B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}
{DB6BE55D-B6D9-494D-856A-8764FF7BA91D} = {DB6BE55D-B6D9-494D-856A-8764FF7BA91D} {DB6BE55D-B6D9-494D-856A-8764FF7BA91D} = {DB6BE55D-B6D9-494D-856A-8764FF7BA91D}
{6461F05D-4698-47AB-A8E8-1CA2ACC9948B} = {6461F05D-4698-47AB-A8E8-1CA2ACC9948B} {6461F05D-4698-47AB-A8E8-1CA2ACC9948B} = {6461F05D-4698-47AB-A8E8-1CA2ACC9948B}
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E} = {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}
{09222F5E-1625-4FF3-A89A-384D16875EE5} = {09222F5E-1625-4FF3-A89A-384D16875EE5} {09222F5E-1625-4FF3-A89A-384D16875EE5} = {09222F5E-1625-4FF3-A89A-384D16875EE5}
{D696C86B-0B53-4471-A50D-5B983A6FA4AD} = {D696C86B-0B53-4471-A50D-5B983A6FA4AD} {D696C86B-0B53-4471-A50D-5B983A6FA4AD} = {D696C86B-0B53-4471-A50D-5B983A6FA4AD}
{138DD16C-CC78-4F6C-A898-C8DA68D89067} = {138DD16C-CC78-4F6C-A898-C8DA68D89067} {138DD16C-CC78-4F6C-A898-C8DA68D89067} = {138DD16C-CC78-4F6C-A898-C8DA68D89067}
@ -27,10 +30,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj",
{106AE171-0083-41D6-A949-20DB0E8DC251} = {106AE171-0083-41D6-A949-20DB0E8DC251} {106AE171-0083-41D6-A949-20DB0E8DC251} = {106AE171-0083-41D6-A949-20DB0E8DC251}
{670EC17A-0548-4BBF-A27B-636C7C188139} = {670EC17A-0548-4BBF-A27B-636C7C188139} {670EC17A-0548-4BBF-A27B-636C7C188139} = {670EC17A-0548-4BBF-A27B-636C7C188139}
{4C3AB78A-52CA-4276-A041-39776E52D8C8} = {4C3AB78A-52CA-4276-A041-39776E52D8C8} {4C3AB78A-52CA-4276-A041-39776E52D8C8} = {4C3AB78A-52CA-4276-A041-39776E52D8C8}
{6B801390-5F95-4F07-81A7-97FBA046AACC} = {6B801390-5F95-4F07-81A7-97FBA046AACC}
{CAE37E91-6570-43AC-A4B4-7A37A4B0FC94} = {CAE37E91-6570-43AC-A4B4-7A37A4B0FC94} {CAE37E91-6570-43AC-A4B4-7A37A4B0FC94} = {CAE37E91-6570-43AC-A4B4-7A37A4B0FC94}
{76D90B92-ECC7-409C-9F98-A8814B90F3C0} = {76D90B92-ECC7-409C-9F98-A8814B90F3C0} {76D90B92-ECC7-409C-9F98-A8814B90F3C0} = {76D90B92-ECC7-409C-9F98-A8814B90F3C0}
{9C71A793-C177-4CAB-8EC5-923D500B39F8} = {9C71A793-C177-4CAB-8EC5-923D500B39F8} {9C71A793-C177-4CAB-8EC5-923D500B39F8} = {9C71A793-C177-4CAB-8EC5-923D500B39F8}
{F90BD995-FFA4-4B18-81E8-FA4322C939E8} = {F90BD995-FFA4-4B18-81E8-FA4322C939E8}
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} = {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} = {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}
{8154A59A-CAED-403D-AB94-BC4E7C032666} = {8154A59A-CAED-403D-AB94-BC4E7C032666}
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7} = {3648FB9A-C36F-43AB-AED0-1F1361E67FC7} {3648FB9A-C36F-43AB-AED0-1F1361E67FC7} = {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}
{542A9FA1-B7FF-441C-AE15-054DB31D3488} = {542A9FA1-B7FF-441C-AE15-054DB31D3488} {542A9FA1-B7FF-441C-AE15-054DB31D3488} = {542A9FA1-B7FF-441C-AE15-054DB31D3488}
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B} = {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B} {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B} = {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}
@ -132,7 +138,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blenderplayer", "..\gameeng
{BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE} = {BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE} {BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE} = {BAAE3F2B-BCF8-4E84-B8BA-CFB2D64945FE}
{C66F722C-46BE-40C9-ABAE-2EAC7A697EB8} = {C66F722C-46BE-40C9-ABAE-2EAC7A697EB8} {C66F722C-46BE-40C9-ABAE-2EAC7A697EB8} = {C66F722C-46BE-40C9-ABAE-2EAC7A697EB8}
{9625642D-6F20-4FB6-A089-BE7441B223E3} = {9625642D-6F20-4FB6-A089-BE7441B223E3} {9625642D-6F20-4FB6-A089-BE7441B223E3} = {9625642D-6F20-4FB6-A089-BE7441B223E3}
{D1A9312F-4557-4982-A0F4-4D08508235F4} = {D1A9312F-4557-4982-A0F4-4D08508235F4}
{E645CC32-4823-463E-82F0-46ADDE664018} = {E645CC32-4823-463E-82F0-46ADDE664018} {E645CC32-4823-463E-82F0-46ADDE664018} = {E645CC32-4823-463E-82F0-46ADDE664018}
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284} = {7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}
{FAF46346-65CC-4DB2-85C4-B99826F79D0C} = {FAF46346-65CC-4DB2-85C4-B99826F79D0C} {FAF46346-65CC-4DB2-85C4-B99826F79D0C} = {FAF46346-65CC-4DB2-85C4-B99826F79D0C}
{51FB3D48-2467-4BFA-A321-D848252B437E} = {51FB3D48-2467-4BFA-A321-D848252B437E} {51FB3D48-2467-4BFA-A321-D848252B437E} = {51FB3D48-2467-4BFA-A321-D848252B437E}
{FFD3C64A-30E2-4BC7-BC8F-51818C320400} = {FFD3C64A-30E2-4BC7-BC8F-51818C320400} {FFD3C64A-30E2-4BC7-BC8F-51818C320400} = {FFD3C64A-30E2-4BC7-BC8F-51818C320400}
@ -153,6 +161,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blenderplayer", "..\gameeng
{9C71A793-C177-4CAB-8EC5-923D500B39F8} = {9C71A793-C177-4CAB-8EC5-923D500B39F8} {9C71A793-C177-4CAB-8EC5-923D500B39F8} = {9C71A793-C177-4CAB-8EC5-923D500B39F8}
{F90BD995-FFA4-4B18-81E8-FA4322C939E8} = {F90BD995-FFA4-4B18-81E8-FA4322C939E8} {F90BD995-FFA4-4B18-81E8-FA4322C939E8} = {F90BD995-FFA4-4B18-81E8-FA4322C939E8}
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} = {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} = {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}
{8154A59A-CAED-403D-AB94-BC4E7C032666} = {8154A59A-CAED-403D-AB94-BC4E7C032666}
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7} = {3648FB9A-C36F-43AB-AED0-1F1361E67FC7} {3648FB9A-C36F-43AB-AED0-1F1361E67FC7} = {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}
{542A9FA1-B7FF-441C-AE15-054DB31D3488} = {542A9FA1-B7FF-441C-AE15-054DB31D3488} {542A9FA1-B7FF-441C-AE15-054DB31D3488} = {542A9FA1-B7FF-441C-AE15-054DB31D3488}
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0} = {D8ABD6A5-1B36-4D62-934E-B5C6801130B0} {D8ABD6A5-1B36-4D62-934E-B5C6801130B0} = {D8ABD6A5-1B36-4D62-934E-B5C6801130B0}
@ -164,6 +173,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blenderplayer", "..\gameeng
{8B8D4FC3-3234-4E54-8376-5AB83D00D164} = {8B8D4FC3-3234-4E54-8376-5AB83D00D164} {8B8D4FC3-3234-4E54-8376-5AB83D00D164} = {8B8D4FC3-3234-4E54-8376-5AB83D00D164}
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74} = {4B6AFCC5-968C-424A-8F20-76E41B3BEF74} {4B6AFCC5-968C-424A-8F20-76E41B3BEF74} = {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}
{0112CAD5-3584-412A-A2E5-1315A00437B4} = {0112CAD5-3584-412A-A2E5-1315A00437B4} {0112CAD5-3584-412A-A2E5-1315A00437B4} = {0112CAD5-3584-412A-A2E5-1315A00437B4}
{2AE0D2D9-6A7A-44DE-9EFF-99C9E3257B49} = {2AE0D2D9-6A7A-44DE-9EFF-99C9E3257B49}
{5A2EA6DC-1A53-4E87-9166-52870CE3B4EA} = {5A2EA6DC-1A53-4E87-9166-52870CE3B4EA} {5A2EA6DC-1A53-4E87-9166-52870CE3B4EA} = {5A2EA6DC-1A53-4E87-9166-52870CE3B4EA}
{E86B7BDE-C33C-4E55-9433-E74C141D7538} = {E86B7BDE-C33C-4E55-9433-E74C141D7538} {E86B7BDE-C33C-4E55-9433-E74C141D7538} = {E86B7BDE-C33C-4E55-9433-E74C141D7538}
{32CC75E2-EE85-45E6-8E3D-513F58464F43} = {32CC75E2-EE85-45E6-8E3D-513F58464F43} {32CC75E2-EE85-45E6-8E3D-513F58464F43} = {32CC75E2-EE85-45E6-8E3D-513F58464F43}
@ -579,7 +589,9 @@ Global
{8154A59A-CAED-403D-AB94-BC4E7C032666}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32 {8154A59A-CAED-403D-AB94-BC4E7C032666}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32 {8154A59A-CAED-403D-AB94-BC4E7C032666}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32 {8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Blender Release|Win32.Build.0 = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32 {8154A59A-CAED-403D-AB94-BC4E7C032666}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32 {8154A59A-CAED-403D-AB94-BC4E7C032666}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
{8154A59A-CAED-403D-AB94-BC4E7C032666}.Debug|Win32.ActiveCfg = Blender Debug|Win32 {8154A59A-CAED-403D-AB94-BC4E7C032666}.Debug|Win32.ActiveCfg = Blender Debug|Win32
@ -591,7 +603,9 @@ Global
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32 {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32 {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32 {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.Blender Release|Win32.Build.0 = Blender Release|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32 {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32 {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32
{F90BD995-FFA4-4B18-81E8-FA4322C939E8}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32 {F90BD995-FFA4-4B18-81E8-FA4322C939E8}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
@ -605,7 +619,9 @@ Global
{E645CC32-4823-463E-82F0-46ADDE664018}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32 {E645CC32-4823-463E-82F0-46ADDE664018}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32 {E645CC32-4823-463E-82F0-46ADDE664018}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32 {E645CC32-4823-463E-82F0-46ADDE664018}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {E645CC32-4823-463E-82F0-46ADDE664018}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.Blender Release|Win32.Build.0 = Blender Release|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32 {E645CC32-4823-463E-82F0-46ADDE664018}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32 {E645CC32-4823-463E-82F0-46ADDE664018}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32
{E645CC32-4823-463E-82F0-46ADDE664018}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32 {E645CC32-4823-463E-82F0-46ADDE664018}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
@ -619,7 +635,9 @@ Global
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32 {6E24BF09-9653-4166-A871-F65CC9E98A9B}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32 {6E24BF09-9653-4166-A871-F65CC9E98A9B}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32 {6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.Blender Release|Win32.Build.0 = Blender Release|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32 {6E24BF09-9653-4166-A871-F65CC9E98A9B}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32 {6E24BF09-9653-4166-A871-F65CC9E98A9B}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32
{6E24BF09-9653-4166-A871-F65CC9E98A9B}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32 {6E24BF09-9653-4166-A871-F65CC9E98A9B}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
@ -633,7 +651,9 @@ Global
{6B801390-5F95-4F07-81A7-97FBA046AACC}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32 {6B801390-5F95-4F07-81A7-97FBA046AACC}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32 {6B801390-5F95-4F07-81A7-97FBA046AACC}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32 {6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.Blender Release|Win32.Build.0 = Blender Release|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32 {6B801390-5F95-4F07-81A7-97FBA046AACC}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32 {6B801390-5F95-4F07-81A7-97FBA046AACC}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32
{6B801390-5F95-4F07-81A7-97FBA046AACC}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32 {6B801390-5F95-4F07-81A7-97FBA046AACC}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
@ -647,7 +667,9 @@ Global
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32 {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32 {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.3D Plugin Release|Win32.Build.0 = 3D Plugin Release|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32 {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.Blender Release|Win32.Build.0 = Blender Release|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32 {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32 {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32
{0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32 {0A73055E-4DED-40CD-9F72-9093ED3EEC7E}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
@ -836,8 +858,8 @@ Global
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Debug|Win32.Build.0 = Blender Debug|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Release|Win32.Build.0 = Blender Release|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Blender Release|Win32.Build.0 = Blender Release|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Release|Win32.ActiveCfg = BlenderPlayer Release|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Release|Win32.Build.0 = BlenderPlayer Release|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.BlenderPlayer Release|Win32.Build.0 = BlenderPlayer Release|Win32
{E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32 {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
@ -1318,8 +1340,8 @@ Global
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Debug|Win32.Build.0 = Blender Debug|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Release|Win32.ActiveCfg = Blender Release|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Release|Win32.Build.0 = Blender Release|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Blender Release|Win32.Build.0 = Blender Release|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
{DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Debug|Win32.ActiveCfg = Blender Debug|Win32 {DFE7F3E3-E62A-4677-B666-DF0DDF70C359}.Debug|Win32.ActiveCfg = Blender Debug|Win32

@ -119,7 +119,7 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CONSOLE;GAMEBLENDER;WITH_QUICKTIME;INTERNATIONAL;WITH_BF_INTERNATIONAL;WITH_FREETYPE2;WITH_OPENEXR;WITH_DDS;WITH_BULLET = 1;WITH_FFMPEG" PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CONSOLE;GAMEBLENDER=1;WITH_QUICKTIME;INTERNATIONAL;WITH_BF_INTERNATIONAL;WITH_FREETYPE2;WITH_OPENEXR;WITH_DDS;WITH_BULLET = 1;WITH_FFMPEG"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
DefaultCharIsUnsigned="true" DefaultCharIsUnsigned="true"
@ -309,6 +309,10 @@
RelativePath="..\..\..\source\blender\editors\include\ED_view3d.h" RelativePath="..\..\..\source\blender\editors\include\ED_view3d.h"
> >
</File> </File>
<File
RelativePath="..\..\..\source\blender\editors\include\UI_icons.h"
>
</File>
<File <File
RelativePath="..\..\..\source\blender\editors\include\UI_interface.h" RelativePath="..\..\..\source\blender\editors\include\UI_interface.h"
> >
@ -726,6 +730,10 @@
RelativePath="..\..\..\source\blender\editors\space_buttons\buttons_intern.h" RelativePath="..\..\..\source\blender\editors\space_buttons\buttons_intern.h"
> >
</File> </File>
<File
RelativePath="..\..\..\source\blender\editors\space_buttons\buttons_ops.c"
>
</File>
<File <File
RelativePath="..\..\..\source\blender\editors\space_buttons\space_buttons.c" RelativePath="..\..\..\source\blender\editors\space_buttons\space_buttons.c"
> >
@ -874,6 +882,10 @@
RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_add.c" RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_add.c"
> >
</File> </File>
<File
RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_buttons.c"
>
</File>
<File <File
RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_draw.c" RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_draw.c"
> >
@ -882,10 +894,6 @@
RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_edit.c" RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_edit.c"
> >
</File> </File>
<File
RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_header.c"
>
</File>
<File <File
RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_intern.h" RelativePath="..\..\..\source\blender\editors\space_sequencer\sequencer_intern.h"
> >

@ -43,7 +43,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS" PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"

@ -608,6 +608,10 @@
<Filter <Filter
Name="TEX_nodes" Name="TEX_nodes"
> >
<File
RelativePath="..\..\..\source\blender\nodes\intern\TEX_nodes\TEX_at.c"
>
</File>
<File <File
RelativePath="..\..\..\source\blender\nodes\intern\TEX_nodes\TEX_bricks.c" RelativePath="..\..\..\source\blender\nodes\intern\TEX_nodes\TEX_bricks.c"
> >

@ -43,7 +43,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenfont"
PreprocessorDefinitions="WIN32;_LIB;_DEBUG;WITH_GLEXT;WITH_FFMPEG" PreprocessorDefinitions="WIN32;_LIB;_DEBUG;WITH_GLEXT;WITH_FFMPEG"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@ -119,7 +119,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenfont"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;WITH_FFMPEG" PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;WITH_FFMPEG"
StringPooling="true" StringPooling="true"
BasicRuntimeChecks="0" BasicRuntimeChecks="0"

@ -42,7 +42,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager"
PreprocessorDefinitions="WIN32,_LIB,_DEBUG" PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
@ -117,7 +117,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID" PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
@ -193,7 +193,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager"
PreprocessorDefinitions="WIN32,_LIB,_DEBUG" PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@ -268,7 +268,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID" PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
StringPooling="true" StringPooling="true"
RuntimeLibrary="2" RuntimeLibrary="2"
@ -344,7 +344,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager"
PreprocessorDefinitions="WIN32,_LIB,_DEBUG" PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@ -419,7 +419,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu" AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python2.5;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID" PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"

@ -72,7 +72,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386&#x0D;&#x0A;" AdditionalOptions="/MACHINE:I386&#x0D;&#x0A;"
AdditionalDependencies="odelib.lib fmodvc.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib openal_static.lib libjpeg.lib dxguid.lib libeay32.lib libpng.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python25_d.lib pthreadVSE2.lib pthreadVC2.lib Half_d.lib Iex_d.lib IlmImf_d.lib IlmThread_d.lib Imath_d.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib" AdditionalDependencies="ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib openal_static.lib libjpeg.lib dxguid.lib libeay32.lib libpng.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python25_d.lib pthreadVSE2.lib pthreadVC2.lib Half_d.lib Iex_d.lib IlmImf_d.lib IlmThread_d.lib Imath_d.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"
ShowProgress="0" ShowProgress="0"
OutputFile="..\..\..\..\bin\debug\blenderplayer.exe" OutputFile="..\..\..\..\bin\debug\blenderplayer.exe"
LinkIncremental="2" LinkIncremental="2"
@ -233,10 +233,6 @@
RelativePath="..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.cpp" RelativePath="..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.cpp"
> >
</File> </File>
<File
RelativePath="..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c"
>
</File>
<File <File
RelativePath="..\..\..\..\source\icons\winplayer.rc" RelativePath="..\..\..\..\source\icons\winplayer.rc"
> >

@ -1,6 +1,6 @@
#dxfLibrary.py : provides functions for generating DXF files #dxfLibrary.py : provides functions for generating DXF files
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
__version__ = "v1.32 - 2009.06.06" __version__ = "v1.33 - 2009.06.16"
__author__ = "Stani Michiels(Stani), Remigiusz Fiedler(migius)" __author__ = "Stani Michiels(Stani), Remigiusz Fiedler(migius)"
__license__ = "GPL" __license__ = "GPL"
__url__ = "http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_dxf" __url__ = "http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_dxf"
@ -20,8 +20,14 @@ IDEAs:
TODO: TODO:
- add support for DXFr14 (needs extended file header) - add support for DXFr14 (needs extended file header)
- add support for SPLINEs (possible first in DXFr14 version) - add support for SPLINEs (possible first in DXFr14 version)
- add user preset for floating point precision (3-16?)
History History
v1.33 - 2009.06.16 by migius
- modif _point(): converts all coords to floats
- modif LineType class: implement elements
- added VPORT class, incl. defaults
- fix Insert class
v1.32 - 2009.06.06 by migius v1.32 - 2009.06.06 by migius
- modif Style class: changed defaults to widthFactor=1.0, obliqueAngle=0.0 - modif Style class: changed defaults to widthFactor=1.0, obliqueAngle=0.0
- modif Text class: alignment parameter reactivated - modif Text class: alignment parameter reactivated
@ -88,7 +94,7 @@ _HEADER_POINTS=['insbase','extmin','extmax']
def _point(x,index=0): def _point(x,index=0):
"""Convert tuple to a dxf point""" """Convert tuple to a dxf point"""
#print 'deb: _point=', x #------------- #print 'deb: _point=', x #-------------
return '\n'.join([' %s\n%s'%((i+1)*10+index,x[i]) for i in range(len(x))]) return '\n'.join([' %s\n%s'%((i+1)*10+index,float(x[i])) for i in range(len(x))])
def _points(plist): def _points(plist):
"""Convert a list of tuples to dxf points""" """Convert a list of tuples to dxf points"""
@ -287,7 +293,7 @@ class Insert(_Entity):
self.rotation=rotation self.rotation=rotation
def __str__(self): def __str__(self):
result=' 0\nINSERT\n 2\n%s\n%s\n%s\n'%\ result=' 0\nINSERT\n 2\n%s\n%s%s\n'%\
(self.name,self._common(),_point(self.point)) (self.name,self._common(),_point(self.point))
if self.xscale!=None:result+=' 41\n%s\n'%self.xscale if self.xscale!=None:result+=' 41\n%s\n'%self.xscale
if self.yscale!=None:result+=' 42\n%s\n'%self.yscale if self.yscale!=None:result+=' 42\n%s\n'%self.yscale
@ -535,15 +541,22 @@ class Layer(_Call):
#----------------------------------------------- #-----------------------------------------------
class LineType(_Call): class LineType(_Call):
"""Custom linetype""" """Custom linetype"""
def __init__(self,name='continuous',description='Solid line',elements=[],flag=64): def __init__(self,name='CONTINUOUS',description='Solid line',elements=[0.0],flag=0):
# TODO: Implement lineType elements
self.name=name self.name=name
self.description=description self.description=description
self.elements=copy.copy(elements) self.elements=copy.copy(elements)
self.flag=flag self.flag=flag
def __str__(self): def __str__(self):
return ' 0\nLTYPE\n 2\n%s\n 70\n%s\n 3\n%s\n 72\n65\n 73\n%s\n 40\n0.0\n'%\ result = ' 0\nLTYPE\n 2\n%s\n 70\n%s\n 3\n%s\n 72\n65\n'%\
(self.name.upper(),self.flag,self.description,len(self.elements)) (self.name.upper(),self.flag,self.description)
if self.elements:
elements = ' 73\n%s\n' %(len(self.elements)-1)
elements += ' 40\n%s\n' %(self.elements[0])
for e in self.elements[1:]:
elements += ' 49\n%s\n' %e
result += elements
return result
#----------------------------------------------- #-----------------------------------------------
class Style(_Call): class Style(_Call):
@ -566,27 +579,137 @@ class Style(_Call):
self.font.upper(),self.bigFont.upper()) self.font.upper(),self.bigFont.upper())
#----------------------------------------------- #-----------------------------------------------
class View(_Call): class VPort(_Call):
def __init__(self,name,flag=0,width=1,height=1,center=(0.5,0.5), def __init__(self,name,flag=0,
direction=(0,0,1),target=(0,0,0),lens=50, leftBottom=(0.0,0.0),
frontClipping=0,backClipping=0,twist=0,mode=0): rightTop=(1.0,1.0),
center=(0.5,0.5),
snap_base=(0.0,0.0),
snap_spacing=(0.1,0.1),
grid_spacing=(0.1,0.1),
direction=(0.0,0.0,1.0),
target=(0.0,0.0,0.0),
height=1.0,
ratio=1.0,
lens=50,
frontClipping=0,
backClipping=0,
snap_rotation=0,
twist=0,
mode=0,
circle_zoom=100,
fast_zoom=1,
ucsicon=1,
snap_on=0,
grid_on=0,
snap_style=0,
snap_isopair=0
):
self.name=name self.name=name
self.flag=flag self.flag=flag
self.width=width self.leftBottom=leftBottom
self.height=height self.rightTop=rightTop
self.center=center
self.snap_base=snap_base
self.snap_spacing=snap_spacing
self.grid_spacing=grid_spacing
self.direction=direction
self.target=target
self.height=float(height)
self.ratio=float(ratio)
self.lens=float(lens)
self.frontClipping=float(frontClipping)
self.backClipping=float(backClipping)
self.snap_rotation=float(snap_rotation)
self.twist=float(twist)
self.mode=mode
self.circle_zoom=circle_zoom
self.fast_zoom=fast_zoom
self.ucsicon=ucsicon
self.snap_on=snap_on
self.grid_on=grid_on
self.snap_style=snap_style
self.snap_isopair=snap_isopair
def __str__(self):
output = [' 0', 'VPORT',
' 2', self.name,
' 70', self.flag,
_point(self.leftBottom),
_point(self.rightTop,1),
_point(self.center,2), # View center point (in DCS)
_point(self.snap_base,3),
_point(self.snap_spacing,4),
_point(self.grid_spacing,5),
_point(self.direction,6), #view direction from target (in WCS)
_point(self.target,7),
' 40', self.height,
' 41', self.ratio,
' 42', self.lens,
' 43', self.frontClipping,
' 44', self.backClipping,
' 50', self.snap_rotation,
' 51', self.twist,
' 71', self.mode,
' 72', self.circle_zoom,
' 73', self.fast_zoom,
' 74', self.ucsicon,
' 75', self.snap_on,
' 76', self.grid_on,
' 77', self.snap_style,
' 78', self.snap_isopair
]
output_str = ''
for s in output:
output_str += '%s\n' %s
return output_str
#-----------------------------------------------
class View(_Call):
def __init__(self,name,flag=0,
width=1,
height=1,
center=(0.5,0.5),
direction=(0,0,1),
target=(0,0,0),
lens=50,
frontClipping=0,
backClipping=0,
twist=0,mode=0
):
self.name=name
self.flag=flag
self.width=float(width)
self.height=float(height)
self.center=center self.center=center
self.direction=direction self.direction=direction
self.target=target self.target=target
self.lens=lens self.lens=float(lens)
self.frontClipping=frontClipping self.frontClipping=float(frontClipping)
self.backClipping=backClipping self.backClipping=float(backClipping)
self.twist=twist self.twist=float(twist)
self.mode=mode self.mode=mode
def __str__(self): def __str__(self):
return ' 0\nVIEW\n 2\n%s\n 70\n%s\n 40\n%s\n%s\n 41\n%s\n%s\n%s\n 42\n%s\n 43\n%s\n 44\n%s\n 50\n%s\n 71\n%s\n'%\ output = [' 0', 'VIEW',
(self.name,self.flag,self.height,_point(self.center),self.width, ' 2', self.name,
_point(self.direction,1),_point(self.target,2),self.lens, ' 70', self.flag,
self.frontClipping,self.backClipping,self.twist,self.mode) ' 40', self.height,
_point(self.center),
' 41', self.width,
_point(self.direction,1),
_point(self.target,2),
' 42', self.lens,
' 43', self.frontClipping,
' 44', self.backClipping,
' 50', self.twist,
' 71', self.mode
]
output_str = ''
for s in output:
output_str += '%s\n' %s
return output_str
#----------------------------------------------- #-----------------------------------------------
def ViewByWindow(name,leftBottom=(0,0),rightTop=(1,1),**options): def ViewByWindow(name,leftBottom=(0,0),rightTop=(1,1),**options):
@ -601,7 +724,7 @@ class Drawing(_Collection):
"""Dxf drawing. Use append or any other list methods to add objects.""" """Dxf drawing. Use append or any other list methods to add objects."""
def __init__(self,insbase=(0.0,0.0,0.0),extmin=(0.0,0.0,0.0),extmax=(0.0,0.0,0.0), def __init__(self,insbase=(0.0,0.0,0.0),extmin=(0.0,0.0,0.0),extmax=(0.0,0.0,0.0),
layers=[Layer()],linetypes=[LineType()],styles=[Style()],blocks=[], layers=[Layer()],linetypes=[LineType()],styles=[Style()],blocks=[],
views=[],entities=None,fileName='test.dxf'): views=[],vports=[],entities=None,fileName='test.dxf'):
# TODO: replace list with None,arial # TODO: replace list with None,arial
if not entities: if not entities:
entities=[] entities=[]
@ -613,6 +736,7 @@ class Drawing(_Collection):
self.linetypes=copy.copy(linetypes) self.linetypes=copy.copy(linetypes)
self.styles=copy.copy(styles) self.styles=copy.copy(styles)
self.views=copy.copy(views) self.views=copy.copy(views)
self.vports=copy.copy(vports)
self.blocks=copy.copy(blocks) self.blocks=copy.copy(blocks)
self.fileName=fileName self.fileName=fileName
#private #private
@ -656,7 +780,8 @@ class Drawing(_Collection):
header=[self.acadver]+[self._point(attr,getattr(self,attr))+'\n' for attr in _HEADER_POINTS] header=[self.acadver]+[self._point(attr,getattr(self,attr))+'\n' for attr in _HEADER_POINTS]
header=self._section('header',header) header=self._section('header',header)
tables=[self._table('ltype',[str(x) for x in self.linetypes]), tables=[self._table('vport',[str(x) for x in self.vports]),
self._table('ltype',[str(x) for x in self.linetypes]),
self._table('layer',[str(x) for x in self.layers]), self._table('layer',[str(x) for x in self.layers]),
self._table('style',[str(x) for x in self.styles]), self._table('style',[str(x) for x in self.styles]),
self._table('view',[str(x) for x in self.views]), self._table('view',[str(x) for x in self.views]),
@ -740,17 +865,16 @@ def test():
d.append(Line(points=[(0,0,0),(1,1,1)])) d.append(Line(points=[(0,0,0),(1,1,1)]))
d.append(Mtext('Click on Ads\nmultiple lines with mtext',point=(1,1,1),color=5,rotation=90)) d.append(Mtext('Click on Ads\nmultiple lines with mtext',point=(1,1,1),color=5,rotation=90))
d.append(Text('Please donate!',point=(3,0,1))) d.append(Text('Please donate!',point=(3,0,1)))
d.append(Rectangle(point=(2,2,2),width=4,height=3,color=6,solid=Solid(color=2))) #d.append(Rectangle(point=(2,2,2),width=4,height=3,color=6,solid=Solid(color=2)))
d.append(Solid(points=[(4,4,0),(5,4,0),(7,8,0),(9,9,0)],color=3)) d.append(Solid(points=[(4,4,0),(5,4,0),(7,8,0),(9,9,0)],color=3))
d.append(PolyLine(points=[(1,1,1),(2,1,1),(2,2,1),(1,2,1)],closed=1,color=1)) #d.append(PolyLine(points=[(1,1,1),(2,1,1),(2,2,1),(1,2,1)],flag=1,color=1))
#d.saveas('c:\\test.dxf') #d.saveas('c:\\test.dxf')
d.saveas('test.dxf') d.saveas('test.dxf')
#----------------------------------------------------- #-----------------------------------------------------
if __name__=='__main__': if __name__=='__main__':
if not copy: if not copy:
Draw.PupMenu('Error%t|This script requires a full python install') Draw.PupMenu('Error%t|This script requires a full python install')
else: main() else: test()

@ -221,20 +221,25 @@ def write(filename, objects,
file.write('mtllib %s\n' % ( mtlfilename.split('\\')[-1].split('/')[-1] )) file.write('mtllib %s\n' % ( mtlfilename.split('\\')[-1].split('/')[-1] ))
# Get the container mesh. - used for applying modifiers and non mesh objects. # Get the container mesh. - used for applying modifiers and non mesh objects.
containerMesh = meshName = tempMesh = None
for meshName in Blender.NMesh.GetNames(): # containerMesh = meshName = tempMesh = None
if meshName.startswith(temp_mesh_name): # for meshName in Blender.NMesh.GetNames():
tempMesh = Mesh.Get(meshName) # if meshName.startswith(temp_mesh_name):
if not tempMesh.users: # tempMesh = Mesh.Get(meshName)
containerMesh = tempMesh # if not tempMesh.users:
if not containerMesh: # containerMesh = tempMesh
containerMesh = Mesh.New(temp_mesh_name) # if not containerMesh:
# containerMesh = Mesh.New(temp_mesh_name)
# XXX this mesh is not removed
# XXX this mesh should not be in database
containerMesh = bpy.data.add_mesh(temp_mesh_name)
if EXPORT_ROTX90: if EXPORT_ROTX90:
mat_xrot90= Blender.Mathutils.RotationMatrix(-90, 4, 'x') mat_xrot90= Blender.Mathutils.RotationMatrix(-90, 4, 'x')
del meshName # del meshName
del tempMesh # del tempMesh
# Initialize totals, these are updated each object # Initialize totals, these are updated each object
totverts = totuvco = totno = 1 totverts = totuvco = totno = 1

@ -13,11 +13,15 @@ class DATA_PT_skeleton(DataButtonsPanel):
__idname__ = "DATA_PT_skeleton" __idname__ = "DATA_PT_skeleton"
__label__ = "Skeleton" __label__ = "Skeleton"
def poll(self, context):
return (context.object.type == 'ARMATURE' or context.armature)
def draw(self, context): def draw(self, context):
layout = self.layout
ob = context.object ob = context.object
arm = context.armature arm = context.armature
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)
@ -54,8 +58,8 @@ class DATA_PT_display(DataButtonsPanel):
__label__ = "Display" __label__ = "Display"
def draw(self, context): def draw(self, context):
arm = context.armature
layout = self.layout layout = self.layout
arm = context.armature
split = layout.split() split = layout.split()
@ -74,8 +78,8 @@ class DATA_PT_paths(DataButtonsPanel):
__label__ = "Paths" __label__ = "Paths"
def draw(self, context): def draw(self, context):
arm = context.armature
layout = self.layout layout = self.layout
arm = context.armature
split = layout.split() split = layout.split()
@ -102,8 +106,8 @@ class DATA_PT_ghost(DataButtonsPanel):
__label__ = "Ghost" __label__ = "Ghost"
def draw(self, context): def draw(self, context):
arm = context.armature
layout = self.layout layout = self.layout
arm = context.armature
split = layout.split() split = layout.split()

@ -14,8 +14,8 @@ class BONE_PT_bone(BoneButtonsPanel):
__label__ = "Bone" __label__ = "Bone"
def draw(self, context): def draw(self, context):
bone = context.bone
layout = self.layout layout = self.layout
bone = context.bone
split = layout.split() split = layout.split()
@ -51,4 +51,3 @@ class BONE_PT_bone(BoneButtonsPanel):
sub.itemR(bone, "cyclic_offset") sub.itemR(bone, "cyclic_offset")
bpy.types.register(BONE_PT_bone) bpy.types.register(BONE_PT_bone)

@ -13,11 +13,15 @@ class DATA_PT_camera(DataButtonsPanel):
__idname__ = "DATA_PT_camera" __idname__ = "DATA_PT_camera"
__label__ = "Lens" __label__ = "Lens"
def poll(self, context):
return (context.object.type == 'CAMERA')
def draw(self, context): def draw(self, context):
layout = self.layout
ob = context.object ob = context.object
cam = context.camera cam = context.camera
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)

@ -7,18 +7,21 @@ class DataButtonsPanel(bpy.types.Panel):
__context__ = "data" __context__ = "data"
def poll(self, context): def poll(self, context):
ob = context.object return (context.object.type == 'CURVE' and context.curve)
return (ob and ob.type == 'CURVE' and context.curve)
class DATA_PT_shape_curve(DataButtonsPanel): class DATA_PT_shape_curve(DataButtonsPanel):
__idname__ = "DATA_PT_shape_curve" __idname__ = "DATA_PT_shape_curve"
__label__ = "Shape" __label__ = "Shape"
def poll(self, context):
return (context.object.type == 'CURVE')
def draw(self, context): def draw(self, context):
layout = self.layout
ob = context.object ob = context.object
curve = context.curve curve = context.curve
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)
@ -63,8 +66,8 @@ class DATA_PT_geometry(DataButtonsPanel):
__label__ = "Geometry" __label__ = "Geometry"
def draw(self, context): def draw(self, context):
curve = context.curve
layout = self.layout layout = self.layout
curve = context.curve
split = layout.split() split = layout.split()
@ -85,9 +88,9 @@ class DATA_PT_pathanim(DataButtonsPanel):
__label__ = "Path Animation" __label__ = "Path Animation"
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
curve = context.curve curve = context.curve
layout = self.layout
layout.itemR(curve, "path", text="") layout.itemR(curve, "path", text="")
def draw(self, context): def draw(self, context):
@ -110,8 +113,8 @@ class DATA_PT_current_curve(DataButtonsPanel):
__label__ = "Current Curve" __label__ = "Current Curve"
def draw(self, context): def draw(self, context):
currentcurve = context.curve.curves[0] # XXX
layout = self.layout layout = self.layout
currentcurve = context.curve.curves[0] # XXX
split = layout.split() split = layout.split()

@ -7,16 +7,15 @@ class DataButtonsPanel(bpy.types.Panel):
__context__ = "data" __context__ = "data"
def poll(self, context): def poll(self, context):
ob = context.object return (context.object.type == 'EMPTY')
return (ob and ob.type == 'EMPTY')
class DATA_PT_empty(DataButtonsPanel): class DATA_PT_empty(DataButtonsPanel):
__idname__ = "DATA_PT_empty" __idname__ = "DATA_PT_empty"
__label__ = "Empty" __label__ = "Empty"
def draw(self, context): def draw(self, context):
ob = context.object
layout = self.layout layout = self.layout
ob = context.object
layout.itemR(ob, "empty_draw_type") layout.itemR(ob, "empty_draw_type")
layout.itemR(ob, "empty_draw_size") layout.itemR(ob, "empty_draw_size")

@ -23,11 +23,15 @@ class DATA_PT_lamp(DataButtonsPanel):
__idname__ = "DATA_PT_lamp" __idname__ = "DATA_PT_lamp"
__label__ = "Lamp" __label__ = "Lamp"
def poll(self, context):
return (context.object.type == 'LAMP')
def draw(self, context): def draw(self, context):
layout = self.layout
ob = context.object ob = context.object
lamp = context.lamp lamp = context.lamp
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)
@ -82,8 +86,8 @@ class DATA_PT_sunsky(DataButtonsPanel):
return (lamp and lamp.type == 'SUN') return (lamp and lamp.type == 'SUN')
def draw(self, context): def draw(self, context):
lamp = context.lamp.sky
layout = self.layout layout = self.layout
lamp = context.lamp.sky
row = layout.row() row = layout.row()
row.itemR(lamp, "sky") row.itemR(lamp, "sky")
@ -96,7 +100,6 @@ class DATA_PT_sunsky(DataButtonsPanel):
split = layout.split() split = layout.split()
col = split.column() col = split.column()
sub = col.column() sub = col.column()
sub.active = lamp.sky sub.active = lamp.sky
sub.itemR(lamp, "sky_blend_type", text="Blend Type") sub.itemR(lamp, "sky_blend_type", text="Blend Type")
@ -125,8 +128,8 @@ class DATA_PT_shadow(DataButtonsPanel):
return (lamp and lamp.type in ('POINT','SUN', 'SPOT', 'AREA')) return (lamp and lamp.type in ('POINT','SUN', 'SPOT', 'AREA'))
def draw(self, context): def draw(self, context):
lamp = context.lamp
layout = self.layout layout = self.layout
lamp = context.lamp
layout.itemR(lamp, "shadow_method", expand=True) layout.itemR(lamp, "shadow_method", expand=True)
@ -204,8 +207,8 @@ class DATA_PT_spot(DataButtonsPanel):
return (lamp and lamp.type == 'SPOT') return (lamp and lamp.type == 'SPOT')
def draw(self, context): def draw(self, context):
lamp = context.lamp
layout = self.layout layout = self.layout
lamp = context.lamp
split = layout.split() split = layout.split()
@ -236,8 +239,8 @@ class DATA_PT_falloff_curve(DataButtonsPanel):
return False return False
def draw(self, context): def draw(self, context):
lamp = context.lamp
layout = self.layout layout = self.layout
lamp = context.lamp
layout.template_curve_mapping(lamp.falloff_curve) layout.template_curve_mapping(lamp.falloff_curve)

@ -13,11 +13,15 @@ class DATA_PT_lattice(DataButtonsPanel):
__idname__ = "DATA_PT_lattice" __idname__ = "DATA_PT_lattice"
__label__ = "Lattice" __label__ = "Lattice"
def poll(self, context):
return (context.object.type == 'LATTICE')
def draw(self, context): def draw(self, context):
layout = self.layout
ob = context.object ob = context.object
lat = context.lattice lat = context.lattice
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)

@ -13,11 +13,15 @@ class DATA_PT_mesh(DataButtonsPanel):
__idname__ = "DATA_PT_mesh" __idname__ = "DATA_PT_mesh"
__label__ = "Mesh" __label__ = "Mesh"
def poll(self, context):
return (context.object.type == 'MESH')
def draw(self, context): def draw(self, context):
layout = self.layout
ob = context.object ob = context.object
mesh = context.mesh mesh = context.mesh
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)

@ -6,10 +6,6 @@ class DataButtonsPanel(bpy.types.Panel):
__region_type__ = "WINDOW" __region_type__ = "WINDOW"
__context__ = "modifier" __context__ = "modifier"
def poll(self, context):
ob = context.object
return (ob and ob.type in ('MESH', 'CURVE', 'SURFACE', 'TEXT', 'LATTICE'))
class DATA_PT_modifiers(DataButtonsPanel): class DATA_PT_modifiers(DataButtonsPanel):
__idname__ = "DATA_PT_modifiers" __idname__ = "DATA_PT_modifiers"
__label__ = "Modifiers" __label__ = "Modifiers"

@ -7,18 +7,22 @@ class DataButtonsPanel(bpy.types.Panel):
__context__ = "data" __context__ = "data"
def poll(self, context): def poll(self, context):
ob = context.object return (context.object.type == 'TEXT' and context.curve)
return (ob and ob.type == 'TEXT')
class DATA_PT_shape_text(DataButtonsPanel): class DATA_PT_shape_text(DataButtonsPanel):
__idname__ = "DATA_PT_shape_text" __idname__ = "DATA_PT_shape_text"
__label__ = "Shape" __label__ = "Shape Text"
def poll(self, context):
ob = context.object
return (context.object.type == 'TEXT')
def draw(self, context): def draw(self, context):
layout = self.layout
ob = context.object ob = context.object
curve = context.curve curve = context.curve
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)
@ -59,8 +63,8 @@ class DATA_PT_font(DataButtonsPanel):
__label__ = "Font" __label__ = "Font"
def draw(self, context): def draw(self, context):
text = context.curve
layout = self.layout layout = self.layout
text = context.curve
layout.row() layout.row()
layout.itemR(text, "font") layout.itemR(text, "font")
@ -90,8 +94,8 @@ class DATA_PT_paragraph(DataButtonsPanel):
__label__ = "Paragraph" __label__ = "Paragraph"
def draw(self, context): def draw(self, context):
text = context.curve
layout = self.layout layout = self.layout
text = context.curve
layout.itemL(text="Align:") layout.itemL(text="Align:")
layout.itemR(text, "spacemode", expand=True) layout.itemR(text, "spacemode", expand=True)
@ -110,13 +114,15 @@ class DATA_PT_paragraph(DataButtonsPanel):
sub.itemR(text, "y_offset", text="Y") sub.itemR(text, "y_offset", text="Y")
sub.itemR(text, "wrap") sub.itemR(text, "wrap")
"""
class DATA_PT_textboxes(DataButtonsPanel): class DATA_PT_textboxes(DataButtonsPanel):
__idname__ = "DATA_PT_textboxes" __idname__ = "DATA_PT_textboxes"
__label__ = "Text Boxes" __label__ = "Text Boxes"
def draw(self, context): def draw(self, context):
text = context.curve
layout = self.layout layout = self.layout
text = context.curve
"""
bpy.types.register(DATA_PT_shape_text) bpy.types.register(DATA_PT_shape_text)
bpy.types.register(DATA_PT_font) bpy.types.register(DATA_PT_font)

@ -13,13 +13,10 @@ class MATERIAL_PT_preview(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_preview" __idname__= "MATERIAL_PT_preview"
__label__ = "Preview" __label__ = "Preview"
def poll(self, context):
return (context.material or context.object)
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
mat = context.material mat = context.material
layout.template_preview(mat) layout.template_preview(mat)
class MATERIAL_PT_material(MaterialButtonsPanel): class MATERIAL_PT_material(MaterialButtonsPanel):
@ -27,10 +24,11 @@ class MATERIAL_PT_material(MaterialButtonsPanel):
__label__ = "Material" __label__ = "Material"
def poll(self, context): def poll(self, context):
return (context.material or context.object) return (context.object != None)
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
mat = context.material mat = context.material
ob = context.object ob = context.object
slot = context.material_slot slot = context.material_slot
@ -50,77 +48,262 @@ class MATERIAL_PT_material(MaterialButtonsPanel):
layout.itemR(mat, "type", expand=True) layout.itemR(mat, "type", expand=True)
row = layout.row()
row.column().itemR(mat, "diffuse_color")
row.column().itemR(mat, "specular_color")
row.column().itemR(mat, "mirror_color")
layout.itemR(mat, "alpha", slider=True) layout.itemR(mat, "alpha", slider=True)
row = layout.row()
row.active = mat.type in ('SURFACE', 'VOLUME')
row.itemR(mat, "shadeless")
row.itemR(mat, "wireframe")
rowsub = row.row()
rowsub.active = mat.shadeless== False
rowsub.itemR(mat, "tangent_shading")
class MATERIAL_PT_strand(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_strand"
__label__ = "Strand"
__default_closed__ = True
def draw(self, context):
layout = self.layout
tan = context.material.strand
mat = context.material
split = layout.split()
sub = split.column()
sub.itemL(text="Size:")
sub.itemR(tan, "start_size", text="Root")
sub.itemR(tan, "end_size", text="Tip")
sub.itemR(tan, "min_size", text="Minimum")
sub.itemR(tan, "blender_units")
colsub = sub.column()
colsub.active = mat.shadeless== False
colsub.itemR(tan, "tangent_shading")
sub = split.column()
sub.itemR(tan, "shape")
sub.itemR(tan, "width_fade")
sub.itemR(tan, "uv_layer")
colsub = sub.column()
colsub.active = mat.shadeless== False
colsub.itemR(tan, "surface_diffuse")
colsubsub = colsub.column()
colsubsub.active = tan.surface_diffuse
colsubsub.itemR(tan, "blend_distance", text="Distance")
class MATERIAL_PT_options(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_options"
__label__ = "Options"
def draw(self, context):
layout = self.layout
mat = context.material
split = layout.split()
sub = split.column()
sub.itemR(mat, "traceable")
sub.itemR(mat, "full_oversampling")
sub.itemR(mat, "sky")
sub.itemR(mat, "exclude_mist")
sub.itemR(mat, "face_texture")
colsub = sub.column()
colsub.active = mat.face_texture
colsub.itemR(mat, "face_texture_alpha")
sub.itemR(mat, "invert_z")
sub.itemR(mat, "light_group")
sub.itemR(mat, "light_group_exclusive")
sub = split.column()
sub.itemL(text="Shadows:")
sub.itemR(mat, "shadows", text="Recieve")
sub.itemR(mat, "transparent_shadows", text="Recieve Transparent")
sub.itemR(mat, "only_shadow", text="Shadows Only")
sub.itemR(mat, "cast_shadows_only", text="Cast Only")
sub.itemR(mat, "shadow_casting_alpha", text="Casting Alpha", slider=True)
sub.itemR(mat, "ray_shadow_bias")
colsub = sub.column()
colsub.active = mat.ray_shadow_bias
colsub.itemR(mat, "shadow_ray_bias", text="Raytracing Bias")
sub.itemR(mat, "cast_buffer_shadows")
colsub = sub.column()
colsub.active = mat.cast_buffer_shadows
colsub.itemR(mat, "shadow_buffer_bias", text="Buffer Bias")
class MATERIAL_PT_diffuse(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_diffuse"
__label__ = "Diffuse"
def poll(self, context):
mat = context.material
return (mat and mat.type != "HALO")
def draw(self, context):
layout = self.layout
mat = context.material
split = layout.split()
sub = split.column()
sub.itemR(mat, "diffuse_color", text="")
sub.itemR(mat, "object_color")
colsub = sub.column()
colsub.active = mat.shadeless== False
colsub.itemR(mat, "ambient", slider=True)
colsub.itemR(mat, "emit")
sub.itemR(mat, "translucency", slider=True)
sub = split.column()
sub.active = mat.shadeless== False
sub.itemR(mat, "diffuse_reflection", text="Intensity", slider=True)
sub.itemR(mat, "vertex_color_light")
sub.itemR(mat, "vertex_color_paint")
sub.itemR(mat, "cubic")
row = layout.row()
row.active = mat.shadeless== False
row.itemR(mat, "diffuse_shader", text="Shader")
split = layout.split()
split.active = mat.shadeless== False
sub = split.column()
if mat.diffuse_shader == 'OREN_NAYAR':
sub.itemR(mat, "roughness")
sub = split.column()
if mat.diffuse_shader == 'MINNAERT':
sub.itemR(mat, "darkness")
sub = split.column()
if mat.diffuse_shader == 'TOON':
sub.itemR(mat, "diffuse_toon_size", text="Size")
sub = split.column()
sub.itemR(mat, "diffuse_toon_smooth", text="Smooth")
if mat.diffuse_shader == 'FRESNEL':
sub.itemR(mat, "diffuse_fresnel", text="Fresnel")
sub = split.column()
sub.itemR(mat, "diffuse_fresnel_factor", text="Factor")
layout.itemR(mat, "diffuse_ramp", text="Ramp")
class MATERIAL_PT_specular(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_specular"
__label__ = "Specular"
def poll(self, context):
mat = context.material
return (mat and mat.type != "HALO")
def draw(self, context):
layout = self.layout
mat = context.material
layout.active = mat.shadeless== False
split = layout.split()
sub = split.column()
sub.itemR(mat, "specular_color", text="")
sub = split.column()
sub.itemR(mat, "specular_reflection", text="Intensity", slider=True)
layout.itemR(mat, "spec_shader", text="Shader")
split = layout.split()
sub = split.column()
if mat.spec_shader in ('COOKTORR', 'PHONG'):
sub.itemR(mat, "specular_hardness", text="Hardness")
sub = split.column()
if mat.spec_shader == 'BLINN':
sub.itemR(mat, "specular_hardness", text="Hardness")
sub = split.column()
sub.itemR(mat, "specular_ior", text="IOR")
if mat.spec_shader == 'WARDISO':
sub.itemR(mat, "specular_slope", text="Slope")
sub.itemR(mat, "specular_hardness", text="Hardness")
if mat.spec_shader == 'TOON':
sub.itemR(mat, "specular_toon_size", text="Size")
sub = split.column()
sub.itemR(mat, "specular_toon_smooth", text="Smooth")
layout.itemR(mat, "specular_ramp", text="Ramp")
class MATERIAL_PT_sss(MaterialButtonsPanel): class MATERIAL_PT_sss(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_sss" __idname__= "MATERIAL_PT_sss"
__label__ = "Subsurface Scattering" __label__ = "Subsurface Scattering"
__default_closed__ = True
def poll(self, context): def poll(self, context):
mat = context.material mat = context.material
return (mat and mat.type == "SURFACE") return (mat and mat.type == "SURFACE")
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
sss = context.material.subsurface_scattering sss = context.material.subsurface_scattering
layout = self.layout
layout.itemR(sss, "enabled", text="") layout.itemR(sss, "enabled", text="")
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
sss = context.material.subsurface_scattering sss = context.material.subsurface_scattering
mat = context.material
layout.active = sss.enabled layout.active = sss.enabled
flow = layout.column_flow() split = layout.split()
flow.itemR(sss, "error_tolerance") split.active = mat.shadeless== False
flow.itemR(sss, "ior")
flow.itemR(sss, "scale")
row = layout.row() sub = split.column()
row.column().itemR(sss, "color") sub.itemR(sss, "color", text="")
row.column().itemR(sss, "radius") sub.itemL(text="Blend:")
sub.itemR(sss, "color_factor", slider=True)
sub.itemR(sss, "texture_factor", slider=True)
sub.itemL(text="Scattering Weight:")
sub.itemR(sss, "front")
sub.itemR(sss, "back")
flow = layout.column_flow() sub = split.column()
flow.itemR(sss, "color_factor", slider=True) sub.itemR(sss, "ior")
flow.itemR(sss, "texture_factor", slider=True) sub.itemR(sss, "scale")
flow.itemR(sss, "front") sub.itemR(sss, "radius", text="RGB Radius")
flow.itemR(sss, "back") sub.itemR(sss, "error_tolerance")
class MATERIAL_PT_raymir(MaterialButtonsPanel): class MATERIAL_PT_raymir(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_raymir" __idname__= "MATERIAL_PT_raymir"
__label__ = "Ray Mirror" __label__ = "Ray Mirror"
__default_closed__ = True
def poll(self, context): def poll(self, context):
mat = context.material mat = context.material
return (mat and mat.type == "SURFACE") return (mat and mat.type == "SURFACE")
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
raym = context.material.raytrace_mirror raym = context.material.raytrace_mirror
layout = self.layout
layout.itemR(raym, "enabled", text="") layout.itemR(raym, "enabled", text="")
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
raym = context.material.raytrace_mirror raym = context.material.raytrace_mirror
mat = context.material
layout.active = raym.enabled layout.active = raym.enabled
split = layout.split() split = layout.split()
sub = split.column() sub = split.column()
sub.itemR(raym, "reflect", text="RayMir", slider=True) sub.itemR(raym, "reflect", text="Reflectivity", slider=True)
sub.itemR(mat, "mirror_color", text="")
sub.itemR(raym, "fresnel") sub.itemR(raym, "fresnel")
sub.itemR(raym, "fresnel_fac", text="Fac", slider=True) sub.itemR(raym, "fresnel_fac", text="Fac", slider=True)
sub = split.column() sub = split.column()
sub.itemR(raym, "gloss", slider=True) sub.itemR(raym, "gloss", slider=True)
sub.itemR(raym, "gloss_threshold", slider=True) colsub = sub.column()
sub.itemR(raym, "gloss_samples") colsub.active = raym.gloss < 1
sub.itemR(raym, "gloss_anisotropic", slider=True) colsub.itemR(raym, "gloss_threshold", slider=True, text="Threshold")
colsub.itemR(raym, "gloss_samples", text="Samples")
colsub.itemR(raym, "gloss_anisotropic", slider=True, text="Anisotropic")
row = layout.row() row = layout.row()
row.itemR(raym, "distance", text="Max Dist") row.itemR(raym, "distance", text="Max Dist")
@ -131,23 +314,27 @@ class MATERIAL_PT_raymir(MaterialButtonsPanel):
class MATERIAL_PT_raytransp(MaterialButtonsPanel): class MATERIAL_PT_raytransp(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_raytransp" __idname__= "MATERIAL_PT_raytransp"
__label__= "Ray Transparency" __label__= "Ray Transparency"
__default_closed__ = True
def poll(self, context): def poll(self, context):
mat = context.material mat = context.material
return (mat and mat.type == "SURFACE") return (mat and mat.type == "SURFACE")
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
rayt = context.material.raytrace_transparency rayt = context.material.raytrace_transparency
layout = self.layout
layout.itemR(rayt, "enabled", text="") layout.itemR(rayt, "enabled", text="")
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
rayt = context.material.raytrace_transparency rayt = context.material.raytrace_transparency
mat = context.material
layout.active = rayt.enabled layout.active = rayt.enabled
split = layout.split() split = layout.split()
split.active = mat.shadeless== False
sub = split.column() sub = split.column()
sub.itemR(rayt, "ior") sub.itemR(rayt, "ior")
@ -156,14 +343,17 @@ class MATERIAL_PT_raytransp(MaterialButtonsPanel):
sub = split.column() sub = split.column()
sub.itemR(rayt, "gloss", slider=True) sub.itemR(rayt, "gloss", slider=True)
sub.itemR(rayt, "gloss_threshold", slider=True) colsub = sub.column()
sub.itemR(rayt, "gloss_samples") colsub.active = rayt.gloss < 1
colsub.itemR(rayt, "gloss_threshold", slider=True, text="Threshold")
colsub.itemR(rayt, "gloss_samples", text="Samples")
flow = layout.column_flow() flow = layout.column_flow()
flow.active = mat.shadeless== False
flow.itemR(rayt, "filter", slider=True) flow.itemR(rayt, "filter", slider=True)
flow.itemR(rayt, "limit") flow.itemR(rayt, "limit")
flow.itemR(rayt, "falloff") flow.itemR(rayt, "falloff")
flow.itemR(rayt, "specular_opacity", slider=True) flow.itemR(rayt, "specular_opacity", slider=True, text="Spec Opacity")
flow.itemR(rayt, "depth") flow.itemR(rayt, "depth")
class MATERIAL_PT_halo(MaterialButtonsPanel): class MATERIAL_PT_halo(MaterialButtonsPanel):
@ -176,13 +366,14 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
mat = context.material mat = context.material
halo = mat.halo halo = mat.halo
split = layout.split() split = layout.split()
col = split.column(align=True) col = split.column()
col.itemL(text="General Settings:") col.itemR(mat, "diffuse_color", text="")
col.itemR(halo, "size") col.itemR(halo, "size")
col.itemR(halo, "hardness") col.itemR(halo, "hardness")
col.itemR(halo, "add", slider=True) col.itemR(halo, "add", slider=True)
@ -195,15 +386,17 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
col.itemR(halo, "soft") col.itemR(halo, "soft")
col = split.column() col = split.column()
col = col.column(align=True) col = col.column()
col.itemR(halo, "ring") col.itemR(halo, "ring")
colsub = col.column() colsub = col.column()
colsub.active = halo.ring colsub.active = halo.ring
colsub.itemR(halo, "rings") colsub.itemR(halo, "rings")
colsub.itemR(mat, "mirror_color", text="")
col.itemR(halo, "lines") col.itemR(halo, "lines")
colsub = col.column() colsub = col.column()
colsub.active = halo.lines colsub.active = halo.lines
colsub.itemR(halo, "line_number", text="Lines") colsub.itemR(halo, "line_number", text="Lines")
colsub.itemR(mat, "specular_color", text="")
col.itemR(halo, "star") col.itemR(halo, "star")
colsub = col.column() colsub = col.column()
colsub.active = halo.star colsub.active = halo.star
@ -219,8 +412,11 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
bpy.types.register(MATERIAL_PT_preview) bpy.types.register(MATERIAL_PT_preview)
bpy.types.register(MATERIAL_PT_material) bpy.types.register(MATERIAL_PT_material)
bpy.types.register(MATERIAL_PT_diffuse)
bpy.types.register(MATERIAL_PT_specular)
bpy.types.register(MATERIAL_PT_raymir) bpy.types.register(MATERIAL_PT_raymir)
bpy.types.register(MATERIAL_PT_raytransp) bpy.types.register(MATERIAL_PT_raytransp)
bpy.types.register(MATERIAL_PT_sss) bpy.types.register(MATERIAL_PT_sss)
bpy.types.register(MATERIAL_PT_halo) bpy.types.register(MATERIAL_PT_halo)
bpy.types.register(MATERIAL_PT_strand)
bpy.types.register(MATERIAL_PT_options)

@ -6,16 +6,13 @@ class ObjectButtonsPanel(bpy.types.Panel):
__region_type__ = "WINDOW" __region_type__ = "WINDOW"
__context__ = "object" __context__ = "object"
def poll(self, context):
return (context.object != None)
class OBJECT_PT_transform(ObjectButtonsPanel): class OBJECT_PT_transform(ObjectButtonsPanel):
__idname__ = "OBJECT_PT_transform" __idname__ = "OBJECT_PT_transform"
__label__ = "Transform" __label__ = "Transform"
def draw(self, context): def draw(self, context):
ob = context.object
layout = self.layout layout = self.layout
ob = context.object
row = layout.row() row = layout.row()
row.column().itemR(ob, "location") row.column().itemR(ob, "location")
@ -27,8 +24,8 @@ class OBJECT_PT_groups(ObjectButtonsPanel):
__label__ = "Groups" __label__ = "Groups"
def draw(self, context): def draw(self, context):
ob = context.object
layout = self.layout layout = self.layout
ob = context.object
row = layout.row() row = layout.row()
row.itemR(ob, "pass_index") row.itemR(ob, "pass_index")
@ -54,8 +51,8 @@ class OBJECT_PT_display(ObjectButtonsPanel):
__label__ = "Display" __label__ = "Display"
def draw(self, context): def draw(self, context):
ob = context.object
layout = self.layout layout = self.layout
ob = context.object
row = layout.row() row = layout.row()
row.itemR(ob, "max_draw_type", text="Type") row.itemR(ob, "max_draw_type", text="Type")
@ -74,8 +71,8 @@ class OBJECT_PT_duplication(ObjectButtonsPanel):
__label__ = "Duplication" __label__ = "Duplication"
def draw(self, context): def draw(self, context):
ob = context.object
layout = self.layout layout = self.layout
ob = context.object
layout.itemR(ob, "dupli_type", expand=True) layout.itemR(ob, "dupli_type", expand=True)
@ -108,8 +105,8 @@ class OBJECT_PT_animation(ObjectButtonsPanel):
__label__ = "Animation" __label__ = "Animation"
def draw(self, context): def draw(self, context):
ob = context.object
layout = self.layout layout = self.layout
ob = context.object
split = layout.split() split = layout.split()
@ -132,4 +129,3 @@ bpy.types.register(OBJECT_PT_groups)
bpy.types.register(OBJECT_PT_display) bpy.types.register(OBJECT_PT_display)
bpy.types.register(OBJECT_PT_duplication) bpy.types.register(OBJECT_PT_duplication)
bpy.types.register(OBJECT_PT_animation) bpy.types.register(OBJECT_PT_animation)

@ -15,8 +15,7 @@ class Physic_PT_cloth(PhysicButtonsPanel):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
md = context.cloth cloth = context.cloth.settings
cloth = md.settings
split = layout.split() split = layout.split()
@ -51,16 +50,14 @@ class Physic_PT_cloth_collision(PhysicButtonsPanel):
def draw_header(self, context): def draw_header(self, context):
layout = self.layout layout = self.layout
md = context.cloth cloth = context.cloth.settings
cloth = md.collision_settings
layout.itemR(cloth, "enable_collision", text="") layout.itemR(cloth, "enable_collision", text="")
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
cloth = context.cloth.settings
md = context.cloth
cloth = md.collision_settings
layout.active = cloth.enable_collision layout.active = cloth.enable_collision
col = layout.column_flow() col = layout.column_flow()
@ -82,16 +79,14 @@ class Physic_PT_cloth_stiffness(PhysicButtonsPanel):
def draw_header(self, context): def draw_header(self, context):
layout = self.layout layout = self.layout
md = context.cloth cloth = context.cloth.settings
cloth = md.settings
layout.itemR(cloth, "stiffness_scaling", text="") layout.itemR(cloth, "stiffness_scaling", text="")
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
cloth = context.cloth.settings
md = context.cloth
cloth = md.settings
layout.active = cloth.stiffness_scaling layout.active = cloth.stiffness_scaling
split = layout.split() split = layout.split()

@ -10,10 +10,8 @@ class RENDER_PT_shading(RenderButtonsPanel):
__label__ = "Shading" __label__ = "Shading"
def draw(self, context): def draw(self, context):
scene = context.scene
layout = self.layout layout = self.layout
rd = context.scene.render_data
rd = scene.render_data
split = layout.split() split = layout.split()
@ -34,10 +32,8 @@ class RENDER_PT_output(RenderButtonsPanel):
__label__ = "Output" __label__ = "Output"
def draw(self, context): def draw(self, context):
scene = context.scene
layout = self.layout layout = self.layout
rd = context.scene.render_data
rd = scene.render_data
layout.itemR(rd, "output_path") layout.itemR(rd, "output_path")
@ -133,16 +129,15 @@ class RENDER_PT_antialiasing(RenderButtonsPanel):
__label__ = "Anti-Aliasing" __label__ = "Anti-Aliasing"
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
rd = context.scene.render_data rd = context.scene.render_data
layout = self.layout
layout.itemR(rd, "antialiasing", text="") layout.itemR(rd, "antialiasing", text="")
def draw(self, context): def draw(self, context):
scene = context.scene
rd = scene.render_data
layout = self.layout layout = self.layout
rd = context.scene.render_data
layout.active = rd.antialiasing layout.active = rd.antialiasing
split = layout.split() split = layout.split()
@ -163,14 +158,12 @@ class RENDER_PT_render(RenderButtonsPanel):
__label__ = "Render" __label__ = "Render"
def draw(self, context): def draw(self, context):
scene = context.scene
layout = self.layout layout = self.layout
rd = context.scene.render_data
rd = scene.render_data
row = layout.row() row = layout.row()
row.itemO("SCREEN_OT_render", text="Render Still", icon=109) row.itemO("SCREEN_OT_render", text="Render Still", icon='ICON_IMAGE_COL')
row.item_booleanO("SCREEN_OT_render", "anim", True, text="Render Animation", icon=111) row.item_booleanO("SCREEN_OT_render", "anim", True, text="Render Animation", icon='ICON_SEQUENCE')
row = layout.row() row = layout.row()
row.itemR(rd, "do_composite") row.itemR(rd, "do_composite")
@ -204,9 +197,9 @@ class RENDER_PT_dimensions(RenderButtonsPanel):
__label__ = "Dimensions" __label__ = "Dimensions"
def draw(self, context): def draw(self, context):
scene = context.scene
layout = self.layout layout = self.layout
scene = context.scene
rd = scene.render_data rd = scene.render_data
split = layout.split() split = layout.split()
@ -248,10 +241,9 @@ class RENDER_PT_stamp(RenderButtonsPanel):
layout.itemR(rd, "stamp", text="") layout.itemR(rd, "stamp", text="")
def draw(self, context): def draw(self, context):
scene = context.scene
rd = scene.render_data
layout = self.layout layout = self.layout
rd = context.scene.render_data
layout.active = rd.stamp layout.active = rd.stamp
split = layout.split() split = layout.split()

@ -7,19 +7,16 @@ class TextureButtonsPanel(bpy.types.Panel):
__context__ = "texture" __context__ = "texture"
def poll(self, context): def poll(self, context):
return (context.texture != None) return (context.texture != None and context.texture.type != 'NONE')
class TEXTURE_PT_preview(TextureButtonsPanel): class TEXTURE_PT_preview(TextureButtonsPanel):
__idname__= "TEXTURE_PT_preview" __idname__= "TEXTURE_PT_preview"
__label__ = "Preview" __label__ = "Preview"
def poll(self, context):
return (context.texture or context.material)
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
tex = context.texture tex = context.texture
layout.template_preview(tex) layout.template_preview(tex)
class TEXTURE_PT_texture(TextureButtonsPanel): class TEXTURE_PT_texture(TextureButtonsPanel):
@ -27,10 +24,11 @@ class TEXTURE_PT_texture(TextureButtonsPanel):
__label__ = "Texture" __label__ = "Texture"
def poll(self, context): def poll(self, context):
return (context.texture or context.material or context.world or context.lamp) return (context.material or context.world or context.lamp)
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
tex = context.texture tex = context.texture
ma = context.material ma = context.material
la = context.lamp la = context.lamp
@ -71,7 +69,7 @@ class TEXTURE_PT_mapping(TextureButtonsPanel):
__label__ = "Mapping" __label__ = "Mapping"
def poll(self, context): def poll(self, context):
return (context.texture != None and context.texture.type != 'NONE') return (context.texture_slot and context.texture and context.texture.type != 'NONE')
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
@ -118,10 +116,11 @@ class TEXTURE_PT_influence(TextureButtonsPanel):
__label__ = "Influence" __label__ = "Influence"
def poll(self, context): def poll(self, context):
return (context.texture != None and context.texture.type != 'NONE') return (context.texture_slot and context.texture and context.texture.type != 'NONE')
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
textype = context.texture textype = context.texture
tex = context.texture_slot tex = context.texture_slot
@ -178,9 +177,7 @@ class TEXTURE_PT_influence(TextureButtonsPanel):
class TEXTURE_PT_colors(TextureButtonsPanel): class TEXTURE_PT_colors(TextureButtonsPanel):
__idname__= "TEXTURE_PT_colors" __idname__= "TEXTURE_PT_colors"
__label__ = "Colors" __label__ = "Colors"
__default_closed__ = True
def poll(self, context):
return (context.texture != None and context.texture.type != 'NONE')
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
@ -529,3 +526,4 @@ bpy.types.register(TEXTURE_PT_distortednoise)
bpy.types.register(TEXTURE_PT_colors) bpy.types.register(TEXTURE_PT_colors)
bpy.types.register(TEXTURE_PT_mapping) bpy.types.register(TEXTURE_PT_mapping)
bpy.types.register(TEXTURE_PT_influence) bpy.types.register(TEXTURE_PT_influence)

@ -12,26 +12,24 @@ class WorldButtonsPanel(bpy.types.Panel):
class WORLD_PT_preview(WorldButtonsPanel): class WORLD_PT_preview(WorldButtonsPanel):
__label__ = "Preview" __label__ = "Preview"
def poll(self, context):
return (context.scene or context.world)
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
world = context.world world = context.world
layout.template_preview(world) layout.template_preview(world)
class WORLD_PT_world(WorldButtonsPanel): class WORLD_PT_world(WorldButtonsPanel):
__label__ = "World" __label__ = "World"
def poll(self, context): def poll(self, context):
return (context.scene or context.world) return (context.scene != None)
def draw(self, context): def draw(self, context):
layout = self.layout
scene = context.scene scene = context.scene
world = context.world world = context.world
space = context.space_data space = context.space_data
layout = self.layout
split = layout.split(percentage=0.65) split = layout.split(percentage=0.65)
@ -61,8 +59,8 @@ class WORLD_PT_color_correction(WorldButtonsPanel):
__label__ = "Color Correction" __label__ = "Color Correction"
def draw(self, context): def draw(self, context):
world = context.world
layout = self.layout layout = self.layout
world = context.world
row = layout.row() row = layout.row()
row.itemR(world, "exposure") row.itemR(world, "exposure")
@ -72,14 +70,15 @@ class WORLD_PT_mist(WorldButtonsPanel):
__label__ = "Mist" __label__ = "Mist"
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
world = context.world world = context.world
layout = self.layout
layout.itemR(world.mist, "enabled", text="") layout.itemR(world.mist, "enabled", text="")
def draw(self, context): def draw(self, context):
world = context.world
layout = self.layout layout = self.layout
world = context.world
layout.active = world.mist.enabled layout.active = world.mist.enabled
flow = layout.column_flow() flow = layout.column_flow()
@ -95,14 +94,15 @@ class WORLD_PT_stars(WorldButtonsPanel):
__label__ = "Stars" __label__ = "Stars"
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
world = context.world world = context.world
layout = self.layout
layout.itemR(world.stars, "enabled", text="") layout.itemR(world.stars, "enabled", text="")
def draw(self, context): def draw(self, context):
world = context.world
layout = self.layout layout = self.layout
world = context.world
layout.active = world.stars.enabled layout.active = world.stars.enabled
flow = layout.column_flow() flow = layout.column_flow()
@ -115,24 +115,26 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
__label__ = "Ambient Occlusion" __label__ = "Ambient Occlusion"
def draw_header(self, context): def draw_header(self, context):
layout = self.layout
world = context.world world = context.world
layout = self.layout
layout.itemR(world.ambient_occlusion, "enabled", text="") layout.itemR(world.ambient_occlusion, "enabled", text="")
def draw(self, context): def draw(self, context):
world = context.world
ao = world.ambient_occlusion
layout = self.layout layout = self.layout
ao = context.world.ambient_occlusion
layout.active = ao.enabled layout.active = ao.enabled
layout.itemR(ao, "gather_method", expand=True) layout.itemR(ao, "gather_method", expand=True)
if ao.gather_method == 'RAYTRACE': if ao.gather_method == 'RAYTRACE':
split = layout.split() split = layout.split()
col = split.column() col = split.column()
col.itemR(ao, "samples") col.itemR(ao, "samples")
col.itemR(ao, "distance") col.itemR(ao, "distance")
col = split.column() col = split.column()
col.itemR(ao, "falloff") col.itemR(ao, "falloff")
colsub = col.column() colsub = col.column()
@ -151,10 +153,12 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
if ao.gather_method == 'APPROXIMATE': if ao.gather_method == 'APPROXIMATE':
split = layout.split() split = layout.split()
col = split.column() col = split.column()
col.itemR(ao, "passes") col.itemR(ao, "passes")
col.itemR(ao, "error_tolerance", text="Error") col.itemR(ao, "error_tolerance", text="Error")
col.itemR(ao, "correction") col.itemR(ao, "correction")
col = split.column() col = split.column()
col.itemR(ao, "falloff") col.itemR(ao, "falloff")
colsub = col.column() colsub = col.column()

836
release/ui/space_image.py Normal file

@ -0,0 +1,836 @@
import bpy
class IMAGE_MT_view(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "View"
def draw(self, context):
layout = self.layout
sima = context.space_data
uv = sima.uv_editor
show_uvedit = sima.show_uvedit
layout.itemO("IMAGE_OT_properties") # icon
layout.itemS()
layout.itemR(sima, "update_automatically")
# XXX if show_uvedit:
# XXX layout.itemR(uv, "local_view") # "UV Local View", Numpad /
layout.itemS()
layout.itemO("IMAGE_OT_view_zoom_in")
layout.itemO("IMAGE_OT_view_zoom_out")
layout.itemS()
ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]];
for a, b in ratios:
text = "Zoom %d:%d" % (a, b)
layout.item_floatO("IMAGE_OT_view_zoom_ratio", "ratio", a/b, text=text)
layout.itemS()
if show_uvedit:
layout.itemO("IMAGE_OT_view_selected")
layout.itemO("IMAGE_OT_view_all")
layout.itemO("SCREEN_OT_screen_full_area")
class IMAGE_MT_select(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("UV_OT_select_border")
layout.item_booleanO("UV_OT_select_border", "pinned", True)
layout.itemS()
layout.itemO("UV_OT_select_all_toggle")
layout.itemO("UV_OT_select_invert")
layout.itemO("UV_OT_unlink_selection")
layout.itemS()
layout.itemO("UV_OT_select_pinned")
layout.itemO("UV_OT_select_linked")
class IMAGE_MT_image(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Image"
def draw(self, context):
layout = self.layout
sima = context.space_data
ima = sima.image
layout.itemO("IMAGE_OT_new")
layout.itemO("IMAGE_OT_open")
show_render = sima.show_render
if ima:
if show_render:
layout.itemO("IMAGE_OT_replace")
layout.itemO("IMAGE_OT_reload")
layout.itemO("IMAGE_OT_save")
layout.itemO("IMAGE_OT_save_as")
if ima.source == "SEQUENCE":
layout.itemO("IMAGE_OT_save_sequence")
if not show_render:
layout.itemS()
if ima.packed_file:
layout.itemO("IMAGE_OT_unpack")
else:
layout.itemO("IMAGE_OT_pack")
# only for dirty && specific image types : XXX poll?
#if(ibuf && (ibuf->userflags & IB_BITMAPDIRTY))
if False:
if ima.source in ("FILE", "GENERATED") and ima.type != "MULTILAYER":
layout.item_booleanO("IMAGE_OT_pack", "as_png", True, text="Pack As PNG")
layout.itemS()
layout.itemR(sima, "image_painting")
class IMAGE_MT_uvs_showhide(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Show/Hide Faces"
def draw(self, context):
layout = self.layout
layout.itemO("UV_OT_reveal")
layout.itemO("UV_OT_hide")
layout.item_booleanO("UV_OT_hide", "unselected", True)
class IMAGE_MT_uvs_transform(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Transform"
def draw(self, context):
layout = self.layout
layout.item_enumO("TFM_OT_transform", "mode", "TRANSLATION")
layout.item_enumO("TFM_OT_transform", "mode", "ROTATION")
layout.item_enumO("TFM_OT_transform", "mode", "RESIZE")
class IMAGE_MT_uvs_mirror(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Mirror"
def draw(self, context):
layout = self.layout
layout.item_enumO("UV_OT_mirror", "axis", "MIRROR_X") # "X Axis", M,
layout.item_enumO("UV_OT_mirror", "axis", "MIRROR_Y") # "Y Axis", M,
class IMAGE_MT_uvs_weldalign(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Weld/Align"
def draw(self, context):
layout = self.layout
layout.itemO("UV_OT_weld") # W, 1
layout.items_enumO("UV_OT_align", "axis") # W, 2/3/4
class IMAGE_MT_uvs(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "UVs"
def draw(self, context):
layout = self.layout
sima = context.space_data
uv = sima.uv_editor
scene = context.scene
layout.itemR(uv, "snap_to_pixels")
layout.itemR(uv, "constrain_to_image_bounds")
layout.itemS()
layout.itemR(uv, "live_unwrap")
layout.itemO("UV_OT_unwrap")
layout.item_booleanO("UV_OT_pin", "clear", True, text="Unpin")
layout.itemO("UV_OT_pin")
layout.itemS()
layout.itemO("UV_OT_pack_islands")
layout.itemO("UV_OT_average_islands_scale")
layout.itemO("UV_OT_minimize_stretch")
layout.itemO("UV_OT_stitch")
layout.itemS()
layout.itemM(context, "IMAGE_MT_uvs_transform")
layout.itemM(context, "IMAGE_MT_uvs_mirror")
layout.itemM(context, "IMAGE_MT_uvs_weldalign")
layout.itemS()
# XXX layout.itemR(scene, "proportional_editing")
layout.item_menu_enumR(scene, "proportional_editing_falloff")
layout.itemS()
layout.itemM(context, "IMAGE_MT_uvs_showhide")
class IMAGE_HT_header(bpy.types.Header):
__space_type__ = "IMAGE_EDITOR"
def draw(self, context):
sima = context.space_data
ima = sima.image
layout = self.layout
show_render = sima.show_render
show_paint = sima.show_paint
show_uvedit = sima.show_uvedit
layout.template_header(context)
# menus
if context.area.show_menus:
row = layout.row()
row.itemM(context, "IMAGE_MT_view")
if show_uvedit:
row.itemM(context, "IMAGE_MT_select")
# XXX menuname= (ibuf && (ibuf->userflags & IB_BITMAPDIRTY))? "Image*": "Image";
row.itemM(context, "IMAGE_MT_image")
if show_uvedit:
row.itemM(context, "IMAGE_MT_uvs")
layout.template_ID(context, sima, "image", new="IMAGE_OT_new", open="IMAGE_OT_open")
"""
/* image select */
pinflag= (show_render)? 0: UI_ID_PIN;
xco= uiDefIDPoinButs(block, CTX_data_main(C), NULL, (ID*)sima->image, ID_IM, &sima->pin, xco, yco,
sima_idpoin_handle, UI_ID_BROWSE|UI_ID_BROWSE_RENDER|UI_ID_RENAME|UI_ID_ADD_NEW|UI_ID_OPEN|UI_ID_DELETE|pinflag);
xco += 8;
"""
"""
if(ima && !ELEM3(ima->source, IMA_SRC_SEQUENCE, IMA_SRC_MOVIE, IMA_SRC_VIEWER) && ima->ok) {
/* XXX this should not be a static var */
static int headerbuttons_packdummy;
headerbuttons_packdummy = 0;
if (ima->packedfile) {
headerbuttons_packdummy = 1;
}
if (ima->packedfile && ibuf && (ibuf->userflags & IB_BITMAPDIRTY))
uiDefIconButBitI(block, TOG, 1, 0 /* XXX B_SIMA_REPACK */, ICON_UGLYPACKAGE, xco,yco,XIC,YIC, &headerbuttons_packdummy, 0, 0, 0, 0, "Re-Pack this image as PNG");
else
uiDefIconButBitI(block, TOG, 1, 0 /* XXX B_SIMAPACKIMA */, ICON_PACKAGE, xco,yco,XIC,YIC, &headerbuttons_packdummy, 0, 0, 0, 0, "Pack/Unpack this image");
xco+= XIC+8;
}
"""
# uv editing
if show_uvedit:
pass
"""
/* uv editing */
if(show_uvedit) {
/* pivot */
uiDefIconTextButS(block, ICONTEXTROW, B_NOP, ICON_ROTATE,
"Pivot: %t|Bounding Box Center %x0|Median Point %x3|2D Cursor %x1",
xco,yco,XIC+10,YIC, &ar->v2d.around, 0, 3.0, 0, 0,
"Rotation/Scaling Pivot (Hotkeys: Comma, Shift Comma, Period)");
xco+= XIC + 18;
/* selection modes */
uiDefIconButBitS(block, TOG, UV_SYNC_SELECTION, B_REDR, ICON_EDIT, xco,yco,XIC,YIC, &scene->toolsettings->uv_flag, 0, 0, 0, 0, "Sync UV and Mesh Selection");
xco+= XIC+8;
if(scene->toolsettings->uv_flag & UV_SYNC_SELECTION) {
uiBlockBeginAlign(block);
uiDefIconButBitS(block, TOG, SCE_SELECT_VERTEX, B_REDR, ICON_VERTEXSEL,
xco,yco,XIC,YIC, &scene->selectmode, 1.0, 0.0, 0, 0, "Vertex select mode");
uiDefIconButBitS(block, TOG, SCE_SELECT_EDGE, B_REDR, ICON_EDGESEL,
xco+=XIC,yco,XIC,YIC, &scene->selectmode, 1.0, 0.0, 0, 0, "Edge select mode");
uiDefIconButBitS(block, TOG, SCE_SELECT_FACE, B_REDR, ICON_FACESEL,
xco+=XIC,yco,XIC,YIC, &scene->selectmode, 1.0, 0.0, 0, 0, "Face select mode");
uiBlockEndAlign(block);
}
else {
uiBlockBeginAlign(block);
uiDefIconButS(block, ROW, B_REDR, ICON_VERTEXSEL,
xco,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_VERTEX, 0, 0, "Vertex select mode");
uiDefIconButS(block, ROW, B_REDR, ICON_EDGESEL,
xco+=XIC,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_EDGE, 0, 0, "Edge select mode");
uiDefIconButS(block, ROW, B_REDR, ICON_FACESEL,
xco+=XIC,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_FACE, 0, 0, "Face select mode");
uiDefIconButS(block, ROW, B_REDR, ICON_LINKEDSEL,
xco+=XIC,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_ISLAND, 0, 0, "Island select mode");
uiBlockEndAlign(block);
/* would use these if const's could go in strings
* SI_STICKY_LOC SI_STICKY_DISABLE SI_STICKY_VERTEX */
but = uiDefIconTextButC(block, ICONTEXTROW, B_REDR, ICON_STICKY_UVS_LOC,
"Sticky UV Selection: %t|Disable%x1|Shared Location%x0|Shared Vertex%x2",
xco+=XIC+10,yco,XIC+10,YIC, &(sima->sticky), 0, 3.0, 0, 0,
"Sticky UV Selection (Hotkeys: Shift C, Alt C, Ctrl C)");
}
xco+= XIC + 16;
/* snap options, identical to options in 3d view header */
uiBlockBeginAlign(block);
if (scene->snap_flag & SCE_SNAP) {
uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEO,xco,yco,XIC,YIC, &scene->snap_flag, 0, 0, 0, 0, "Use Snap or Grid (Shift Tab).");
xco+= XIC;
uiDefButS(block, MENU, B_NOP, "Mode%t|Closest%x0|Center%x1|Median%x2",xco,yco,70,YIC, &scene->snap_target, 0, 0, 0, 0, "Snap Target Mode.");
xco+= 70;
}
else {
uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEAR,xco,yco,XIC,YIC, &scene->snap_flag, 0, 0, 0, 0, "Snap while Ctrl is held during transform (Shift Tab).");
xco+= XIC;
}
uiBlockEndAlign(block);
xco+= 8;
/* uv layers */
{
Object *obedit= CTX_data_edit_object(C);
char menustr[34*MAX_MTFACE];
static int act;
image_menu_uvlayers(obedit, menustr, &act);
but = uiDefButI(block, MENU, B_NOP, menustr ,xco,yco,85,YIC, &act, 0, 0, 0, 0, "Active UV Layer for editing.");
// uiButSetFunc(but, do_image_buttons_set_uvlayer_callback, &act, NULL);
xco+= 85;
}
xco+= 8;
}
"""
if ima:
"""
RenderResult *rr;
/* render layers and passes */
rr= BKE_image_get_renderresult(scene, ima);
if(rr) {
uiBlockBeginAlign(block);
#if 0
uiblock_layer_pass_buttons(block, rr, &sima->iuser, B_REDR, xco, 0, 160);
#endif
uiBlockEndAlign(block);
xco+= 166;
}
"""
# painting
layout.itemR(sima, "image_painting", text="")
# draw options
row = layout.row(align=True)
row.itemR(sima, "draw_channels", text="", expand=True)
row = layout.row(align=True)
if ima.type == "COMPOSITE":
row.itemO("IMAGE_OT_record_composite", icon="ICON_REC")
if ima.type == "COMPOSITE" and ima.source in ("MOVIE", "SEQUENCE"):
row.itemO("IMAGE_OT_play_composite", icon="ICON_PLAY")
layout.itemR(sima, "update_automatically", text="")
class IMAGE_PT_game_properties(bpy.types.Panel):
__space_type__ = "IMAGE_EDITOR"
__region_type__ = "UI"
__label__ = "Game Properties"
def draw(self, context):
sima = context.space_data
layout = self.layout
ima = sima.image
if ima:
split = layout.split()
col = split.column(align=True)
col.itemR(ima, "animated")
subcol = col.column()
subcol.itemR(ima, "animation_start", text="Start")
subcol.itemR(ima, "animation_end", text="End")
subcol.itemR(ima, "animation_speed", text="Speed")
subcol.active = ima.animated
col = split.column()
col.itemR(ima, "tiles")
subrow = col.row(align=True)
subrow.itemR(ima, "tiles_x", text="X")
subrow.itemR(ima, "tiles_y", text="Y")
subrow.active = ima.tiles
col.itemS()
col.itemR(ima, "clamp_x")
col.itemR(ima, "clamp_y")
col.itemR(ima, "mapping", expand=True)
bpy.types.register(IMAGE_MT_view)
bpy.types.register(IMAGE_MT_select)
bpy.types.register(IMAGE_MT_image)
bpy.types.register(IMAGE_MT_uvs_showhide)
bpy.types.register(IMAGE_MT_uvs_transform)
bpy.types.register(IMAGE_MT_uvs_mirror)
bpy.types.register(IMAGE_MT_uvs_weldalign)
bpy.types.register(IMAGE_MT_uvs)
bpy.types.register(IMAGE_HT_header)
bpy.types.register(IMAGE_PT_game_properties)
import bpy
class IMAGE_MT_view(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "View"
def draw(self, context):
layout = self.layout
sima = context.space_data
uv = sima.uv_editor
show_uvedit = sima.show_uvedit
layout.itemO("IMAGE_OT_properties") # icon
layout.itemS()
layout.itemR(sima, "update_automatically")
# XXX if show_uvedit:
# XXX layout.itemR(uv, "local_view") # "UV Local View", Numpad /
layout.itemS()
layout.itemO("IMAGE_OT_view_zoom_in")
layout.itemO("IMAGE_OT_view_zoom_out")
layout.itemS()
ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]];
for a, b in ratios:
text = "Zoom %d:%d" % (a, b)
layout.item_floatO("IMAGE_OT_view_zoom_ratio", "ratio", a/b, text=text)
layout.itemS()
if show_uvedit:
layout.itemO("IMAGE_OT_view_selected")
layout.itemO("IMAGE_OT_view_all")
layout.itemO("SCREEN_OT_screen_full_area")
class IMAGE_MT_select(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("UV_OT_select_border")
layout.item_booleanO("UV_OT_select_border", "pinned", True)
layout.itemS()
layout.itemO("UV_OT_select_all_toggle")
layout.itemO("UV_OT_select_invert")
layout.itemO("UV_OT_unlink_selection")
layout.itemS()
layout.itemO("UV_OT_select_pinned")
layout.itemO("UV_OT_select_linked")
class IMAGE_MT_image(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Image"
def draw(self, context):
layout = self.layout
sima = context.space_data
ima = sima.image
layout.itemO("IMAGE_OT_new")
layout.itemO("IMAGE_OT_open")
show_render = sima.show_render
if ima:
if show_render:
layout.itemO("IMAGE_OT_replace")
layout.itemO("IMAGE_OT_reload")
layout.itemO("IMAGE_OT_save")
layout.itemO("IMAGE_OT_save_as")
if ima.source == "SEQUENCE":
layout.itemO("IMAGE_OT_save_sequence")
if not show_render:
layout.itemS()
if ima.packed_file:
layout.itemO("IMAGE_OT_unpack")
else:
layout.itemO("IMAGE_OT_pack")
# only for dirty && specific image types : XXX poll?
#if(ibuf && (ibuf->userflags & IB_BITMAPDIRTY))
if False:
if ima.source in ("FILE", "GENERATED") and ima.type != "MULTILAYER":
layout.item_booleanO("IMAGE_OT_pack", "as_png", True, text="Pack As PNG")
layout.itemS()
layout.itemR(sima, "image_painting")
class IMAGE_MT_uvs_showhide(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Show/Hide Faces"
def draw(self, context):
layout = self.layout
layout.itemO("UV_OT_reveal")
layout.itemO("UV_OT_hide")
layout.item_booleanO("UV_OT_hide", "unselected", True)
class IMAGE_MT_uvs_transform(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Transform"
def draw(self, context):
layout = self.layout
layout.item_enumO("TFM_OT_transform", "mode", "TRANSLATION")
layout.item_enumO("TFM_OT_transform", "mode", "ROTATION")
layout.item_enumO("TFM_OT_transform", "mode", "RESIZE")
class IMAGE_MT_uvs_mirror(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Mirror"
def draw(self, context):
layout = self.layout
layout.item_enumO("UV_OT_mirror", "axis", "MIRROR_X") # "X Axis", M,
layout.item_enumO("UV_OT_mirror", "axis", "MIRROR_Y") # "Y Axis", M,
class IMAGE_MT_uvs_weldalign(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "Weld/Align"
def draw(self, context):
layout = self.layout
layout.itemO("UV_OT_weld") # W, 1
layout.items_enumO("UV_OT_align", "axis") # W, 2/3/4
class IMAGE_MT_uvs(bpy.types.Menu):
__space_type__ = "IMAGE_EDITOR"
__label__ = "UVs"
def draw(self, context):
layout = self.layout
sima = context.space_data
uv = sima.uv_editor
scene = context.scene
layout.itemR(uv, "snap_to_pixels")
layout.itemR(uv, "constrain_to_image_bounds")
layout.itemS()
layout.itemR(uv, "live_unwrap")
layout.itemO("UV_OT_unwrap")
layout.item_booleanO("UV_OT_pin", "clear", True, text="Unpin")
layout.itemO("UV_OT_pin")
layout.itemS()
layout.itemO("UV_OT_pack_islands")
layout.itemO("UV_OT_average_islands_scale")
layout.itemO("UV_OT_minimize_stretch")
layout.itemO("UV_OT_stitch")
layout.itemS()
layout.itemM(context, "IMAGE_MT_uvs_transform")
layout.itemM(context, "IMAGE_MT_uvs_mirror")
layout.itemM(context, "IMAGE_MT_uvs_weldalign")
layout.itemS()
# XXX layout.itemR(scene, "proportional_editing")
layout.item_menu_enumR(scene, "proportional_editing_falloff")
layout.itemS()
layout.itemM(context, "IMAGE_MT_uvs_showhide")
class IMAGE_HT_header(bpy.types.Header):
__space_type__ = "IMAGE_EDITOR"
def draw(self, context):
sima = context.space_data
ima = sima.image
layout = self.layout
show_render = sima.show_render
show_paint = sima.show_paint
show_uvedit = sima.show_uvedit
layout.template_header(context)
# menus
if context.area.show_menus:
row = layout.row()
row.itemM(context, "IMAGE_MT_view")
if show_uvedit:
row.itemM(context, "IMAGE_MT_select")
# XXX menuname= (ibuf && (ibuf->userflags & IB_BITMAPDIRTY))? "Image*": "Image";
row.itemM(context, "IMAGE_MT_image")
if show_uvedit:
row.itemM(context, "IMAGE_MT_uvs")
layout.template_ID(context, sima, "image", new="IMAGE_OT_new", open="IMAGE_OT_open")
"""
/* image select */
pinflag= (show_render)? 0: UI_ID_PIN;
xco= uiDefIDPoinButs(block, CTX_data_main(C), NULL, (ID*)sima->image, ID_IM, &sima->pin, xco, yco,
sima_idpoin_handle, UI_ID_BROWSE|UI_ID_BROWSE_RENDER|UI_ID_RENAME|UI_ID_ADD_NEW|UI_ID_OPEN|UI_ID_DELETE|pinflag);
xco += 8;
"""
"""
if(ima && !ELEM3(ima->source, IMA_SRC_SEQUENCE, IMA_SRC_MOVIE, IMA_SRC_VIEWER) && ima->ok) {
/* XXX this should not be a static var */
static int headerbuttons_packdummy;
headerbuttons_packdummy = 0;
if (ima->packedfile) {
headerbuttons_packdummy = 1;
}
if (ima->packedfile && ibuf && (ibuf->userflags & IB_BITMAPDIRTY))
uiDefIconButBitI(block, TOG, 1, 0 /* XXX B_SIMA_REPACK */, ICON_UGLYPACKAGE, xco,yco,XIC,YIC, &headerbuttons_packdummy, 0, 0, 0, 0, "Re-Pack this image as PNG");
else
uiDefIconButBitI(block, TOG, 1, 0 /* XXX B_SIMAPACKIMA */, ICON_PACKAGE, xco,yco,XIC,YIC, &headerbuttons_packdummy, 0, 0, 0, 0, "Pack/Unpack this image");
xco+= XIC+8;
}
"""
# uv editing
if show_uvedit:
pass
"""
/* uv editing */
if(show_uvedit) {
/* pivot */
uiDefIconTextButS(block, ICONTEXTROW, B_NOP, ICON_ROTATE,
"Pivot: %t|Bounding Box Center %x0|Median Point %x3|2D Cursor %x1",
xco,yco,XIC+10,YIC, &ar->v2d.around, 0, 3.0, 0, 0,
"Rotation/Scaling Pivot (Hotkeys: Comma, Shift Comma, Period)");
xco+= XIC + 18;
/* selection modes */
uiDefIconButBitS(block, TOG, UV_SYNC_SELECTION, B_REDR, ICON_EDIT, xco,yco,XIC,YIC, &scene->toolsettings->uv_flag, 0, 0, 0, 0, "Sync UV and Mesh Selection");
xco+= XIC+8;
if(scene->toolsettings->uv_flag & UV_SYNC_SELECTION) {
uiBlockBeginAlign(block);
uiDefIconButBitS(block, TOG, SCE_SELECT_VERTEX, B_REDR, ICON_VERTEXSEL,
xco,yco,XIC,YIC, &scene->selectmode, 1.0, 0.0, 0, 0, "Vertex select mode");
uiDefIconButBitS(block, TOG, SCE_SELECT_EDGE, B_REDR, ICON_EDGESEL,
xco+=XIC,yco,XIC,YIC, &scene->selectmode, 1.0, 0.0, 0, 0, "Edge select mode");
uiDefIconButBitS(block, TOG, SCE_SELECT_FACE, B_REDR, ICON_FACESEL,
xco+=XIC,yco,XIC,YIC, &scene->selectmode, 1.0, 0.0, 0, 0, "Face select mode");
uiBlockEndAlign(block);
}
else {
uiBlockBeginAlign(block);
uiDefIconButS(block, ROW, B_REDR, ICON_VERTEXSEL,
xco,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_VERTEX, 0, 0, "Vertex select mode");
uiDefIconButS(block, ROW, B_REDR, ICON_EDGESEL,
xco+=XIC,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_EDGE, 0, 0, "Edge select mode");
uiDefIconButS(block, ROW, B_REDR, ICON_FACESEL,
xco+=XIC,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_FACE, 0, 0, "Face select mode");
uiDefIconButS(block, ROW, B_REDR, ICON_LINKEDSEL,
xco+=XIC,yco,XIC,YIC, &scene->toolsettings->uv_selectmode, 1.0, UV_SELECT_ISLAND, 0, 0, "Island select mode");
uiBlockEndAlign(block);
/* would use these if const's could go in strings
* SI_STICKY_LOC SI_STICKY_DISABLE SI_STICKY_VERTEX */
but = uiDefIconTextButC(block, ICONTEXTROW, B_REDR, ICON_STICKY_UVS_LOC,
"Sticky UV Selection: %t|Disable%x1|Shared Location%x0|Shared Vertex%x2",
xco+=XIC+10,yco,XIC+10,YIC, &(sima->sticky), 0, 3.0, 0, 0,
"Sticky UV Selection (Hotkeys: Shift C, Alt C, Ctrl C)");
}
xco+= XIC + 16;
/* snap options, identical to options in 3d view header */
uiBlockBeginAlign(block);
if (scene->snap_flag & SCE_SNAP) {
uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEO,xco,yco,XIC,YIC, &scene->snap_flag, 0, 0, 0, 0, "Use Snap or Grid (Shift Tab).");
xco+= XIC;
uiDefButS(block, MENU, B_NOP, "Mode%t|Closest%x0|Center%x1|Median%x2",xco,yco,70,YIC, &scene->snap_target, 0, 0, 0, 0, "Snap Target Mode.");
xco+= 70;
}
else {
uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEAR,xco,yco,XIC,YIC, &scene->snap_flag, 0, 0, 0, 0, "Snap while Ctrl is held during transform (Shift Tab).");
xco+= XIC;
}
uiBlockEndAlign(block);
xco+= 8;
/* uv layers */
{
Object *obedit= CTX_data_edit_object(C);
char menustr[34*MAX_MTFACE];
static int act;
image_menu_uvlayers(obedit, menustr, &act);
but = uiDefButI(block, MENU, B_NOP, menustr ,xco,yco,85,YIC, &act, 0, 0, 0, 0, "Active UV Layer for editing.");
// uiButSetFunc(but, do_image_buttons_set_uvlayer_callback, &act, NULL);
xco+= 85;
}
xco+= 8;
}
"""
if ima:
"""
RenderResult *rr;
/* render layers and passes */
rr= BKE_image_get_renderresult(scene, ima);
if(rr) {
uiBlockBeginAlign(block);
#if 0
uiblock_layer_pass_buttons(block, rr, &sima->iuser, B_REDR, xco, 0, 160);
#endif
uiBlockEndAlign(block);
xco+= 166;
}
"""
# painting
layout.itemR(sima, "image_painting", text="")
# draw options
row = layout.row(align=True)
row.itemR(sima, "draw_channels", text="", expand=True)
row = layout.row(align=True)
if ima.type == "COMPOSITE":
row.itemO("IMAGE_OT_record_composite", icon="ICON_REC")
if ima.type == "COMPOSITE" and ima.source in ("MOVIE", "SEQUENCE"):
row.itemO("IMAGE_OT_play_composite", icon="ICON_PLAY")
layout.itemR(sima, "update_automatically", text="")
class IMAGE_PT_game_properties(bpy.types.Panel):
__space_type__ = "IMAGE_EDITOR"
__region_type__ = "UI"
__label__ = "Game Properties"
def draw(self, context):
sima = context.space_data
layout = self.layout
ima = sima.image
if ima:
split = layout.split()
col = split.column(align=True)
col.itemR(ima, "animated")
subcol = col.column()
subcol.itemR(ima, "animation_start", text="Start")
subcol.itemR(ima, "animation_end", text="End")
subcol.itemR(ima, "animation_speed", text="Speed")
subcol.active = ima.animated
col = split.column()
col.itemR(ima, "tiles")
subrow = col.row(align=True)
subrow.itemR(ima, "tiles_x", text="X")
subrow.itemR(ima, "tiles_y", text="Y")
subrow.active = ima.tiles
col.itemS()
col.itemR(ima, "clamp_x")
col.itemR(ima, "clamp_y")
col.itemR(ima, "mapping", expand=True)
bpy.types.register(IMAGE_MT_view)
bpy.types.register(IMAGE_MT_select)
bpy.types.register(IMAGE_MT_image)
bpy.types.register(IMAGE_MT_uvs_showhide)
bpy.types.register(IMAGE_MT_uvs_transform)
bpy.types.register(IMAGE_MT_uvs_mirror)
bpy.types.register(IMAGE_MT_uvs_weldalign)
bpy.types.register(IMAGE_MT_uvs)
bpy.types.register(IMAGE_HT_header)
bpy.types.register(IMAGE_PT_game_properties)

@ -18,7 +18,7 @@ class SEQUENCER_HT_header(bpy.types.Header):
layout.template_header(context) layout.template_header(context)
if context.area.show_menus: if context.area.show_menus:
row = layout.row(align=True) row = layout.row()
row.itemM(context, "SEQUENCER_MT_view") row.itemM(context, "SEQUENCER_MT_view")
row.itemR(st, "display_mode") row.itemR(st, "display_mode")

@ -2,12 +2,8 @@
import bpy import bpy
# temporary # temporary
ICON_LINENUMBERS_OFF = 588
ICON_WORDWRAP_OFF = 584
ICON_SYNTAX_OFF = 586
ICON_TEXT = 120 ICON_TEXT = 120
ICON_HELP = 1 ICON_HELP = 1
ICON_SCRIPTPLUGINS = 1
class TEXT_HT_header(bpy.types.Header): class TEXT_HT_header(bpy.types.Header):
__space_type__ = "TEXT_EDITOR" __space_type__ = "TEXT_EDITOR"
@ -21,7 +17,7 @@ class TEXT_HT_header(bpy.types.Header):
layout.template_header(context) layout.template_header(context)
if context.area.show_menus: if context.area.show_menus:
row = layout.row(align=True) row = layout.row()
row.itemM(context, "TEXT_MT_text") row.itemM(context, "TEXT_MT_text")
if text: if text:
row.itemM(context, "TEXT_MT_edit") row.itemM(context, "TEXT_MT_edit")
@ -30,13 +26,12 @@ class TEXT_HT_header(bpy.types.Header):
if text and text.modified: if text and text.modified:
row = layout.row() row = layout.row()
# row.color(redalert) # row.color(redalert)
row.itemO("TEXT_OT_resolve_conflict", text="", icon=ICON_HELP) row.itemO("TEXT_OT_resolve_conflict", text="", icon='ICON_HELP')
row = layout.row(align=True) row = layout.row(align=True)
row.itemR(st, "line_numbers", text="", icon=ICON_LINENUMBERS_OFF) row.itemR(st, "line_numbers", text="")
row.itemR(st, "word_wrap", text="", icon=ICON_WORDWRAP_OFF) row.itemR(st, "word_wrap", text="")
row.itemR(st, "syntax_highlight", text="", icon=ICON_SYNTAX_OFF) row.itemR(st, "syntax_highlight", text="")
# row.itemR(st, "do_python_plugins", text="", icon=ICON_SCRIPTPLUGINS)
layout.template_ID(context, st, "text", new="TEXT_OT_new", open="TEXT_OT_open", unlink="TEXT_OT_unlink") layout.template_ID(context, st, "text", new="TEXT_OT_new", open="TEXT_OT_open", unlink="TEXT_OT_unlink")
@ -63,9 +58,9 @@ class TEXT_PT_properties(bpy.types.Panel):
layout = self.layout layout = self.layout
flow = layout.column_flow() flow = layout.column_flow()
flow.itemR(st, "line_numbers", icon=ICON_LINENUMBERS_OFF) flow.itemR(st, "line_numbers")
flow.itemR(st, "word_wrap", icon=ICON_WORDWRAP_OFF) flow.itemR(st, "word_wrap")
flow.itemR(st, "syntax_highlight", icon=ICON_SYNTAX_OFF) flow.itemR(st, "syntax_highlight")
flow.itemR(st, "live_edit") flow.itemR(st, "live_edit")
flow = layout.column_flow() flow = layout.column_flow()
@ -85,14 +80,14 @@ class TEXT_PT_find(bpy.types.Panel):
col = layout.column(align=True) col = layout.column(align=True)
row = col.row() row = col.row()
row.itemR(st, "find_text", text="") row.itemR(st, "find_text", text="")
row.itemO("TEXT_OT_find_set_selected", text="", icon=ICON_TEXT) row.itemO("TEXT_OT_find_set_selected", text="", icon='ICON_TEXT')
col.itemO("TEXT_OT_find") col.itemO("TEXT_OT_find")
# replace # replace
col = layout.column(align=True) col = layout.column(align=True)
row = col.row() row = col.row()
row.itemR(st, "replace_text", text="") row.itemR(st, "replace_text", text="")
row.itemO("TEXT_OT_replace_set_selected", text="", icon=ICON_TEXT) row.itemO("TEXT_OT_replace_set_selected", text="", icon='ICON_TEXT')
col.itemO("TEXT_OT_replace") col.itemO("TEXT_OT_replace")
# mark # mark
@ -140,8 +135,109 @@ class TEXT_MT_text(bpy.types.Menu):
# XXX uiDefIconTextBlockBut(block, text_plugin_scriptsmenu, NULL, ICON_RIGHTARROW_THIN, "Text Plugins", 0, yco-=20, 120, 19, ""); # XXX uiDefIconTextBlockBut(block, text_plugin_scriptsmenu, NULL, ICON_RIGHTARROW_THIN, "Text Plugins", 0, yco-=20, 120, 19, "");
#endif #endif
class TEXT_MT_edit_view(bpy.types.Menu):
__space_type__ = "TEXT_EDITOR"
__label__ = "View"
def draw(self, context):
layout = self.layout
layout.item_enumO("TEXT_OT_move", "type", "FILE_TOP", text="Top of File")
layout.item_enumO("TEXT_OT_move", "type", "FILE_BOTTOM", text="Bottom of File")
class TEXT_MT_edit_select(bpy.types.Menu):
__space_type__ = "TEXT_EDITOR"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("TEXT_OT_select_all")
layout.itemO("TEXT_OT_select_line")
class TEXT_MT_edit_markers(bpy.types.Menu):
__space_type__ = "TEXT_EDITOR"
__label__ = "Markers"
def draw(self, context):
layout = self.layout
layout.itemO("TEXT_OT_markers_clear")
layout.itemO("TEXT_OT_next_marker")
layout.itemO("TEXT_OT_previous_marker")
class TEXT_MT_format(bpy.types.Menu):
__space_type__ = "TEXT_EDITOR"
__label__ = "Format"
def draw(self, context):
layout = self.layout
layout.itemO("TEXT_OT_indent")
layout.itemO("TEXT_OT_unindent")
layout.itemS()
layout.itemO("TEXT_OT_comment")
layout.itemO("TEXT_OT_uncomment")
layout.itemS()
layout.item_menu_enumO("TEXT_OT_convert_whitespace", "type")
class TEXT_MT_edit_to3d(bpy.types.Menu):
__space_type__ = "TEXT_EDITOR"
__label__ = "Text To 3D Object"
def draw(self, context):
layout = self.layout
layout.item_booleanO("TEXT_OT_to_3d_object", "split_lines", False, text="One Object");
layout.item_booleanO("TEXT_OT_to_3d_object", "split_lines", True, text="One Object Per Line");
class TEXT_MT_edit(bpy.types.Menu):
__space_type__ = "TEXT_EDITOR"
__label__ = "Edit"
def poll(self, context):
st = context.space_data
return st.text != None
def draw(self, context):
layout = self.layout
layout.itemO("ED_OT_undo")
layout.itemO("ED_OT_redo")
layout.itemS()
layout.itemO("TEXT_OT_cut")
layout.itemO("TEXT_OT_copy")
layout.itemO("TEXT_OT_paste")
layout.itemS()
layout.itemM(context, "TEXT_MT_edit_view")
layout.itemM(context, "TEXT_MT_edit_select")
layout.itemM(context, "TEXT_MT_edit_markers")
layout.itemS()
layout.itemO("TEXT_OT_jump")
layout.itemO("TEXT_OT_properties")
layout.itemS()
layout.itemM(context, "TEXT_MT_edit_to3d")
bpy.types.register(TEXT_HT_header) bpy.types.register(TEXT_HT_header)
bpy.types.register(TEXT_PT_properties) bpy.types.register(TEXT_PT_properties)
bpy.types.register(TEXT_PT_find) bpy.types.register(TEXT_PT_find)
bpy.types.register(TEXT_MT_text) bpy.types.register(TEXT_MT_text)
bpy.types.register(TEXT_MT_format)
bpy.types.register(TEXT_MT_edit)
bpy.types.register(TEXT_MT_edit_view)
bpy.types.register(TEXT_MT_edit_select)
bpy.types.register(TEXT_MT_edit_markers)
bpy.types.register(TEXT_MT_edit_to3d)

@ -226,6 +226,7 @@ PULIB += $(OCGDIR)/blender/ed_action/$(DEBUG_DIR)libed_action.a
PULIB += $(OCGDIR)/blender/ed_nla/$(DEBUG_DIR)libed_nla.a PULIB += $(OCGDIR)/blender/ed_nla/$(DEBUG_DIR)libed_nla.a
PULIB += $(OCGDIR)/blender/ed_script/$(DEBUG_DIR)libed_script.a PULIB += $(OCGDIR)/blender/ed_script/$(DEBUG_DIR)libed_script.a
PULIB += $(OCGDIR)/blender/ed_text/$(DEBUG_DIR)libed_text.a PULIB += $(OCGDIR)/blender/ed_text/$(DEBUG_DIR)libed_text.a
PULIB += $(OCGDIR)/blender/ed_logic/$(DEBUG_DIR)libed_logic.a
PULIB += $(OCGDIR)/blender/ed_sequencer/$(DEBUG_DIR)libed_sequencer.a PULIB += $(OCGDIR)/blender/ed_sequencer/$(DEBUG_DIR)libed_sequencer.a
PULIB += $(OCGDIR)/blender/ed_file/$(DEBUG_DIR)libed_file.a PULIB += $(OCGDIR)/blender/ed_file/$(DEBUG_DIR)libed_file.a
PULIB += $(OCGDIR)/blender/ed_info/$(DEBUG_DIR)libed_info.a PULIB += $(OCGDIR)/blender/ed_info/$(DEBUG_DIR)libed_info.a

@ -29,6 +29,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <math.h>
#include <ft2build.h> #include <ft2build.h>
@ -143,12 +144,13 @@ void blf_font_draw(FontBLF *font, char *str)
delta.x= 0; delta.x= 0;
delta.y= 0; delta.y= 0;
FT_Get_Kerning(font->face, g_prev_index, glyph_index, FT_KERNING_UNFITTED, &delta); if (FT_Get_Kerning(font->face, g_prev_index, glyph_index, FT_KERNING_UNFITTED, &delta) == 0) {
pen_x += delta.x >> 6; pen_x += delta.x >> 6;
if (pen_x < old_pen_x) if (pen_x < old_pen_x)
pen_x= old_pen_x; pen_x= old_pen_x;
} }
}
if (font->flags & BLF_USER_KERNING) { if (font->flags & BLF_USER_KERNING) {
old_pen_x= pen_x; old_pen_x= pen_x;
@ -174,7 +176,7 @@ void blf_font_boundbox(FontBLF *font, char *str, rctf *box)
FT_Vector delta; FT_Vector delta;
FT_UInt glyph_index, g_prev_index; FT_UInt glyph_index, g_prev_index;
rctf gbox; rctf gbox;
int pen_x, pen_y, old_pen_x; float pen_x, pen_y, old_pen_x;
int i, has_kerning; int i, has_kerning;
if (!font->glyph_cache) if (!font->glyph_cache)
@ -222,12 +224,13 @@ void blf_font_boundbox(FontBLF *font, char *str, rctf *box)
delta.x= 0; delta.x= 0;
delta.y= 0; delta.y= 0;
FT_Get_Kerning(font->face, g_prev_index, glyph_index, FT_KERNING_UNFITTED, &delta); if (FT_Get_Kerning(font->face, g_prev_index, glyph_index, FT_KERNING_UNFITTED, &delta) == 0) {
pen_x += delta.x >> 6; pen_x += delta.x >> 6;
if (pen_x < old_pen_x) if (pen_x < old_pen_x)
old_pen_x= pen_x; old_pen_x= pen_x;
} }
}
if (font->flags & BLF_USER_KERNING) { if (font->flags & BLF_USER_KERNING) {
old_pen_x= pen_x; old_pen_x= pen_x;
@ -318,7 +321,7 @@ void blf_font_fill(FontBLF *font)
font->clip_rec.xmax= 0.0f; font->clip_rec.xmax= 0.0f;
font->clip_rec.ymin= 0.0f; font->clip_rec.ymin= 0.0f;
font->clip_rec.ymax= 0.0f; font->clip_rec.ymax= 0.0f;
font->flags= BLF_USER_KERNING; font->flags= BLF_USER_KERNING | BLF_FONT_KERNING;
font->dpi= 0; font->dpi= 0;
font->size= 0; font->size= 0;
font->kerning= 0.0f; font->kerning= 0.0f;

@ -204,7 +204,7 @@ typedef struct ModifierTypeInfo {
* *
* This function is optional. * This function is optional.
*/ */
CustomDataMask (*requiredDataMask)(struct ModifierData *md); CustomDataMask (*requiredDataMask)(struct Object *ob, struct ModifierData *md);
/* Free internal modifier data variables, this function should /* Free internal modifier data variables, this function should
* not free the md variable itself. * not free the md variable itself.
@ -272,6 +272,7 @@ int modifier_dependsOnTime(struct ModifierData *md);
int modifier_supportsMapping(struct ModifierData *md); int modifier_supportsMapping(struct ModifierData *md);
int modifier_couldBeCage(struct ModifierData *md); int modifier_couldBeCage(struct ModifierData *md);
int modifier_isDeformer(struct ModifierData *md); int modifier_isDeformer(struct ModifierData *md);
int modifier_isEnabled(struct ModifierData *md, int required_mode);
void modifier_setError(struct ModifierData *md, char *format, ...); void modifier_setError(struct ModifierData *md, char *format, ...);
void modifiers_foreachObjectLink(struct Object *ob, void modifiers_foreachObjectLink(struct Object *ob,
@ -302,8 +303,10 @@ int modifiers_indexInObject(struct Object *ob, struct ModifierData *md
* evaluation, assuming the data indicated by dataMask is required at the * evaluation, assuming the data indicated by dataMask is required at the
* end of the stack. * end of the stack.
*/ */
struct LinkNode *modifiers_calcDataMasks(struct ModifierData *md, struct LinkNode *modifiers_calcDataMasks(struct Object *ob,
CustomDataMask dataMask); struct ModifierData *md,
CustomDataMask dataMask,
int required_mode);
struct ModifierData *modifiers_getVirtualModifierList(struct Object *ob); struct ModifierData *modifiers_getVirtualModifierList(struct Object *ob);
#endif #endif

@ -410,8 +410,9 @@ struct TexResult;
#define TEX_NODE_DECOMPOSE 420 #define TEX_NODE_DECOMPOSE 420
#define TEX_NODE_VALTONOR 421 #define TEX_NODE_VALTONOR 421
#define TEX_NODE_SCALE 422 #define TEX_NODE_SCALE 422
#define TEX_NODE_AT 423
/* 201-299 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */ /* 501-599 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */
#define TEX_NODE_PROC 500 #define TEX_NODE_PROC 500
#define TEX_NODE_PROC_MAX 600 #define TEX_NODE_PROC_MAX 600

@ -157,6 +157,8 @@ typedef struct PanelType {
int space_type; int space_type;
int region_type; int region_type;
int flag;
/* verify if the panel should draw or not */ /* verify if the panel should draw or not */
int (*poll)(const struct bContext *, struct PanelType *); int (*poll)(const struct bContext *, struct PanelType *);
/* draw header (optional) */ /* draw header (optional) */

@ -191,7 +191,7 @@ static BME_Poly *BME_split_face(BME_Mesh *bm, BME_Poly *f, BME_Vert *v1, BME_Ver
nf = BME_SFME(bm,f,v1,v2,nl); nf = BME_SFME(bm,f,v1,v2,nl);
nf->flag = f->flag; nf->flag = f->flag;
/* if the edge was selected, select this face, too */ /* if the edge was selected, select this face, too */
if (example->flag & SELECT) f->flag |= ME_FACE_SEL; if (example && (example->flag & SELECT)) f->flag |= ME_FACE_SEL;
nf->h = f->h; nf->h = f->h;
nf->mat_nr = f->mat_nr; nf->mat_nr = f->mat_nr;
if (nl && example) { if (nl && example) {

@ -1604,18 +1604,18 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
modifiers_clearErrors(ob); modifiers_clearErrors(ob);
if(useRenderParams) required_mode = eModifierMode_Render;
else required_mode = eModifierMode_Realtime;
/* we always want to keep original indices */ /* we always want to keep original indices */
dataMask |= CD_MASK_ORIGINDEX; dataMask |= CD_MASK_ORIGINDEX;
datamasks = modifiers_calcDataMasks(md, dataMask); datamasks = modifiers_calcDataMasks(ob, md, dataMask, required_mode);
curr = datamasks; curr = datamasks;
if(deform_r) *deform_r = NULL; if(deform_r) *deform_r = NULL;
*final_r = NULL; *final_r = NULL;
if(useRenderParams) required_mode = eModifierMode_Render;
else required_mode = eModifierMode_Realtime;
if(useDeform) { if(useDeform) {
if(useDeform > 0 && do_ob_key(scene, ob)) /* shape key makes deform verts */ if(useDeform > 0 && do_ob_key(scene, ob)) /* shape key makes deform verts */
deformedVerts = mesh_getVertexCos(me, &numVerts); deformedVerts = mesh_getVertexCos(me, &numVerts);
@ -1628,8 +1628,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
md->scene= scene; md->scene= scene;
if((md->mode & required_mode) != required_mode) continue; if(!modifier_isEnabled(md, required_mode)) continue;
if(mti->isDisabled && mti->isDisabled(md)) continue;
if(useDeform < 0 && mti->dependsOnTime && mti->dependsOnTime(md)) continue; if(useDeform < 0 && mti->dependsOnTime && mti->dependsOnTime(md)) continue;
if(mti->type == eModifierTypeType_OnlyDeform) { if(mti->type == eModifierTypeType_OnlyDeform) {
@ -1678,19 +1677,18 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
md->scene= scene; md->scene= scene;
if((md->mode & required_mode) != required_mode) continue; if(!modifier_isEnabled(md, required_mode)) continue;
if(mti->type == eModifierTypeType_OnlyDeform && !useDeform) continue; if(mti->type == eModifierTypeType_OnlyDeform && !useDeform) continue;
if((mti->flags & eModifierTypeFlag_RequiresOriginalData) && dm) { if((mti->flags & eModifierTypeFlag_RequiresOriginalData) && dm) {
modifier_setError(md, "Modifier requires original data, bad stack position."); modifier_setError(md, "Modifier requires original data, bad stack position.");
continue; continue;
} }
if(mti->isDisabled && mti->isDisabled(md)) continue;
if(needMapping && !modifier_supportsMapping(md)) continue; if(needMapping && !modifier_supportsMapping(md)) continue;
if(useDeform < 0 && mti->dependsOnTime && mti->dependsOnTime(md)) continue; if(useDeform < 0 && mti->dependsOnTime && mti->dependsOnTime(md)) continue;
/* add an orco layer if needed by this modifier */ /* add an orco layer if needed by this modifier */
if(dm && mti->requiredDataMask) { if(dm && mti->requiredDataMask) {
mask = mti->requiredDataMask(md); mask = mti->requiredDataMask(ob, md);
if(mask & CD_MASK_ORCO) if(mask & CD_MASK_ORCO)
add_orco_dm(ob, NULL, dm, orcodm); add_orco_dm(ob, NULL, dm, orcodm);
} }
@ -1860,14 +1858,11 @@ static int editmesh_modifier_is_enabled(ModifierData *md, DerivedMesh *dm)
ModifierTypeInfo *mti = modifierType_getInfo(md->type); ModifierTypeInfo *mti = modifierType_getInfo(md->type);
int required_mode = eModifierMode_Realtime | eModifierMode_Editmode; int required_mode = eModifierMode_Realtime | eModifierMode_Editmode;
if((md->mode & required_mode) != required_mode) return 0; if(!modifier_isEnabled(md, required_mode)) return 0;
if((mti->flags & eModifierTypeFlag_RequiresOriginalData) && dm) { if((mti->flags & eModifierTypeFlag_RequiresOriginalData) && dm) {
modifier_setError(md, "Modifier requires original data, bad stack position."); modifier_setError(md, "Modifier requires original data, bad stack position.");
return 0; return 0;
} }
if(mti->isDisabled && mti->isDisabled(md)) return 0;
if(!(mti->flags & eModifierTypeFlag_SupportsEditmode)) return 0;
if(md->mode & eModifierMode_DisableTemporary) return 0;
return 1; return 1;
} }
@ -1882,6 +1877,7 @@ static void editmesh_calc_modifiers(Scene *scene, Object *ob, EditMesh *em, Deri
DerivedMesh *dm, *orcodm = NULL; DerivedMesh *dm, *orcodm = NULL;
int i, numVerts = 0, cageIndex = modifiers_getCageIndex(ob, NULL); int i, numVerts = 0, cageIndex = modifiers_getCageIndex(ob, NULL);
LinkNode *datamasks, *curr; LinkNode *datamasks, *curr;
int required_mode = eModifierMode_Realtime | eModifierMode_Editmode;
modifiers_clearErrors(ob); modifiers_clearErrors(ob);
@ -1895,7 +1891,7 @@ static void editmesh_calc_modifiers(Scene *scene, Object *ob, EditMesh *em, Deri
/* we always want to keep original indices */ /* we always want to keep original indices */
dataMask |= CD_MASK_ORIGINDEX; dataMask |= CD_MASK_ORIGINDEX;
datamasks = modifiers_calcDataMasks(md, dataMask); datamasks = modifiers_calcDataMasks(ob, md, dataMask, required_mode);
curr = datamasks; curr = datamasks;
for(i = 0; md; i++, md = md->next, curr = curr->next) { for(i = 0; md; i++, md = md->next, curr = curr->next) {
@ -1908,7 +1904,7 @@ static void editmesh_calc_modifiers(Scene *scene, Object *ob, EditMesh *em, Deri
/* add an orco layer if needed by this modifier */ /* add an orco layer if needed by this modifier */
if(dm && mti->requiredDataMask) { if(dm && mti->requiredDataMask) {
mask = mti->requiredDataMask(md); mask = mti->requiredDataMask(ob, md);
if(mask & CD_MASK_ORCO) if(mask & CD_MASK_ORCO)
add_orco_dm(ob, em, dm, orcodm); add_orco_dm(ob, em, dm, orcodm);
} }

@ -800,6 +800,7 @@ void calc_action_range(const bAction *act, float *start, float *end, int incl_hi
/* Copy the data from the action-pose (src) into the pose */ /* Copy the data from the action-pose (src) into the pose */
/* both args are assumed to be valid */ /* both args are assumed to be valid */
/* exported to game engine */ /* exported to game engine */
/* Note! this assumes both poses are aligned, this isnt always true when dealing with user poses */
void extract_pose_from_pose(bPose *pose, const bPose *src) void extract_pose_from_pose(bPose *pose, const bPose *src)
{ {
const bPoseChannel *schan; const bPoseChannel *schan;
@ -810,7 +811,7 @@ void extract_pose_from_pose(bPose *pose, const bPose *src)
return; return;
} }
for (schan=src->chanbase.first; schan; schan=schan->next, pchan= pchan->next) { for (schan=src->chanbase.first; (schan && pchan); schan=schan->next, pchan= pchan->next) {
copy_pose_channel_data(pchan, schan); copy_pose_channel_data(pchan, schan);
} }
} }

@ -155,7 +155,7 @@ Curve *add_curve(char *name, int type)
cu->str= MEM_mallocN(12, "str"); cu->str= MEM_mallocN(12, "str");
strcpy(cu->str, "Text"); strcpy(cu->str, "Text");
cu->pos= 4; cu->pos= 4;
cu->strinfo= MEM_callocN(12*sizeof(CharInfo), "strinfo"); cu->strinfo= MEM_callocN(12*sizeof(CharInfo), "strinfo new");
cu->totbox= cu->actbox= 1; cu->totbox= cu->actbox= 1;
cu->tb= MEM_callocN(MAXTEXTBOX*sizeof(TextBox), "textbox"); cu->tb= MEM_callocN(MAXTEXTBOX*sizeof(TextBox), "textbox");
cu->tb[0].w = cu->tb[0].h = 0.0; cu->tb[0].w = cu->tb[0].h = 0.0;

@ -682,7 +682,7 @@ struct chartrans *BKE_text_to_curve(Scene *scene, Object *ob, int mode)
cu->ulheight = 0.05; cu->ulheight = 0.05;
if (cu->strinfo==NULL) /* old file */ if (cu->strinfo==NULL) /* old file */
cu->strinfo = MEM_callocN((slen+1) * sizeof(CharInfo), "strinfo compat"); cu->strinfo = MEM_callocN((slen+4) * sizeof(CharInfo), "strinfo compat");
custrinfo= cu->strinfo; custrinfo= cu->strinfo;
if (cu->editfont) if (cu->editfont)
@ -1145,7 +1145,7 @@ struct chartrans *BKE_text_to_curve(Scene *scene, Object *ob, int mode)
if (cu->sepchar==0) { if (cu->sepchar==0) {
for (i= 0; i<slen; i++) { for (i= 0; i<slen; i++) {
cha = (uintptr_t) mem[i]; cha = (uintptr_t) mem[i];
info = &(cu->strinfo[i]); info = &(custrinfo[i]);
if (info->mat_nr > (ob->totcol)) { if (info->mat_nr > (ob->totcol)) {
/* printf("Error: Illegal material index (%d) in text object, setting to 0\n", info->mat_nr); */ /* printf("Error: Illegal material index (%d) in text object, setting to 0\n", info->mat_nr); */
info->mat_nr = 0; info->mat_nr = 0;

@ -545,7 +545,7 @@ static char *material_adrcodes_to_paths (int adrcode, int *array_index)
return "ambient"; return "ambient";
case MA_SPEC: case MA_SPEC:
return "specularity"; return "specular_reflection";
case MA_HARD: case MA_HARD:
return "specular_hardness"; return "specular_hardness";

@ -209,7 +209,7 @@ static void curveModifier_copyData(ModifierData *md, ModifierData *target)
strncpy(tcmd->name, cmd->name, 32); strncpy(tcmd->name, cmd->name, 32);
} }
CustomDataMask curveModifier_requiredDataMask(ModifierData *md) CustomDataMask curveModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
CurveModifierData *cmd = (CurveModifierData *)md; CurveModifierData *cmd = (CurveModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -285,7 +285,7 @@ static void latticeModifier_copyData(ModifierData *md, ModifierData *target)
strncpy(tlmd->name, lmd->name, 32); strncpy(tlmd->name, lmd->name, 32);
} }
CustomDataMask latticeModifier_requiredDataMask(ModifierData *md) CustomDataMask latticeModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
LatticeModifierData *lmd = (LatticeModifierData *)md; LatticeModifierData *lmd = (LatticeModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -668,7 +668,7 @@ static void maskModifier_copyData(ModifierData *md, ModifierData *target)
strcpy(tmmd->vgroup, mmd->vgroup); strcpy(tmmd->vgroup, mmd->vgroup);
} }
static CustomDataMask maskModifier_requiredDataMask(ModifierData *md) static CustomDataMask maskModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
return (1 << CD_MDEFORMVERT); return (1 << CD_MDEFORMVERT);
} }
@ -3396,7 +3396,7 @@ static void bevelModifier_copyData(ModifierData *md, ModifierData *target)
strncpy(tbmd->defgrp_name, bmd->defgrp_name, 32); strncpy(tbmd->defgrp_name, bmd->defgrp_name, 32);
} }
CustomDataMask bevelModifier_requiredDataMask(ModifierData *md) CustomDataMask bevelModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
BevelModifierData *bmd = (BevelModifierData *)md; BevelModifierData *bmd = (BevelModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -3476,7 +3476,7 @@ static void displaceModifier_copyData(ModifierData *md, ModifierData *target)
strncpy(tdmd->uvlayer_name, dmd->uvlayer_name, 32); strncpy(tdmd->uvlayer_name, dmd->uvlayer_name, 32);
} }
CustomDataMask displaceModifier_requiredDataMask(ModifierData *md) CustomDataMask displaceModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
DisplaceModifierData *dmd = (DisplaceModifierData *)md; DisplaceModifierData *dmd = (DisplaceModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -3819,7 +3819,7 @@ static void uvprojectModifier_copyData(ModifierData *md, ModifierData *target)
tumd->aspecty = umd->aspecty; tumd->aspecty = umd->aspecty;
} }
CustomDataMask uvprojectModifier_requiredDataMask(ModifierData *md) CustomDataMask uvprojectModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -4285,7 +4285,7 @@ int smoothModifier_isDisabled(ModifierData *md)
return 0; return 0;
} }
CustomDataMask smoothModifier_requiredDataMask(ModifierData *md) CustomDataMask smoothModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
SmoothModifierData *smd = (SmoothModifierData *)md; SmoothModifierData *smd = (SmoothModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -4514,7 +4514,7 @@ int castModifier_isDisabled(ModifierData *md)
return 0; return 0;
} }
CustomDataMask castModifier_requiredDataMask(ModifierData *md) CustomDataMask castModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
CastModifierData *cmd = (CastModifierData *)md; CastModifierData *cmd = (CastModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -5145,7 +5145,7 @@ static void waveModifier_updateDepgraph(
} }
} }
CustomDataMask waveModifier_requiredDataMask(ModifierData *md) CustomDataMask waveModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
WaveModifierData *wmd = (WaveModifierData *)md; WaveModifierData *wmd = (WaveModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -5482,7 +5482,7 @@ static void armatureModifier_copyData(ModifierData *md, ModifierData *target)
strncpy(tamd->defgrp_name, amd->defgrp_name, 32); strncpy(tamd->defgrp_name, amd->defgrp_name, 32);
} }
CustomDataMask armatureModifier_requiredDataMask(ModifierData *md) CustomDataMask armatureModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -5596,7 +5596,7 @@ static void hookModifier_copyData(ModifierData *md, ModifierData *target)
strncpy(thmd->name, hmd->name, 32); strncpy(thmd->name, hmd->name, 32);
} }
CustomDataMask hookModifier_requiredDataMask(ModifierData *md) CustomDataMask hookModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
HookModifierData *hmd = (HookModifierData *)md; HookModifierData *hmd = (HookModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -5855,7 +5855,7 @@ static void clothModifier_updateDepgraph(
} }
} }
CustomDataMask clothModifier_requiredDataMask(ModifierData *md) CustomDataMask clothModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -6239,7 +6239,7 @@ static DerivedMesh *booleanModifier_applyModifier(
return derivedData; return derivedData;
} }
CustomDataMask booleanModifier_requiredDataMask(ModifierData *md) CustomDataMask booleanModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
CustomDataMask dataMask = (1 << CD_MTFACE) + (1 << CD_MEDGE); CustomDataMask dataMask = (1 << CD_MTFACE) + (1 << CD_MEDGE);
@ -6287,12 +6287,27 @@ static void particleSystemModifier_copyData(ModifierData *md, ModifierData *targ
tpsmd->psys = psmd->psys; tpsmd->psys = psmd->psys;
} }
CustomDataMask particleSystemModifier_requiredDataMask(ModifierData *md) CustomDataMask particleSystemModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
ParticleSystemModifierData *psmd= (ParticleSystemModifierData*) md; ParticleSystemModifierData *psmd= (ParticleSystemModifierData*) md;
CustomDataMask dataMask = (1 << CD_MTFACE) + (1 << CD_MEDGE); CustomDataMask dataMask = 0;
Material *ma;
MTex *mtex;
int i; int i;
ma= give_current_material(ob, psmd->psys->part->omat);
if(ma) {
for(i=0; i<MAX_MTEX; i++) {
mtex=ma->mtex[i];
if(mtex && (ma->septex & (1<<i))==0)
if(mtex->pmapto && (mtex->texco & TEXCO_UV))
dataMask |= (1 << CD_MTFACE);
}
}
if(psmd->psys->part->tanfac!=0.0)
dataMask |= (1 << CD_MTFACE);
/* ask for vertexgroups if we need them */ /* ask for vertexgroups if we need them */
for(i=0; i<PSYS_TOT_VG; i++){ for(i=0; i<PSYS_TOT_VG; i++){
if(psmd->psys->vgroup[i]){ if(psmd->psys->vgroup[i]){
@ -6637,7 +6652,7 @@ static int explodeModifier_dependsOnTime(ModifierData *md)
{ {
return 1; return 1;
} }
CustomDataMask explodeModifier_requiredDataMask(ModifierData *md) CustomDataMask explodeModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
ExplodeModifierData *emd= (ExplodeModifierData*) md; ExplodeModifierData *emd= (ExplodeModifierData*) md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -7551,7 +7566,7 @@ static void meshdeformModifier_copyData(ModifierData *md, ModifierData *target)
tmmd->object = mmd->object; tmmd->object = mmd->object;
} }
CustomDataMask meshdeformModifier_requiredDataMask(ModifierData *md) CustomDataMask meshdeformModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
MeshDeformModifierData *mmd = (MeshDeformModifierData *)md; MeshDeformModifierData *mmd = (MeshDeformModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -7815,10 +7830,12 @@ static void meshdeformModifier_deformVerts(
{ {
DerivedMesh *dm; DerivedMesh *dm;
if(!derivedData && ob->type==OB_MESH) if (!derivedData) {
dm= CDDM_from_mesh(ob->data, ob); dm= get_original_dm(md->scene, ob, NULL, 0);
else if (dm == NULL) return;
dm= derivedData; }
else dm= derivedData;
modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */ modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */
@ -7930,7 +7947,7 @@ static void shrinkwrapModifier_copyData(ModifierData *md, ModifierData *target)
tsmd->subsurfLevels = smd->subsurfLevels; tsmd->subsurfLevels = smd->subsurfLevels;
} }
CustomDataMask shrinkwrapModifier_requiredDataMask(ModifierData *md) CustomDataMask shrinkwrapModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *)md; ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -7964,7 +7981,7 @@ static void shrinkwrapModifier_foreachObjectLink(ModifierData *md, Object *ob, O
static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
{ {
DerivedMesh *dm = NULL; DerivedMesh *dm = NULL;
CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(md); CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(ob, md);
/* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */ /* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */
if(dataMask) if(dataMask)
@ -7990,7 +8007,7 @@ static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, Derived
static void shrinkwrapModifier_deformVertsEM(ModifierData *md, Object *ob, EditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) static void shrinkwrapModifier_deformVertsEM(ModifierData *md, Object *ob, EditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{ {
DerivedMesh *dm = NULL; DerivedMesh *dm = NULL;
CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(md); CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(ob, md);
if(dataMask) if(dataMask)
{ {
@ -8049,7 +8066,7 @@ static void simpledeformModifier_copyData(ModifierData *md, ModifierData *target
memcpy(tsmd->limit, smd->limit, sizeof(tsmd->limit)); memcpy(tsmd->limit, smd->limit, sizeof(tsmd->limit));
} }
static CustomDataMask simpledeformModifier_requiredDataMask(ModifierData *md) static CustomDataMask simpledeformModifier_requiredDataMask(Object *ob, ModifierData *md)
{ {
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md; SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
CustomDataMask dataMask = 0; CustomDataMask dataMask = 0;
@ -8078,7 +8095,7 @@ static void simpledeformModifier_updateDepgraph(ModifierData *md, DagForest *for
static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
{ {
DerivedMesh *dm = NULL; DerivedMesh *dm = NULL;
CustomDataMask dataMask = simpledeformModifier_requiredDataMask(md); CustomDataMask dataMask = simpledeformModifier_requiredDataMask(ob, md);
/* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */ /* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */
if(dataMask) if(dataMask)
@ -8105,7 +8122,7 @@ static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, Deriv
static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, EditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, EditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{ {
DerivedMesh *dm = NULL; DerivedMesh *dm = NULL;
CustomDataMask dataMask = simpledeformModifier_requiredDataMask(md); CustomDataMask dataMask = simpledeformModifier_requiredDataMask(ob, md);
/* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */ /* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */
if(dataMask) if(dataMask)
@ -8717,7 +8734,20 @@ int modifiers_isParticleEnabled(Object *ob)
return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render)); return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
} }
LinkNode *modifiers_calcDataMasks(ModifierData *md, CustomDataMask dataMask) int modifier_isEnabled(ModifierData *md, int required_mode)
{
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
if((md->mode & required_mode) != required_mode) return 0;
if(mti->isDisabled && mti->isDisabled(md)) return 0;
if(md->mode & eModifierMode_DisableTemporary) return 0;
if(required_mode & eModifierMode_Editmode)
if(!(mti->flags & eModifierTypeFlag_SupportsEditmode)) return 0;
return 1;
}
LinkNode *modifiers_calcDataMasks(Object *ob, ModifierData *md, CustomDataMask dataMask, int required_mode)
{ {
LinkNode *dataMasks = NULL; LinkNode *dataMasks = NULL;
LinkNode *curr, *prev; LinkNode *curr, *prev;
@ -8727,7 +8757,9 @@ LinkNode *modifiers_calcDataMasks(ModifierData *md, CustomDataMask dataMask)
ModifierTypeInfo *mti = modifierType_getInfo(md->type); ModifierTypeInfo *mti = modifierType_getInfo(md->type);
CustomDataMask mask = 0; CustomDataMask mask = 0;
if(mti->requiredDataMask) mask = mti->requiredDataMask(md); if(modifier_isEnabled(md, required_mode))
if(mti->requiredDataMask)
mask = mti->requiredDataMask(ob, md);
BLI_linklist_prepend(&dataMasks, SET_INT_IN_POINTER(mask)); BLI_linklist_prepend(&dataMasks, SET_INT_IN_POINTER(mask));
} }

@ -3050,6 +3050,7 @@ static void registerTextureNodes(ListBase *ntypelist)
nodeRegisterType(ntypelist, &tex_node_rotate); nodeRegisterType(ntypelist, &tex_node_rotate);
nodeRegisterType(ntypelist, &tex_node_translate); nodeRegisterType(ntypelist, &tex_node_translate);
nodeRegisterType(ntypelist, &tex_node_scale); nodeRegisterType(ntypelist, &tex_node_scale);
nodeRegisterType(ntypelist, &tex_node_at);
nodeRegisterType(ntypelist, &tex_node_proc_voronoi); nodeRegisterType(ntypelist, &tex_node_proc_voronoi);
nodeRegisterType(ntypelist, &tex_node_proc_blend); nodeRegisterType(ntypelist, &tex_node_proc_blend);

@ -3169,7 +3169,7 @@ static void get_cpa_texture(DerivedMesh *dm, Material *ma, int face_index, float
if(ma) for(m=0; m<MAX_MTEX; m++){ if(ma) for(m=0; m<MAX_MTEX; m++){
mtex=ma->mtex[m]; mtex=ma->mtex[m];
if(mtex && (ma->septex & (1<<m))==0){ if(mtex && (ma->septex & (1<<m))==0 && mtex->pmapto){
float def=mtex->def_var; float def=mtex->def_var;
float var=mtex->varfac; float var=mtex->varfac;
short blend=mtex->blendtype; short blend=mtex->blendtype;
@ -3218,7 +3218,7 @@ void psys_get_texture(Object *ob, Material *ma, ParticleSystemModifierData *psmd
if(ma) for(m=0; m<MAX_MTEX; m++){ if(ma) for(m=0; m<MAX_MTEX; m++){
mtex=ma->mtex[m]; mtex=ma->mtex[m];
if(mtex && (ma->septex & (1<<m))==0){ if(mtex && (ma->septex & (1<<m))==0 && mtex->pmapto){
float var=mtex->varfac; float var=mtex->varfac;
float def=mtex->def_var; float def=mtex->def_var;
short blend=mtex->blendtype; short blend=mtex->blendtype;

@ -1761,7 +1761,10 @@ void reset_particle(Scene *scene, ParticleData *pa, ParticleSystem *psys, Partic
where_is_object_time(scene, ob,pa->time); where_is_object_time(scene, ob,pa->time);
/* get birth location from object */ /* get birth location from object */
if(part->tanfac!=0.0)
psys_particle_on_emitter(psmd,part->from,pa->num, pa->num_dmcache, pa->fuv,pa->foffset,loc,nor,utan,vtan,0,0); psys_particle_on_emitter(psmd,part->from,pa->num, pa->num_dmcache, pa->fuv,pa->foffset,loc,nor,utan,vtan,0,0);
else
psys_particle_on_emitter(psmd,part->from,pa->num, pa->num_dmcache, pa->fuv,pa->foffset,loc,nor,0,0,0,0);
/* save local coordinates for later */ /* save local coordinates for later */
VECCOPY(tloc,loc); VECCOPY(tloc,loc);

@ -1288,7 +1288,7 @@ static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int re
depth = 32 is intentionally left in, otherwise ALPHA channels depth = 32 is intentionally left in, otherwise ALPHA channels
won't work... */ won't work... */
quality = 90; quality = seq->strip->proxy->quality;
ibuf->ftype= JPG | quality; ibuf->ftype= JPG | quality;
BLI_make_existing_file(name); BLI_make_existing_file(name);
@ -1305,6 +1305,7 @@ static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int re
void seq_proxy_rebuild(Scene *scene, Sequence * seq) void seq_proxy_rebuild(Scene *scene, Sequence * seq)
{ {
int cfra; int cfra;
float rsize = seq->strip->proxy->size;
waitcursor(1); waitcursor(1);
@ -1322,6 +1323,8 @@ void seq_proxy_rebuild(Scene *scene, Sequence * seq)
tse->flag &= ~STRIPELEM_PREVIEW_DONE; tse->flag &= ~STRIPELEM_PREVIEW_DONE;
} }
/* a _lot_ faster for movie files, if we read frames in /* a _lot_ faster for movie files, if we read frames in
sequential order */ sequential order */
if (seq->flag & SEQ_REVERSE_FRAMES) { if (seq->flag & SEQ_REVERSE_FRAMES) {
@ -1330,7 +1333,8 @@ void seq_proxy_rebuild(Scene *scene, Sequence * seq)
TStripElem * tse = give_tstripelem(seq, cfra); TStripElem * tse = give_tstripelem(seq, cfra);
if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) {
seq_proxy_build_frame(scene, seq, cfra, scene->r.size); //XXX set_timecursor(cfra);
seq_proxy_build_frame(scene, seq, cfra, rsize);
tse->flag |= STRIPELEM_PREVIEW_DONE; tse->flag |= STRIPELEM_PREVIEW_DONE;
} }
if (blender_test_break()) { if (blender_test_break()) {
@ -1343,7 +1347,8 @@ void seq_proxy_rebuild(Scene *scene, Sequence * seq)
TStripElem * tse = give_tstripelem(seq, cfra); TStripElem * tse = give_tstripelem(seq, cfra);
if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) { if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) {
seq_proxy_build_frame(scene, seq, cfra, scene->r.size); //XXX set_timecursor(cfra);
seq_proxy_build_frame(scene, seq, cfra, rsize);
tse->flag |= STRIPELEM_PREVIEW_DONE; tse->flag |= STRIPELEM_PREVIEW_DONE;
} }
if (blender_test_break()) { if (blender_test_break()) {
@ -1552,7 +1557,8 @@ static int input_have_to_preprocess(Scene *scene, Sequence * seq, TStripElem* se
mul = seq->mul; mul = seq->mul;
if(seq->blend_mode == SEQ_BLEND_REPLACE) { if(seq->blend_mode == SEQ_BLEND_REPLACE &&
!(seq->type & SEQ_EFFECT)) {
#if 0 // XXX old animation system #if 0 // XXX old animation system
if (seq->ipo && seq->ipo->curve.first) { if (seq->ipo && seq->ipo->curve.first) {
do_seq_ipo(scene, seq, cfra); do_seq_ipo(scene, seq, cfra);
@ -1897,10 +1903,14 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
input_preprocess(scene, seq, se, cfra); input_preprocess(scene, seq, se, cfra);
} }
} else if(seq->type & SEQ_EFFECT) { } else if(seq->type & SEQ_EFFECT) {
int use_preprocess = FALSE;
/* should the effect be recalculated? */ /* should the effect be recalculated? */
if (!build_proxy_run && se->ibuf == 0) { if (!build_proxy_run && se->ibuf == 0) {
se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size); se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size);
if (se->ibuf) {
use_preprocess = TRUE;
}
} }
if(se->ibuf == 0) { if(se->ibuf == 0) {
@ -1913,6 +1923,22 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0); se->ibuf= IMB_allocImBuf((short)seqrectx, (short)seqrecty, 32, IB_rect, 0);
do_effect(scene, cfra, seq, se); do_effect(scene, cfra, seq, se);
if (input_have_to_preprocess(scene, seq, se, cfra) &&
!build_proxy_run) {
if ((se->se1 && (se->ibuf == se->se1->ibuf)) ||
(se->se2 && (se->ibuf == se->se2->ibuf))) {
struct ImBuf * i
= IMB_dupImBuf(se->ibuf);
IMB_freeImBuf(se->ibuf);
se->ibuf = i;
}
use_preprocess = TRUE;
}
}
if (use_preprocess) {
input_preprocess(scene, seq, se, cfra);
} }
} else if(seq->type == SEQ_IMAGE) { } else if(seq->type == SEQ_IMAGE) {
if(se->ok == STRIPELEM_OK && se->ibuf == 0) { if(se->ok == STRIPELEM_OK && se->ibuf == 0) {
@ -2067,8 +2093,8 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
// XXX // XXX
#if 0 #if 0
if((G.f & G_PLAYANIM)==0 /* bad, is set on do_render_seq */ if((G.f & G_PLAYANIM)==0 /* bad, is set on do_render_seq */
&& !(sce->r.scemode & R_DOSEQ)) && !(sce->r.scemode & R_DOSEQ)
waitcursor(0); && !build_proxy_run)
#endif #endif
CFRA = oldcfra; CFRA = oldcfra;
@ -3116,6 +3142,17 @@ void update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_ch
update_changed_seq_recurs(scene, seq, changed_seq, len_change, ibuf_change); update_changed_seq_recurs(scene, seq, changed_seq, len_change, ibuf_change);
} }
#if 0 // XXX from 2.4x, needs updating
void free_imbuf_seq()
{
Scene * sce = G.main->scene.first;
while(sce) {
free_imbuf_seq_editing(sce->ed);
sce= sce->id.next;
}
}
#endif
void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo) void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo)
{ {
/* force update of all sequences with this ipo, on ipo changes */ /* force update of all sequences with this ipo, on ipo changes */
@ -3140,9 +3177,14 @@ void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo)
/* bad levell call... */ /* bad levell call... */
void do_render_seq(RenderResult *rr, int cfra) void do_render_seq(RenderResult *rr, int cfra)
{ {
static int recurs_depth = 0
ImBuf *ibuf; ImBuf *ibuf;
ibuf= give_ibuf_seq(scene, rr->rectx, rr->recty, cfra, 0, scene->r.size); recurs_depth++;
ibuf= give_ibuf_seq(rr->rectx, rr->recty, cfra, 0, 100.0);
recurs_depth--;
if(ibuf) { if(ibuf) {
if(ibuf->rect_float) { if(ibuf->rect_float) {
@ -3179,7 +3221,7 @@ void do_render_seq(RenderResult *rr, int cfra)
on freeing _all_ buffers every time on long timelines...) on freeing _all_ buffers every time on long timelines...)
(schlaile) (schlaile)
*/ */
{ if (recurs_depth == 0) { /* with nested scenes, only free on toplevel... */
uintptr_t mem_in_use; uintptr_t mem_in_use;
uintptr_t mmap_in_use; uintptr_t mmap_in_use;
uintptr_t max; uintptr_t max;

@ -4733,6 +4733,14 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
} }
snode->nodetree= snode->edittree= NULL; snode->nodetree= snode->edittree= NULL;
} }
else if(sl->spacetype==SPACE_LOGIC) {
SpaceLogic *slogic= (SpaceLogic *)sl;
if(slogic->gpd) {
slogic->gpd= newdataadr(fd, slogic->gpd);
direct_link_gpencil(fd, slogic->gpd);
}
}
else if(sl->spacetype==SPACE_SEQ) { else if(sl->spacetype==SPACE_SEQ) {
SpaceSeq *sseq= (SpaceSeq *)sl; SpaceSeq *sseq= (SpaceSeq *)sl;
if(sseq->gpd) { if(sseq->gpd) {
@ -9129,6 +9137,34 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
} }
} }
if (main->versionfile < 249 && main->subversionfile < 2) {
Scene *sce= main->scene.first;
Sequence *seq;
Editing *ed;
while(sce) {
ed= sce->ed;
if(ed) {
SEQP_BEGIN(ed, seq) {
if (seq->strip && seq->strip->proxy){
if (sce->r.size != 100.0) {
seq->strip->proxy->size
= sce->r.size;
} else {
seq->strip->proxy->size
= 25.0;
}
seq->strip->proxy->quality =90;
}
}
SEQ_END
}
sce= sce->id.next;
}
}
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */

@ -1884,6 +1884,9 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
else if(sl->spacetype==SPACE_NODE){ else if(sl->spacetype==SPACE_NODE){
writestruct(wd, DATA, "SpaceNode", 1, sl); writestruct(wd, DATA, "SpaceNode", 1, sl);
} }
else if(sl->spacetype==SPACE_LOGIC){
writestruct(wd, DATA, "SpaceLogic", 1, sl);
}
sl= sl->next; sl= sl->next;
} }
} }

@ -29,6 +29,6 @@
# Bounces make to subdirectories. # Bounces make to subdirectories.
SOURCEDIR = source/blender/editors SOURCEDIR = source/blender/editors
DIRS = armature mesh animation object sculpt_paint datafiles transform screen curve gpencil physics preview uvedit space_outliner space_time space_view3d interface util space_api space_graph space_image space_node space_buttons space_info space_file space_sound space_action space_nla space_script space_text space_sequencer DIRS = armature mesh animation object sculpt_paint datafiles transform screen curve gpencil physics preview uvedit space_outliner space_time space_view3d interface util space_api space_graph space_image space_node space_buttons space_info space_file space_sound space_action space_nla space_script space_text space_sequencer space_logic
include nan_subdirs.mk include nan_subdirs.mk

@ -29,6 +29,7 @@ SConscript(['datafiles/SConscript',
'space_script/SConscript', 'space_script/SConscript',
'space_text/SConscript', 'space_text/SConscript',
'space_sequencer/SConscript', 'space_sequencer/SConscript',
'space_logic/SConscript',
'transform/SConscript', 'transform/SConscript',
'screen/SConscript', 'screen/SConscript',
'sculpt_paint/SConscript', 'sculpt_paint/SConscript',

@ -721,17 +721,17 @@ enum {
/* defines for setting animation-channel flags */ /* defines for setting animation-channel flags */
EnumPropertyItem prop_animchannel_setflag_types[] = { EnumPropertyItem prop_animchannel_setflag_types[] = {
{ACHANNEL_SETFLAG_CLEAR, "DISABLE", "Disable", ""}, {ACHANNEL_SETFLAG_CLEAR, "DISABLE", 0, "Disable", ""},
{ACHANNEL_SETFLAG_ADD, "ENABLE", "Enable", ""}, {ACHANNEL_SETFLAG_ADD, "ENABLE", 0, "Enable", ""},
{ACHANNEL_SETFLAG_TOGGLE, "TOGGLE", "Toggle", ""}, {ACHANNEL_SETFLAG_TOGGLE, "TOGGLE", 0, "Toggle", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* defines for set animation-channel settings */ /* defines for set animation-channel settings */
EnumPropertyItem prop_animchannel_settings_types[] = { EnumPropertyItem prop_animchannel_settings_types[] = {
{ACHANNEL_SETTING_PROTECT, "PROTECT", "Protect", ""}, {ACHANNEL_SETTING_PROTECT, "PROTECT", 0, "Protect", ""},
{ACHANNEL_SETTING_MUTE, "MUTE", "Mute", ""}, {ACHANNEL_SETTING_MUTE, "MUTE", 0, "Mute", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };

@ -106,10 +106,10 @@ void ANIM_OT_keyingset_add_destination (wmOperatorType *ot)
{ {
// XXX: this is also defined in rna_animation.c // XXX: this is also defined in rna_animation.c
static EnumPropertyItem prop_mode_grouping_items[] = { static EnumPropertyItem prop_mode_grouping_items[] = {
{KSP_GROUP_NAMED, "NAMED", "Named Group", ""}, {KSP_GROUP_NAMED, "NAMED", 0, "Named Group", ""},
{KSP_GROUP_NONE, "NONE", "None", ""}, {KSP_GROUP_NONE, "NONE", 0, "None", ""},
{KSP_GROUP_KSNAME, "KEYINGSET", "Keying Set Name", ""}, {KSP_GROUP_KSNAME, "KEYINGSET", 0, "Keying Set Name", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "Add Keying Set Destination"; ot->name= "Add Keying Set Destination";

@ -1957,9 +1957,9 @@ void auto_align_ebone_tocursor(Scene *scene, View3D *v3d, EditBone *ebone)
static EnumPropertyItem prop_calc_roll_types[] = { static EnumPropertyItem prop_calc_roll_types[] = {
{0, "GLOBALUP", "Z-Axis Up", ""}, {0, "GLOBALUP", 0, "Z-Axis Up", ""},
{1, "CURSOR", "Z-Axis to Cursor", ""}, {1, "CURSOR", 0, "Z-Axis to Cursor", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int armature_calc_roll_exec(bContext *C, wmOperator *op) static int armature_calc_roll_exec(bContext *C, wmOperator *op)
@ -3489,9 +3489,9 @@ static int armature_subdivs_exec(bContext *C, wmOperator *op)
void ARMATURE_OT_subdivs(wmOperatorType *ot) void ARMATURE_OT_subdivs(wmOperatorType *ot)
{ {
static EnumPropertyItem type_items[]= { static EnumPropertyItem type_items[]= {
{0, "SIMPLE", "Simple", ""}, {0, "SIMPLE", 0, "Simple", ""},
{1, "MULTI", "Multi", ""}, {1, "MULTI", 0, "Multi", ""},
{0, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "subdivs"; ot->name= "subdivs";
@ -3669,9 +3669,9 @@ static void bone_connect_to_new_parent(ListBase *edbo, EditBone *selbone, EditBo
} }
static EnumPropertyItem prop_editarm_make_parent_types[] = { static EnumPropertyItem prop_editarm_make_parent_types[] = {
{ARM_PAR_CONNECT, "CONNECTED", "Connected", ""}, {ARM_PAR_CONNECT, "CONNECTED", 0, "Connected", ""},
{ARM_PAR_OFFSET, "OFFSET", "Keep Offset", ""}, {ARM_PAR_OFFSET, "OFFSET", 0, "Keep Offset", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int armature_parent_set_exec(bContext *C, wmOperator *op) static int armature_parent_set_exec(bContext *C, wmOperator *op)
@ -3785,9 +3785,9 @@ void ARMATURE_OT_parent_set(wmOperatorType *ot)
} }
static EnumPropertyItem prop_editarm_clear_parent_types[] = { static EnumPropertyItem prop_editarm_clear_parent_types[] = {
{1, "CLEAR", "Clear Parent", ""}, {1, "CLEAR", 0, "Clear Parent", ""},
{2, "DISCONNECT", "Disconnect Bone", ""}, {2, "DISCONNECT", 0, "Disconnect Bone", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static void editbone_clear_parent(EditBone *ebone, int mode) static void editbone_clear_parent(EditBone *ebone, int mode)
@ -3973,9 +3973,9 @@ static int armature_select_hierarchy_exec(bContext *C, wmOperator *op)
void ARMATURE_OT_select_hierarchy(wmOperatorType *ot) void ARMATURE_OT_select_hierarchy(wmOperatorType *ot)
{ {
static EnumPropertyItem direction_items[]= { static EnumPropertyItem direction_items[]= {
{BONE_SELECT_PARENT, "PARENT", "Select Parent", ""}, {BONE_SELECT_PARENT, "PARENT", 0, "Select Parent", ""},
{BONE_SELECT_CHILD, "CHILD", "Select Child", ""}, {BONE_SELECT_CHILD, "CHILD", 0, "Select Child", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* identifiers */ /* identifiers */

@ -500,9 +500,9 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
void POSE_OT_select_hierarchy(wmOperatorType *ot) void POSE_OT_select_hierarchy(wmOperatorType *ot)
{ {
static EnumPropertyItem direction_items[]= { static EnumPropertyItem direction_items[]= {
{BONE_SELECT_PARENT, "PARENT", "Select Parent", ""}, {BONE_SELECT_PARENT, "PARENT", 0, "Select Parent", ""},
{BONE_SELECT_CHILD, "CHILD", "Select Child", ""}, {BONE_SELECT_CHILD, "CHILD", 0, "Select Child", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* identifiers */ /* identifiers */

@ -2475,12 +2475,12 @@ static int set_spline_type_exec(bContext *C, wmOperator *op)
void CURVE_OT_spline_type_set(wmOperatorType *ot) void CURVE_OT_spline_type_set(wmOperatorType *ot)
{ {
static EnumPropertyItem type_items[]= { static EnumPropertyItem type_items[]= {
{CU_POLY, "POLY", "Poly", ""}, {CU_POLY, "POLY", 0, "Poly", ""},
{CU_BEZIER, "BEZIER", "Bezier", ""}, {CU_BEZIER, "BEZIER", 0, "Bezier", ""},
{CU_CARDINAL, "CARDINAL", "Cardinal", ""}, {CU_CARDINAL, "CARDINAL", 0, "Cardinal", ""},
{CU_BSPLINE, "B_SPLINE", "B-Spline", ""}, {CU_BSPLINE, "B_SPLINE", 0, "B-Spline", ""},
{CU_NURBS, "NURBS", "NURBS", ""}, {CU_NURBS, "NURBS", 0, "NURBS", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "Set Spline Type"; ot->name= "Set Spline Type";
@ -2516,12 +2516,12 @@ static int set_handle_type_exec(bContext *C, wmOperator *op)
void CURVE_OT_handle_type_set(wmOperatorType *ot) void CURVE_OT_handle_type_set(wmOperatorType *ot)
{ {
static EnumPropertyItem type_items[]= { static EnumPropertyItem type_items[]= {
{1, "AUTOMATIC", "Automatic", ""}, {1, "AUTOMATIC", 0, "Automatic", ""},
{2, "VECTOR", "Vector", ""}, {2, "VECTOR", 0, "Vector", ""},
{3, "TOGGLE_FREE_ALIGN", "Toggle Free/Align", ""}, {3, "TOGGLE_FREE_ALIGN", 0, "Toggle Free/Align", ""},
{5, "ALIGN", "Align", ""}, {5, "ALIGN", 0, "Align", ""},
{6, "FREE_ALIGN", "Free Align", ""}, {6, "FREE_ALIGN", 0, "Free Align", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "Set Handle Type"; ot->name= "Set Handle Type";
@ -3582,9 +3582,9 @@ static int toggle_cyclic_invoke(bContext *C, wmOperator *op, wmEvent *event)
void CURVE_OT_cyclic_toggle(wmOperatorType *ot) void CURVE_OT_cyclic_toggle(wmOperatorType *ot)
{ {
static EnumPropertyItem direction_items[]= { static EnumPropertyItem direction_items[]= {
{0, "CYCLIC_U", "Cyclic U", ""}, {0, "CYCLIC_U", 0, "Cyclic U", ""},
{1, "CYCLIC_V", "Cyclic V", ""}, {1, "CYCLIC_V", 0, "Cyclic V", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "Toggle Cyclic"; ot->name= "Toggle Cyclic";
@ -4530,10 +4530,10 @@ static int delete_invoke(bContext *C, wmOperator *op, wmEvent *event)
void CURVE_OT_delete(wmOperatorType *ot) void CURVE_OT_delete(wmOperatorType *ot)
{ {
static EnumPropertyItem type_items[] = { static EnumPropertyItem type_items[] = {
{0, "SELECTED", "Selected", ""}, {0, "SELECTED", 0, "Selected", ""},
{1, "SEGMENT", "Segment", ""}, {1, "SEGMENT", 0, "Segment", ""},
{2, "ALL", "All", ""}, {2, "ALL", 0, "All", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "Delete"; ot->name= "Delete";

@ -607,10 +607,10 @@ static int kill_selection(Object *obedit, int ins) /* 1 == new character */
/******************* set style operator ********************/ /******************* set style operator ********************/
static EnumPropertyItem style_items[]= { static EnumPropertyItem style_items[]= {
{CU_BOLD, "BOLD", "Bold", ""}, {CU_BOLD, "BOLD", 0, "Bold", ""},
{CU_ITALIC, "ITALIC", "Italic", ""}, {CU_ITALIC, "ITALIC", 0, "Italic", ""},
{CU_UNDERLINE, "UNDERLINE", "Underline", ""}, {CU_UNDERLINE, "UNDERLINE", 0, "Underline", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
static int set_style(bContext *C, int style, int clear) static int set_style(bContext *C, int style, int clear)
{ {
@ -873,17 +873,17 @@ void FONT_OT_text_paste(wmOperatorType *ot)
/************************ move operator ************************/ /************************ move operator ************************/
static EnumPropertyItem move_type_items[]= { static EnumPropertyItem move_type_items[]= {
{LINE_BEGIN, "LINE_BEGIN", "Line Begin", ""}, {LINE_BEGIN, "LINE_BEGIN", 0, "Line Begin", ""},
{LINE_END, "LINE_END", "Line End", ""}, {LINE_END, "LINE_END", 0, "Line End", ""},
{PREV_CHAR, "PREVIOUS_CHARACTER", "Previous Character", ""}, {PREV_CHAR, "PREVIOUS_CHARACTER", 0, "Previous Character", ""},
{NEXT_CHAR, "NEXT_CHARACTER", "Next Character", ""}, {NEXT_CHAR, "NEXT_CHARACTER", 0, "Next Character", ""},
{PREV_WORD, "PREVIOUS_WORD", "Previous Word", ""}, {PREV_WORD, "PREVIOUS_WORD", 0, "Previous Word", ""},
{NEXT_WORD, "NEXT_WORD", "Next Word", ""}, {NEXT_WORD, "NEXT_WORD", 0, "Next Word", ""},
{PREV_LINE, "PREVIOUS_LINE", "Previous Line", ""}, {PREV_LINE, "PREVIOUS_LINE", 0, "Previous Line", ""},
{NEXT_LINE, "NEXT_LINE", "Next Line", ""}, {NEXT_LINE, "NEXT_LINE", 0, "Next Line", ""},
{PREV_PAGE, "PREVIOUS_PAGE", "Previous Page", ""}, {PREV_PAGE, "PREVIOUS_PAGE", 0, "Previous Page", ""},
{NEXT_PAGE, "NEXT_PAGE", "Next Page", ""}, {NEXT_PAGE, "NEXT_PAGE", 0, "Next Page", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
static int move_cursor(bContext *C, int type, int select) static int move_cursor(bContext *C, int type, int select)
{ {
@ -1164,13 +1164,13 @@ void FONT_OT_line_break(wmOperatorType *ot)
/******************* delete operator **********************/ /******************* delete operator **********************/
static EnumPropertyItem delete_type_items[]= { static EnumPropertyItem delete_type_items[]= {
{DEL_ALL, "ALL", "All", ""}, {DEL_ALL, "ALL", 0, "All", ""},
{DEL_NEXT_CHAR, "NEXT_CHARACTER", "Next Character", ""}, {DEL_NEXT_CHAR, "NEXT_CHARACTER", 0, "Next Character", ""},
{DEL_PREV_CHAR, "PREVIOUS_CHARACTER", "Previous Character", ""}, {DEL_PREV_CHAR, "PREVIOUS_CHARACTER", 0, "Previous Character", ""},
{DEL_SELECTION, "SELECTION", "Selection", ""}, {DEL_SELECTION, "SELECTION", 0, "Selection", ""},
{DEL_NEXT_SEL, "NEXT_OR_SELECTION", "Next or Selection", ""}, {DEL_NEXT_SEL, "NEXT_OR_SELECTION", 0, "Next or Selection", ""},
{DEL_PREV_SEL, "PREVIOUS_OR_SELECTION", "Previous or Selection", ""}, {DEL_PREV_SEL, "PREVIOUS_OR_SELECTION", 0, "Previous or Selection", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
static int delete_exec(bContext *C, wmOperator *op) static int delete_exec(bContext *C, wmOperator *op)
{ {
@ -1407,7 +1407,7 @@ void make_editText(Object *obedit)
ef->copybuf= MEM_callocN((MAXTEXT+4)*sizeof(wchar_t), "texteditcopybuf"); ef->copybuf= MEM_callocN((MAXTEXT+4)*sizeof(wchar_t), "texteditcopybuf");
ef->copybufinfo= MEM_callocN((MAXTEXT+4)*sizeof(CharInfo), "texteditcopybufinfo"); ef->copybufinfo= MEM_callocN((MAXTEXT+4)*sizeof(CharInfo), "texteditcopybufinfo");
ef->oldstr= MEM_callocN((MAXTEXT+4)*sizeof(wchar_t), "oldstrbuf"); ef->oldstr= MEM_callocN((MAXTEXT+4)*sizeof(wchar_t), "oldstrbuf");
ef->oldstrinfo= MEM_callocN((MAXTEXT+4)*sizeof(wchar_t), "oldstrbuf"); ef->oldstrinfo= MEM_callocN((MAXTEXT+4)*sizeof(CharInfo), "oldstrbuf");
} }
// Convert the original text to wchar_t // Convert the original text to wchar_t
@ -1465,9 +1465,9 @@ void free_editText(Object *obedit)
/********************** set case operator *********************/ /********************** set case operator *********************/
static EnumPropertyItem case_items[]= { static EnumPropertyItem case_items[]= {
{CASE_LOWER, "LOWER", "Lower", ""}, {CASE_LOWER, "LOWER", 0, "Lower", ""},
{CASE_UPPER, "UPPER", "Upper", ""}, {CASE_UPPER, "UPPER", 0, "Upper", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
static int set_case(bContext *C, int ccase) static int set_case(bContext *C, int ccase)
{ {

@ -118,6 +118,7 @@ int ED_operator_node_active(struct bContext *C);
int ED_operator_ipo_active(struct bContext *C); int ED_operator_ipo_active(struct bContext *C);
int ED_operator_sequencer_active(struct bContext *C); int ED_operator_sequencer_active(struct bContext *C);
int ED_operator_image_active(struct bContext *C); int ED_operator_image_active(struct bContext *C);
int ED_operator_logic_active(struct bContext *C);
int ED_operator_object_active(struct bContext *C); int ED_operator_object_active(struct bContext *C);
int ED_operator_editmesh(struct bContext *C); int ED_operator_editmesh(struct bContext *C);

@ -50,6 +50,7 @@ void ED_spacetype_nla(void);
void ED_spacetype_script(void); void ED_spacetype_script(void);
void ED_spacetype_text(void); void ED_spacetype_text(void);
void ED_spacetype_sequencer(void); void ED_spacetype_sequencer(void);
void ED_spacetype_logic(void);
/* calls for instancing and freeing spacetype static data /* calls for instancing and freeing spacetype static data
called in WM_init_exit */ called in WM_init_exit */

@ -0,0 +1,882 @@
/**
* $Id:
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2009 Blender Foundation.
* All rights reserved.
*
*
* Contributor(s): Blender Foundation
*
* ***** END GPL LICENSE BLOCK *****
*/
/* Note: this is included twice with different #defines for DEF_ICON
once from UI_resources.h for the internal icon enum and once fro interface_api.c for
definition of the RNA enum for he icons */
DEF_ICON(ICON_BLENDER)
DEF_ICON(ICON_QUESTION)
DEF_ICON(ICON_ERROR)
DEF_ICON(ICON_BLANK1) // XXX this is used lots, it's not actually 'blank'
DEF_ICON(ICON_TRIA_RIGHT)
DEF_ICON(ICON_TRIA_DOWN)
DEF_ICON(ICON_TRIA_LEFT)
DEF_ICON(ICON_TRIA_UP)
DEF_ICON(ICON_ARROW_LEFTRIGHT)
DEF_ICON(ICON_PLUS)
DEF_ICON(ICON_DISCLOSURE_TRI_DOWN)
DEF_ICON(ICON_DISCLOSURE_TRI_RIGHT)
DEF_ICON(ICON_RADIOBUT_OFF)
DEF_ICON(ICON_RADIOBUT_ON)
DEF_ICON(ICON_MENU_PANEL)
DEF_ICON(ICON_PYTHON)
DEF_ICON(ICON_BLANK003)
DEF_ICON(ICON_DOT)
DEF_ICON(ICON_BLANK004)
DEF_ICON(ICON_X)
DEF_ICON(ICON_BLANK005)
DEF_ICON(ICON_GO_LEFT)
DEF_ICON(ICON_BLANK006)
DEF_ICON(ICON_BLANK007)
DEF_ICON(ICON_BLANK008)
DEF_ICON(ICON_BLANK008b)
/* ui */
DEF_ICON(ICON_FULLSCREEN)
DEF_ICON(ICON_SPLITSCREEN)
DEF_ICON(ICON_RIGHTARROW_THIN)
DEF_ICON(ICON_BORDERMOVE)
DEF_ICON(ICON_VIEWZOOM)
DEF_ICON(ICON_ZOOMIN)
DEF_ICON(ICON_ZOOMOUT)
DEF_ICON(ICON_PANEL_CLOSE)
DEF_ICON(ICON_BLANK009)
DEF_ICON(ICON_EYEDROPPER)
DEF_ICON(ICON_BLANK010)
DEF_ICON(ICON_AUTO)
DEF_ICON(ICON_CHECKBOX_DEHLT)
DEF_ICON(ICON_CHECKBOX_HLT)
DEF_ICON(ICON_UNLOCKED)
DEF_ICON(ICON_LOCKED)
DEF_ICON(ICON_PINNED)
DEF_ICON(ICON_UNPINNED)
DEF_ICON(ICON_BLANK015)
DEF_ICON(ICON_RIGHTARROW)
DEF_ICON(ICON_DOWNARROW_HLT)
DEF_ICON(ICON_DOTSUP)
DEF_ICON(ICON_DOTSDOWN)
DEF_ICON(ICON_LINK)
DEF_ICON(ICON_INLINK)
DEF_ICON(ICON_BLANK012b)
/* various ui */
DEF_ICON(ICON_HELP)
DEF_ICON(ICON_GHOSTDRAW)
DEF_ICON(ICON_COLOR)
DEF_ICON(ICON_LINKED)
DEF_ICON(ICON_UNLINKED)
DEF_ICON(ICON_HAND)
DEF_ICON(ICON_ZOOM_ALL)
DEF_ICON(ICON_ZOOM_SELECTED)
DEF_ICON(ICON_ZOOM_PREVIOUS)
DEF_ICON(ICON_ZOOM_IN)
DEF_ICON(ICON_ZOOM_OUT)
DEF_ICON(ICON_RENDER_REGION)
DEF_ICON(ICON_BORDER_RECT)
DEF_ICON(ICON_BORDER_LASSO)
DEF_ICON(ICON_FREEZE)
DEF_ICON(ICON_BLANK031)
DEF_ICON(ICON_BLANK032)
DEF_ICON(ICON_BLANK033)
DEF_ICON(ICON_BLANK034)
DEF_ICON(ICON_BLANK035)
DEF_ICON(ICON_BLANK036)
DEF_ICON(ICON_BLANK037)
DEF_ICON(ICON_BLANK038)
DEF_ICON(ICON_BLANK039)
DEF_ICON(ICON_BLANK040)
DEF_ICON(ICON_BLANK040b)
/* BUTTONS */
DEF_ICON(ICON_LAMP)
DEF_ICON(ICON_MATERIAL)
DEF_ICON(ICON_TEXTURE)
DEF_ICON(ICON_ANIM)
DEF_ICON(ICON_WORLD)
DEF_ICON(ICON_SCENE)
DEF_ICON(ICON_EDIT)
DEF_ICON(ICON_GAME)
DEF_ICON(ICON_RADIO)
DEF_ICON(ICON_SCRIPT)
DEF_ICON(ICON_PARTICLES)
DEF_ICON(ICON_PHYSICS)
DEF_ICON(ICON_SPEAKER)
DEF_ICON(ICON_BLANK041)
DEF_ICON(ICON_BLANK042)
DEF_ICON(ICON_BLANK043)
DEF_ICON(ICON_BLANK044)
DEF_ICON(ICON_BLANK045)
DEF_ICON(ICON_BLANK046)
DEF_ICON(ICON_BLANK047)
DEF_ICON(ICON_BLANK048)
DEF_ICON(ICON_BLANK049)
DEF_ICON(ICON_BLANK050)
DEF_ICON(ICON_BLANK051)
DEF_ICON(ICON_BLANK052)
DEF_ICON(ICON_BLANK052b)
/* EDITORS */
DEF_ICON(ICON_VIEW3D)
DEF_ICON(ICON_IPO)
DEF_ICON(ICON_OOPS)
DEF_ICON(ICON_BUTS)
DEF_ICON(ICON_FILESEL)
DEF_ICON(ICON_IMAGE_COL)
DEF_ICON(ICON_INFO)
DEF_ICON(ICON_SEQUENCE)
DEF_ICON(ICON_TEXT)
DEF_ICON(ICON_IMASEL)
DEF_ICON(ICON_SOUND)
DEF_ICON(ICON_ACTION)
DEF_ICON(ICON_NLA)
DEF_ICON(ICON_SCRIPTWIN)
DEF_ICON(ICON_TIME)
DEF_ICON(ICON_NODE)
DEF_ICON(ICON_BLANK053)
DEF_ICON(ICON_BLANK054)
DEF_ICON(ICON_BLANK055)
DEF_ICON(ICON_BLANK056)
DEF_ICON(ICON_BLANK057)
DEF_ICON(ICON_BLANK058)
DEF_ICON(ICON_BLANK059)
DEF_ICON(ICON_BLANK060)
DEF_ICON(ICON_BLANK061)
DEF_ICON(ICON_BLANK061b)
/* MODES */
DEF_ICON(ICON_OBJECT_DATAMODE) // XXX fix this up
DEF_ICON(ICON_EDITMODE_HLT)
DEF_ICON(ICON_FACESEL_HLT)
DEF_ICON(ICON_VPAINT_HLT)
DEF_ICON(ICON_TPAINT_HLT)
DEF_ICON(ICON_WPAINT_HLT)
DEF_ICON(ICON_SCULPTMODE_HLT)
DEF_ICON(ICON_POSE_HLT)
DEF_ICON(ICON_PARTICLEMODE)
DEF_ICON(ICON_BLANK062)
DEF_ICON(ICON_BLANK063)
DEF_ICON(ICON_BLANK064)
DEF_ICON(ICON_BLANK065)
DEF_ICON(ICON_BLANK066)
DEF_ICON(ICON_BLANK067)
DEF_ICON(ICON_BLANK068)
DEF_ICON(ICON_BLANK069)
DEF_ICON(ICON_BLANK070)
DEF_ICON(ICON_BLANK071)
DEF_ICON(ICON_BLANK072)
DEF_ICON(ICON_BLANK073)
DEF_ICON(ICON_BLANK074)
DEF_ICON(ICON_BLANK075)
DEF_ICON(ICON_BLANK076)
DEF_ICON(ICON_BLANK077)
DEF_ICON(ICON_BLANK077b)
/* DATA */
DEF_ICON(ICON_SCENE_DATA)
DEF_ICON(ICON_RENDERLAYERS)
DEF_ICON(ICON_WORLD_DATA)
DEF_ICON(ICON_OBJECT_DATA)
DEF_ICON(ICON_MESH_DATA)
DEF_ICON(ICON_CURVE_DATA)
DEF_ICON(ICON_META_DATA)
DEF_ICON(ICON_LATTICE_DATA)
DEF_ICON(ICON_LAMP_DATA)
DEF_ICON(ICON_MATERIAL_DATA)
DEF_ICON(ICON_TEXTURE_DATA)
DEF_ICON(ICON_ANIM_DATA)
DEF_ICON(ICON_CAMERA_DATA)
DEF_ICON(ICON_PARTICLE_DATA)
DEF_ICON(ICON_LIBRARY_DATA_DIRECT)
DEF_ICON(ICON_GROUP)
DEF_ICON(ICON_ARMATURE_DATA)
DEF_ICON(ICON_POSE_DATA)
DEF_ICON(ICON_BONE_DATA)
DEF_ICON(ICON_CONSTRAINT)
DEF_ICON(ICON_SHAPEKEY_DATA)
DEF_ICON(ICON_BLANK079a)
DEF_ICON(ICON_BLANK079)
DEF_ICON(ICON_PACKAGE)
DEF_ICON(ICON_UGLYPACKAGE)
DEF_ICON(ICON_BLANK079b)
/* DATA */
DEF_ICON(ICON_BRUSH_DATA)
DEF_ICON(ICON_IMAGE_DATA)
DEF_ICON(ICON_FILE)
DEF_ICON(ICON_FCURVE)
DEF_ICON(ICON_FONT_DATA)
DEF_ICON(ICON_RENDER_RESULT)
DEF_ICON(ICON_SURFACE_DATA)
DEF_ICON(ICON_EMPTY_DATA)
DEF_ICON(ICON_SETTINGS)
DEF_ICON(ICON_BLANK080D)
DEF_ICON(ICON_BLANK080E)
DEF_ICON(ICON_BLANK080F)
DEF_ICON(ICON_BLANK080)
DEF_ICON(ICON_STRANDS)
DEF_ICON(ICON_LIBRARY_DATA_INDIRECT)
DEF_ICON(ICON_BLANK082)
DEF_ICON(ICON_BLANK083)
DEF_ICON(ICON_BLANK084)
DEF_ICON(ICON_GROUP_BONE)
DEF_ICON(ICON_GROUP_VERTEX)
DEF_ICON(ICON_GROUP_VCOL)
DEF_ICON(ICON_GROUP_UVS)
DEF_ICON(ICON_BLANK089)
DEF_ICON(ICON_BLANK090)
DEF_ICON(ICON_RNA)
DEF_ICON(ICON_BLANK090b)
/* available */
DEF_ICON(ICON_BLANK092)
DEF_ICON(ICON_BLANK093)
DEF_ICON(ICON_BLANK094)
DEF_ICON(ICON_BLANK095)
DEF_ICON(ICON_BLANK096)
DEF_ICON(ICON_BLANK097)
DEF_ICON(ICON_BLANK098)
DEF_ICON(ICON_BLANK099)
DEF_ICON(ICON_BLANK100)
DEF_ICON(ICON_BLANK101)
DEF_ICON(ICON_BLANK102)
DEF_ICON(ICON_BLANK103)
DEF_ICON(ICON_BLANK104)
DEF_ICON(ICON_BLANK105)
DEF_ICON(ICON_BLANK106)
DEF_ICON(ICON_BLANK107)
DEF_ICON(ICON_BLANK108)
DEF_ICON(ICON_BLANK109)
DEF_ICON(ICON_BLANK110)
DEF_ICON(ICON_BLANK111)
DEF_ICON(ICON_BLANK112)
DEF_ICON(ICON_BLANK113)
DEF_ICON(ICON_BLANK114)
DEF_ICON(ICON_BLANK115)
DEF_ICON(ICON_BLANK116)
DEF_ICON(ICON_BLANK116b)
/* OUTLINER */
DEF_ICON(ICON_OUTLINER_OB_EMPTY)
DEF_ICON(ICON_OUTLINER_OB_MESH)
DEF_ICON(ICON_OUTLINER_OB_CURVE)
DEF_ICON(ICON_OUTLINER_OB_LATTICE)
DEF_ICON(ICON_OUTLINER_OB_META)
DEF_ICON(ICON_OUTLINER_OB_LAMP)
DEF_ICON(ICON_OUTLINER_OB_CAMERA)
DEF_ICON(ICON_OUTLINER_OB_ARMATURE)
DEF_ICON(ICON_OUTLINER_OB_FONT)
DEF_ICON(ICON_OUTLINER_OB_SURFACE)
DEF_ICON(ICON_BLANK119)
DEF_ICON(ICON_BLANK120)
DEF_ICON(ICON_BLANK121)
DEF_ICON(ICON_BLANK122)
DEF_ICON(ICON_BLANK123)
DEF_ICON(ICON_BLANK124)
DEF_ICON(ICON_BLANK125)
DEF_ICON(ICON_BLANK126)
DEF_ICON(ICON_BLANK127)
DEF_ICON(ICON_RESTRICT_VIEW_OFF)
DEF_ICON(ICON_RESTRICT_VIEW_ON)
DEF_ICON(ICON_RESTRICT_SELECT_OFF)
DEF_ICON(ICON_RESTRICT_SELECT_ON)
DEF_ICON(ICON_RESTRICT_RENDER_OFF)
DEF_ICON(ICON_RESTRICT_RENDER_ON)
DEF_ICON(ICON_BLANK127b)
/* OUTLINER */
DEF_ICON(ICON_OUTLINER_DATA_EMPTY)
DEF_ICON(ICON_OUTLINER_DATA_MESH)
DEF_ICON(ICON_OUTLINER_DATA_CURVE)
DEF_ICON(ICON_OUTLINER_DATA_LATTICE)
DEF_ICON(ICON_OUTLINER_DATA_META)
DEF_ICON(ICON_OUTLINER_DATA_LAMP)
DEF_ICON(ICON_OUTLINER_DATA_CAMERA)
DEF_ICON(ICON_OUTLINER_DATA_ARMATURE)
DEF_ICON(ICON_OUTLINER_DATA_FONT)
DEF_ICON(ICON_OUTLINER_DATA_SURFACE)
DEF_ICON(ICON_OUTLINER_DATA_POSE)
DEF_ICON(ICON_BLANK129)
DEF_ICON(ICON_BLANK130)
DEF_ICON(ICON_BLANK131)
DEF_ICON(ICON_BLANK132)
DEF_ICON(ICON_BLANK133)
DEF_ICON(ICON_BLANK134)
DEF_ICON(ICON_BLANK135)
DEF_ICON(ICON_BLANK136)
DEF_ICON(ICON_BLANK137)
DEF_ICON(ICON_BLANK138)
DEF_ICON(ICON_BLANK139)
DEF_ICON(ICON_BLANK140)
DEF_ICON(ICON_BLANK141)
DEF_ICON(ICON_BLANK142)
DEF_ICON(ICON_BLANK142b)
/* PRIMITIVES */
DEF_ICON(ICON_MESH_PLANE)
DEF_ICON(ICON_MESH_CUBE)
DEF_ICON(ICON_MESH_CIRCLE)
DEF_ICON(ICON_MESH_UVSPHERE)
DEF_ICON(ICON_MESH_ICOSPHERE)
DEF_ICON(ICON_MESH_GRID)
DEF_ICON(ICON_MESH_MONKEY)
DEF_ICON(ICON_MESH_TUBE)
DEF_ICON(ICON_MESH_DONUT)
DEF_ICON(ICON_MESH_CONE)
DEF_ICON(ICON_BLANK610)
DEF_ICON(ICON_BLANK611)
DEF_ICON(ICON_LAMP_POINT)
DEF_ICON(ICON_LAMP_SUN)
DEF_ICON(ICON_LAMP_SPOT)
DEF_ICON(ICON_LAMP_HEMI)
DEF_ICON(ICON_LAMP_AREA)
DEF_ICON(ICON_BLANK617)
DEF_ICON(ICON_BLANK618)
DEF_ICON(ICON_BLANK619)
DEF_ICON(ICON_META_PLANE)
DEF_ICON(ICON_META_CUBE)
DEF_ICON(ICON_META_BALL)
DEF_ICON(ICON_META_ELLIPSOID)
DEF_ICON(ICON_META_TUBE)
DEF_ICON(ICON_BLANK625)
/* PRIMITIVES */
DEF_ICON(ICON_SURFACE_NCURVE)
DEF_ICON(ICON_SURFACE_NCIRCLE)
DEF_ICON(ICON_SURFACE_NSURFACE)
DEF_ICON(ICON_SURFACE_NTUBE)
DEF_ICON(ICON_SURFACE_NSPHERE)
DEF_ICON(ICON_SURFACE_NDONUT)
DEF_ICON(ICON_BLANK636)
DEF_ICON(ICON_BLANK637)
DEF_ICON(ICON_BLANK638)
DEF_ICON(ICON_CURVE_BEZCURVE)
DEF_ICON(ICON_CURVE_BEZCIRCLE)
DEF_ICON(ICON_CURVE_NCURVE)
DEF_ICON(ICON_CURVE_NCIRCLE)
DEF_ICON(ICON_CURVE_PATH)
DEF_ICON(ICON_BLANK644)
DEF_ICON(ICON_BLANK645)
DEF_ICON(ICON_BLANK646)
DEF_ICON(ICON_BLANK647)
DEF_ICON(ICON_BLANK648)
DEF_ICON(ICON_BLANK649)
DEF_ICON(ICON_BLANK650)
DEF_ICON(ICON_BLANK651)
DEF_ICON(ICON_BLANK652)
DEF_ICON(ICON_BLANK653)
DEF_ICON(ICON_BLANK654)
DEF_ICON(ICON_BLANK655)
/* EMPTY */
DEF_ICON(ICON_BLANK660)
DEF_ICON(ICON_BLANK661)
DEF_ICON(ICON_BLANK662)
DEF_ICON(ICON_BLANK663)
DEF_ICON(ICON_BLANK664)
DEF_ICON(ICON_BLANK665)
DEF_ICON(ICON_BLANK666)
DEF_ICON(ICON_BLANK667)
DEF_ICON(ICON_BLANK668)
DEF_ICON(ICON_BLANK669)
DEF_ICON(ICON_BLANK670)
DEF_ICON(ICON_BLANK671)
DEF_ICON(ICON_BLANK672)
DEF_ICON(ICON_BLANK673)
DEF_ICON(ICON_BLANK674)
DEF_ICON(ICON_BLANK675)
DEF_ICON(ICON_BLANK676)
DEF_ICON(ICON_BLANK677)
DEF_ICON(ICON_BLANK678)
DEF_ICON(ICON_BLANK679)
DEF_ICON(ICON_BLANK680)
DEF_ICON(ICON_BLANK681)
DEF_ICON(ICON_BLANK682)
DEF_ICON(ICON_BLANK683)
DEF_ICON(ICON_BLANK684)
DEF_ICON(ICON_BLANK685)
/* EMPTY */
DEF_ICON(ICON_BLANK690)
DEF_ICON(ICON_BLANK691)
DEF_ICON(ICON_BLANK692)
DEF_ICON(ICON_BLANK693)
DEF_ICON(ICON_BLANK694)
DEF_ICON(ICON_BLANK695)
DEF_ICON(ICON_BLANK696)
DEF_ICON(ICON_BLANK697)
DEF_ICON(ICON_BLANK698)
DEF_ICON(ICON_BLANK699)
DEF_ICON(ICON_BLANK700)
DEF_ICON(ICON_BLANK701)
DEF_ICON(ICON_BLANK702)
DEF_ICON(ICON_BLANK703)
DEF_ICON(ICON_BLANK704)
DEF_ICON(ICON_BLANK705)
DEF_ICON(ICON_BLANK706)
DEF_ICON(ICON_BLANK707)
DEF_ICON(ICON_BLANK708)
DEF_ICON(ICON_BLANK709)
DEF_ICON(ICON_BLANK710)
DEF_ICON(ICON_BLANK711)
DEF_ICON(ICON_BLANK712)
DEF_ICON(ICON_BLANK713)
DEF_ICON(ICON_BLANK714)
DEF_ICON(ICON_BLANK715)
/* EMPTY */
DEF_ICON(ICON_BLANK720)
DEF_ICON(ICON_BLANK721)
DEF_ICON(ICON_BLANK722)
DEF_ICON(ICON_BLANK733)
DEF_ICON(ICON_BLANK734)
DEF_ICON(ICON_BLANK735)
DEF_ICON(ICON_BLANK736)
DEF_ICON(ICON_BLANK737)
DEF_ICON(ICON_BLANK738)
DEF_ICON(ICON_BLANK739)
DEF_ICON(ICON_BLANK740)
DEF_ICON(ICON_BLANK741)
DEF_ICON(ICON_BLANK742)
DEF_ICON(ICON_BLANK743)
DEF_ICON(ICON_BLANK744)
DEF_ICON(ICON_BLANK745)
DEF_ICON(ICON_BLANK746)
DEF_ICON(ICON_BLANK747)
DEF_ICON(ICON_BLANK748)
DEF_ICON(ICON_BLANK749)
DEF_ICON(ICON_BLANK750)
DEF_ICON(ICON_BLANK751)
DEF_ICON(ICON_BLANK752)
DEF_ICON(ICON_BLANK753)
DEF_ICON(ICON_BLANK754)
DEF_ICON(ICON_BLANK755)
/* EMPTY */
DEF_ICON(ICON_BLANK760)
DEF_ICON(ICON_BLANK761)
DEF_ICON(ICON_BLANK762)
DEF_ICON(ICON_BLANK763)
DEF_ICON(ICON_BLANK764)
DEF_ICON(ICON_BLANK765)
DEF_ICON(ICON_BLANK766)
DEF_ICON(ICON_BLANK767)
DEF_ICON(ICON_BLANK768)
DEF_ICON(ICON_BLANK769)
DEF_ICON(ICON_BLANK770)
DEF_ICON(ICON_BLANK771)
DEF_ICON(ICON_BLANK772)
DEF_ICON(ICON_BLANK773)
DEF_ICON(ICON_BLANK774)
DEF_ICON(ICON_BLANK775)
DEF_ICON(ICON_BLANK776)
DEF_ICON(ICON_BLANK777)
DEF_ICON(ICON_BLANK778)
DEF_ICON(ICON_BLANK779)
DEF_ICON(ICON_BLANK780)
DEF_ICON(ICON_BLANK781)
DEF_ICON(ICON_BLANK782)
DEF_ICON(ICON_BLANK783)
DEF_ICON(ICON_BLANK784)
DEF_ICON(ICON_BLANK785)
/* MODIFIERS */
DEF_ICON(ICON_MODIFIER)
DEF_ICON(ICON_MOD_WAVE)
DEF_ICON(ICON_MOD_BUILD)
DEF_ICON(ICON_MOD_DECIM)
DEF_ICON(ICON_MOD_MIRROR)
DEF_ICON(ICON_MOD_SOFT)
DEF_ICON(ICON_MOD_SUBSURF)
DEF_ICON(ICON_HOOK)
DEF_ICON(ICON_MOD_PHYSICS)
DEF_ICON(ICON_MOD_PARTICLES)
DEF_ICON(ICON_MOD_BOOLEAN)
DEF_ICON(ICON_MOD_EDGESPLIT)
DEF_ICON(ICON_MOD_ARRAY)
DEF_ICON(ICON_MOD_UVPROJECT)
DEF_ICON(ICON_MOD_DISPLACE)
DEF_ICON(ICON_MOD_CURVE)
DEF_ICON(ICON_MOD_LATTICE)
DEF_ICON(ICON_BLANK143)
DEF_ICON(ICON_MOD_ARMATURE)
DEF_ICON(ICON_MOD_SHRINKWRAP)
DEF_ICON(ICON_MOD_CAST)
DEF_ICON(ICON_MOD_MESHDEFORM)
DEF_ICON(ICON_MOD_BEVEL)
DEF_ICON(ICON_MOD_SMOOTH)
DEF_ICON(ICON_MOD_SIMPLEDEFORM)
DEF_ICON(ICON_MOD_MASK)
/* MODIFIERS */
DEF_ICON(ICON_MOD_CLOTH)
DEF_ICON(ICON_MOD_EXPLODE)
DEF_ICON(ICON_MOD_FLUIDSIM)
DEF_ICON(ICON_MOD_MULTIRES)
DEF_ICON(ICON_BLANK157)
DEF_ICON(ICON_BLANK158)
DEF_ICON(ICON_BLANK159)
DEF_ICON(ICON_BLANK160)
DEF_ICON(ICON_BLANK161)
DEF_ICON(ICON_BLANK162)
DEF_ICON(ICON_BLANK163)
DEF_ICON(ICON_BLANK164)
DEF_ICON(ICON_BLANK165)
DEF_ICON(ICON_BLANK166)
DEF_ICON(ICON_BLANK167)
DEF_ICON(ICON_BLANK168)
DEF_ICON(ICON_BLANK169)
DEF_ICON(ICON_BLANK170)
DEF_ICON(ICON_BLANK171)
DEF_ICON(ICON_BLANK172)
DEF_ICON(ICON_BLANK173)
DEF_ICON(ICON_BLANK174)
DEF_ICON(ICON_BLANK175)
DEF_ICON(ICON_BLANK176)
DEF_ICON(ICON_BLANK177)
DEF_ICON(ICON_BLANK177b)
/* ANIMATION */
DEF_ICON(ICON_REC)
DEF_ICON(ICON_PLAY)
DEF_ICON(ICON_FF)
DEF_ICON(ICON_REW)
DEF_ICON(ICON_PAUSE)
DEF_ICON(ICON_PREV_KEYFRAME)
DEF_ICON(ICON_NEXT_KEYFRAME)
DEF_ICON(ICON_PLAY_AUDIO)
DEF_ICON(ICON_BLANK178)
DEF_ICON(ICON_BLANK179)
DEF_ICON(ICON_BLANK180)
DEF_ICON(ICON_PMARKER_ACT)
DEF_ICON(ICON_PMARKER_SEL)
DEF_ICON(ICON_PMARKER)
DEF_ICON(ICON_MARKER_HLT)
DEF_ICON(ICON_MARKER)
DEF_ICON(ICON_SPACE2) // XXX
DEF_ICON(ICON_SPACE3) // XXX
DEF_ICON(ICON_BLANK181)
DEF_ICON(ICON_KEY_DEHLT)
DEF_ICON(ICON_KEY_HLT)
DEF_ICON(ICON_MUTE_IPO_OFF)
DEF_ICON(ICON_MUTE_IPO_ON)
DEF_ICON(ICON_BLANK182)
DEF_ICON(ICON_BLANK183)
DEF_ICON(ICON_BLANK183b)
/* available */
DEF_ICON(ICON_BLANK184)
DEF_ICON(ICON_BLANK185)
DEF_ICON(ICON_BLANK186)
DEF_ICON(ICON_BLANK187)
DEF_ICON(ICON_BLANK188)
DEF_ICON(ICON_BLANK189)
DEF_ICON(ICON_BLANK190)
DEF_ICON(ICON_BLANK191)
DEF_ICON(ICON_BLANK192)
DEF_ICON(ICON_BLANK193)
DEF_ICON(ICON_BLANK194)
DEF_ICON(ICON_BLANK195)
DEF_ICON(ICON_BLANK196)
DEF_ICON(ICON_BLANK197)
DEF_ICON(ICON_BLANK198)
DEF_ICON(ICON_BLANK199)
DEF_ICON(ICON_BLANK200)
DEF_ICON(ICON_BLANK201)
DEF_ICON(ICON_BLANK202)
DEF_ICON(ICON_BLANK203)
DEF_ICON(ICON_BLANK204)
DEF_ICON(ICON_BLANK205)
DEF_ICON(ICON_BLANK206)
DEF_ICON(ICON_BLANK207)
DEF_ICON(ICON_BLANK208)
DEF_ICON(ICON_BLANK208b)
/* EDITING */
DEF_ICON(ICON_VERTEXSEL)
DEF_ICON(ICON_EDGESEL)
DEF_ICON(ICON_FACESEL)
DEF_ICON(ICON_LINKEDSEL)
DEF_ICON(ICON_BLANK210)
DEF_ICON(ICON_ROTATE)
DEF_ICON(ICON_CURSOR)
DEF_ICON(ICON_ROTATECOLLECTION)
DEF_ICON(ICON_ROTATECENTER)
DEF_ICON(ICON_ROTACTIVE)
DEF_ICON(ICON_ALIGN)
DEF_ICON(ICON_BLANK211)
DEF_ICON(ICON_SMOOTHCURVE)
DEF_ICON(ICON_SPHERECURVE)
DEF_ICON(ICON_ROOTCURVE)
DEF_ICON(ICON_SHARPCURVE)
DEF_ICON(ICON_LINCURVE)
DEF_ICON(ICON_NOCURVE)
DEF_ICON(ICON_RNDCURVE)
DEF_ICON(ICON_PROP_OFF)
DEF_ICON(ICON_PROP_ON)
DEF_ICON(ICON_PROP_CON)
DEF_ICON(ICON_BLANK212)
DEF_ICON(ICON_BLANK213)
DEF_ICON(ICON_BLANK214)
DEF_ICON(ICON_BLANK214b)
/* EDITING */
DEF_ICON(ICON_MAN_TRANS)
DEF_ICON(ICON_MAN_ROT)
DEF_ICON(ICON_MAN_SCALE)
DEF_ICON(ICON_MANIPUL)
DEF_ICON(ICON_BLANK215)
DEF_ICON(ICON_SNAP_GEAR)
DEF_ICON(ICON_SNAP_GEO)
DEF_ICON(ICON_SNAP_NORMAL)
DEF_ICON(ICON_SNAP_VERTEX)
DEF_ICON(ICON_SNAP_EDGE)
DEF_ICON(ICON_SNAP_FACE)
DEF_ICON(ICON_SNAP_VOLUME)
DEF_ICON(ICON_STICKY_UVS_LOC)
DEF_ICON(ICON_STICKY_UVS_DISABLE)
DEF_ICON(ICON_STICKY_UVS_VERT)
DEF_ICON(ICON_CLIPUV_DEHLT)
DEF_ICON(ICON_CLIPUV_HLT)
DEF_ICON(ICON_BLANK219)
DEF_ICON(ICON_SNAP_PEEL_OBJECT)
DEF_ICON(ICON_BLANK221)
DEF_ICON(ICON_GRID)
DEF_ICON(ICON_GEARS)
DEF_ICON(ICON_BLANK224)
DEF_ICON(ICON_BLANK225)
DEF_ICON(ICON_BLANK226)
DEF_ICON(ICON_BLANK226b)
/* EDITING */
DEF_ICON(ICON_PASTEDOWN)
DEF_ICON(ICON_COPYDOWN)
DEF_ICON(ICON_PASTEFLIPUP)
DEF_ICON(ICON_PASTEFLIPDOWN)
DEF_ICON(ICON_BLANK227)
DEF_ICON(ICON_BLANK228)
DEF_ICON(ICON_BLANK229)
DEF_ICON(ICON_BLANK230)
DEF_ICON(ICON_BLANK231)
DEF_ICON(ICON_BLANK232)
DEF_ICON(ICON_BLANK233)
DEF_ICON(ICON_BLANK234)
DEF_ICON(ICON_BLANK235)
DEF_ICON(ICON_BLANK236)
DEF_ICON(ICON_BLANK237)
DEF_ICON(ICON_BLANK238)
DEF_ICON(ICON_BLANK239)
DEF_ICON(ICON_BLANK240)
DEF_ICON(ICON_BLANK241)
DEF_ICON(ICON_BLANK242)
DEF_ICON(ICON_BLANK243)
DEF_ICON(ICON_BLANK244)
DEF_ICON(ICON_BLANK245)
DEF_ICON(ICON_BLANK246)
DEF_ICON(ICON_BLANK247)
DEF_ICON(ICON_BLANK247b)
/* 3D VIEW */
DEF_ICON(ICON_BBOX)
DEF_ICON(ICON_WIRE)
DEF_ICON(ICON_SOLID)
DEF_ICON(ICON_SMOOTH)
DEF_ICON(ICON_POTATO)
DEF_ICON(ICON_BLANK248)
DEF_ICON(ICON_ORTHO)
DEF_ICON(ICON_BLANK249)
DEF_ICON(ICON_CAMERA)
DEF_ICON(ICON_LOCKVIEW_OFF)
DEF_ICON(ICON_LOCKVIEW_ON)
DEF_ICON(ICON_BLANK250)
DEF_ICON(ICON_AXIS_SIDE)
DEF_ICON(ICON_AXIS_FRONT)
DEF_ICON(ICON_AXIS_TOP)
DEF_ICON(ICON_NDOF_DOM)
DEF_ICON(ICON_NDOF_TURN)
DEF_ICON(ICON_NDOF_FLY)
DEF_ICON(ICON_NDOF_TRANS)
DEF_ICON(ICON_LAYER_USED)
DEF_ICON(ICON_LAYER_ACTIVE)
DEF_ICON(ICON_BLANK254)
DEF_ICON(ICON_BLANK255)
DEF_ICON(ICON_BLANK256)
DEF_ICON(ICON_BLANK257)
DEF_ICON(ICON_BLANK257b)
/* available */
DEF_ICON(ICON_BLANK258)
DEF_ICON(ICON_BLANK259)
DEF_ICON(ICON_BLANK260)
DEF_ICON(ICON_BLANK261)
DEF_ICON(ICON_BLANK262)
DEF_ICON(ICON_BLANK263)
DEF_ICON(ICON_BLANK264)
DEF_ICON(ICON_BLANK265)
DEF_ICON(ICON_BLANK266)
DEF_ICON(ICON_BLANK267)
DEF_ICON(ICON_BLANK268)
DEF_ICON(ICON_BLANK269)
DEF_ICON(ICON_BLANK270)
DEF_ICON(ICON_BLANK271)
DEF_ICON(ICON_BLANK272)
DEF_ICON(ICON_BLANK273)
DEF_ICON(ICON_BLANK274)
DEF_ICON(ICON_BLANK275)
DEF_ICON(ICON_BLANK276)
DEF_ICON(ICON_BLANK277)
DEF_ICON(ICON_BLANK278)
DEF_ICON(ICON_BLANK279)
DEF_ICON(ICON_BLANK280)
DEF_ICON(ICON_BLANK281)
DEF_ICON(ICON_BLANK282)
DEF_ICON(ICON_BLANK282b)
/* FILE SELECT */
DEF_ICON(ICON_SORTALPHA)
DEF_ICON(ICON_SORTBYEXT)
DEF_ICON(ICON_SORTTIME)
DEF_ICON(ICON_SORTSIZE)
DEF_ICON(ICON_LONGDISPLAY)
DEF_ICON(ICON_SHORTDISPLAY)
DEF_ICON(ICON_GHOST)
DEF_ICON(ICON_IMGDISPLAY)
DEF_ICON(ICON_BLANK284)
DEF_ICON(ICON_BLANK285)
DEF_ICON(ICON_BOOKMARKS)
DEF_ICON(ICON_FONTPREVIEW)
DEF_ICON(ICON_FILTER)
DEF_ICON(ICON_NEWFOLDER)
DEF_ICON(ICON_BLANK285F)
DEF_ICON(ICON_FILE_PARENT)
DEF_ICON(ICON_FILE_REFRESH)
DEF_ICON(ICON_FILE_FOLDER)
DEF_ICON(ICON_FILE_BLANK)
DEF_ICON(ICON_FILE_BLEND)
DEF_ICON(ICON_FILE_IMAGE)
DEF_ICON(ICON_FILE_MOVIE)
DEF_ICON(ICON_FILE_SCRIPT)
DEF_ICON(ICON_FILE_SOUND)
DEF_ICON(ICON_FILE_FONT)
DEF_ICON(ICON_BLANK291b)
/* available */
DEF_ICON(ICON_BLANK292)
DEF_ICON(ICON_BLANK293)
DEF_ICON(ICON_BLANK294)
DEF_ICON(ICON_BLANK295)
DEF_ICON(ICON_BLANK296)
DEF_ICON(ICON_BLANK297)
DEF_ICON(ICON_BLANK298)
DEF_ICON(ICON_BLANK299)
DEF_ICON(ICON_BLANK300)
DEF_ICON(ICON_BLANK301)
DEF_ICON(ICON_BLANK302)
DEF_ICON(ICON_BLANK303)
DEF_ICON(ICON_BLANK304)
DEF_ICON(ICON_BLANK305)
DEF_ICON(ICON_BLANK306)
DEF_ICON(ICON_BLANK307)
DEF_ICON(ICON_BLANK308)
DEF_ICON(ICON_BLANK309)
DEF_ICON(ICON_BLANK310)
DEF_ICON(ICON_BLANK311)
DEF_ICON(ICON_BLANK312)
DEF_ICON(ICON_BLANK313)
DEF_ICON(ICON_BLANK314)
DEF_ICON(ICON_BLANK315)
DEF_ICON(ICON_BLANK316)
DEF_ICON(ICON_DISK_DRIVE)
/* SHADING / TEXT */
DEF_ICON(ICON_MATPLANE)
DEF_ICON(ICON_MATSPHERE)
DEF_ICON(ICON_MATCUBE)
DEF_ICON(ICON_MONKEY)
DEF_ICON(ICON_HAIR)
DEF_ICON(ICON_RING)
DEF_ICON(ICON_BLANK317)
DEF_ICON(ICON_BLANK318)
DEF_ICON(ICON_BLANK319)
DEF_ICON(ICON_BLANK320)
DEF_ICON(ICON_BLANK321)
DEF_ICON(ICON_BLANK322)
DEF_ICON(ICON_WORDWRAP_OFF)
DEF_ICON(ICON_WORDWRAP_ON)
DEF_ICON(ICON_SYNTAX_OFF)
DEF_ICON(ICON_SYNTAX_ON)
DEF_ICON(ICON_LINENUMBERS_OFF)
DEF_ICON(ICON_LINENUMBERS_ON)
DEF_ICON(ICON_SCRIPTPLUGINS) // XXX CREATE NEW
DEF_ICON(ICON_BLANK323)
DEF_ICON(ICON_BLANK324)
DEF_ICON(ICON_BLANK325)
DEF_ICON(ICON_BLANK326)
DEF_ICON(ICON_BLANK327)
DEF_ICON(ICON_BLANK328)
DEF_ICON(ICON_BLANK328b)
/* SEQUENCE / IMAGE EDITOR */
DEF_ICON(ICON_SEQ_SEQUENCER)
DEF_ICON(ICON_SEQ_PREVIEW)
DEF_ICON(ICON_SEQ_LUMA_WAVEFORM)
DEF_ICON(ICON_SEQ_CHROMA_SCOPE)
DEF_ICON(ICON_SEQ_HISTOGRAM)
DEF_ICON(ICON_BLANK330)
DEF_ICON(ICON_BLANK331)
DEF_ICON(ICON_BLANK332)
DEF_ICON(ICON_BLANK333)
DEF_ICON(ICON_IMAGE_RGB) // XXX CHANGE TO STRAIGHT ALPHA, Z ETC
DEF_ICON(ICON_IMAGE_RGB_ALPHA)
DEF_ICON(ICON_IMAGE_ALPHA)
DEF_ICON(ICON_IMAGE_ZDEPTH)
DEF_ICON(ICON_IMAGEFILE)
DEF_ICON(ICON_BLANK336)
DEF_ICON(ICON_BLANK337)
DEF_ICON(ICON_BLANK338)
DEF_ICON(ICON_BLANK339)
DEF_ICON(ICON_BLANK340)
DEF_ICON(ICON_BLANK341)
DEF_ICON(ICON_BLANK342)
DEF_ICON(ICON_BLANK343)
DEF_ICON(ICON_BLANK344)
DEF_ICON(ICON_BLANK345)
DEF_ICON(ICON_BLANK346)
DEF_ICON(ICON_BLANK346b)
/* vector icons */
DEF_ICON(VICON_VIEW3D)
DEF_ICON(VICON_EDIT)
DEF_ICON(VICON_EDITMODE_DEHLT)
DEF_ICON(VICON_EDITMODE_HLT)
DEF_ICON(VICON_DISCLOSURE_TRI_RIGHT)
DEF_ICON(VICON_DISCLOSURE_TRI_DOWN)
DEF_ICON(VICON_MOVE_UP)
DEF_ICON(VICON_MOVE_DOWN)
DEF_ICON(VICON_X)

@ -491,7 +491,7 @@ void autocomplete_end(AutoComplete *autocpl, char *autoname);
void uiBeginPanels(const struct bContext *C, struct ARegion *ar); void uiBeginPanels(const struct bContext *C, struct ARegion *ar);
void uiEndPanels(const struct bContext *C, struct ARegion *ar); void uiEndPanels(const struct bContext *C, struct ARegion *ar);
struct Panel *uiBeginPanel(struct ARegion *ar, uiBlock *block, struct PanelType *pt, int *open); struct Panel *uiBeginPanel(struct ScrArea *sa, struct ARegion *ar, uiBlock *block, struct PanelType *pt, int *open);
void uiEndPanel(uiBlock *block, int width, int height); void uiEndPanel(uiBlock *block, int width, int height);
/* Handlers /* Handlers
@ -539,8 +539,6 @@ void UI_exit(void);
uiBut *uiDefMenuButO(uiBlock *block, char *opname, char *name); uiBut *uiDefMenuButO(uiBlock *block, char *opname, char *name);
uiBut *uiDefMenuSep(uiBlock *block); uiBut *uiDefMenuSep(uiBlock *block);
uiBut *uiDefMenuSub(uiBlock *block, uiBlockCreateFunc func, char *name);
uiBut *uiDefMenuTogR(uiBlock *block, struct PointerRNA *ptr, char *propname, char *propvalue, char *name);
/* Layout /* Layout
* *

@ -35,864 +35,16 @@
/* elubie: TODO: move the typedef for icons to UI_interface_icons.h */ /* elubie: TODO: move the typedef for icons to UI_interface_icons.h */
/* and add/replace include of UI_resources.h by UI_interface_icons.h */ /* and add/replace include of UI_resources.h by UI_interface_icons.h */
#define DEF_ICON(name) name,
typedef enum { typedef enum {
#define BIFICONID_FIRST (ICON_BLENDER) #define BIFICONID_FIRST (ICON_BLENDER)
/* ui */ /* ui */
ICON_BLENDER, #include "UI_icons.h"
ICON_QUESTION, BIFICONID_LAST
ICON_ERROR,
ICON_BLANK1, // XXX this is used lots, it's not actually 'blank'
ICON_TRIA_RIGHT,
ICON_TRIA_DOWN,
ICON_TRIA_LEFT,
ICON_TRIA_UP,
ICON_ARROW_LEFTRIGHT,
ICON_PLUS,
ICON_DISCLOSURE_TRI_DOWN,
ICON_DISCLOSURE_TRI_RIGHT,
ICON_RADIOBUT_OFF,
ICON_RADIOBUT_ON,
ICON_MENU_PANEL,
ICON_PYTHON,
ICON_BLANK003,
ICON_DOT,
ICON_BLANK004,
ICON_X,
ICON_BLANK005,
ICON_GO_LEFT,
ICON_BLANK006,
ICON_BLANK007,
ICON_BLANK008,
ICON_BLANK008b,
/* ui */
ICON_FULLSCREEN,
ICON_SPLITSCREEN,
ICON_RIGHTARROW_THIN,
ICON_BORDERMOVE,
ICON_VIEWZOOM,
ICON_ZOOMIN,
ICON_ZOOMOUT,
ICON_PANEL_CLOSE,
ICON_BLANK009,
ICON_EYEDROPPER,
ICON_BLANK010,
ICON_AUTO,
ICON_CHECKBOX_DEHLT,
ICON_CHECKBOX_HLT,
ICON_UNLOCKED,
ICON_LOCKED,
ICON_PINNED,
ICON_UNPINNED,
ICON_BLANK015,
ICON_RIGHTARROW,
ICON_DOWNARROW_HLT,
ICON_DOTSUP,
ICON_DOTSDOWN,
ICON_LINK,
ICON_INLINK,
ICON_BLANK012b,
/* various ui */
ICON_HELP,
ICON_GHOSTDRAW,
ICON_COLOR,
ICON_LINKED,
ICON_UNLINKED,
ICON_HAND,
ICON_ZOOM_ALL,
ICON_ZOOM_SELECTED,
ICON_ZOOM_PREVIOUS,
ICON_ZOOM_IN,
ICON_ZOOM_OUT,
ICON_RENDER_REGION,
ICON_BORDER_RECT,
ICON_BORDER_LASSO,
ICON_FREEZE,
ICON_BLANK031,
ICON_BLANK032,
ICON_BLANK033,
ICON_BLANK034,
ICON_BLANK035,
ICON_BLANK036,
ICON_BLANK037,
ICON_BLANK038,
ICON_BLANK039,
ICON_BLANK040,
ICON_BLANK040b,
/* BUTTONS */
ICON_LAMP,
ICON_MATERIAL,
ICON_TEXTURE,
ICON_ANIM,
ICON_WORLD,
ICON_SCENE,
ICON_EDIT,
ICON_GAME,
ICON_RADIO,
ICON_SCRIPT,
ICON_PARTICLES,
ICON_PHYSICS,
ICON_SPEAKER,
ICON_BLANK041,
ICON_BLANK042,
ICON_BLANK043,
ICON_BLANK044,
ICON_BLANK045,
ICON_BLANK046,
ICON_BLANK047,
ICON_BLANK048,
ICON_BLANK049,
ICON_BLANK050,
ICON_BLANK051,
ICON_BLANK052,
ICON_BLANK052b,
/* EDITORS */
ICON_VIEW3D,
ICON_IPO,
ICON_OOPS,
ICON_BUTS,
ICON_FILESEL,
ICON_IMAGE_COL,
ICON_INFO,
ICON_SEQUENCE,
ICON_TEXT,
ICON_IMASEL,
ICON_SOUND,
ICON_ACTION,
ICON_NLA,
ICON_SCRIPTWIN,
ICON_TIME,
ICON_NODE,
ICON_BLANK053,
ICON_BLANK054,
ICON_BLANK055,
ICON_BLANK056,
ICON_BLANK057,
ICON_BLANK058,
ICON_BLANK059,
ICON_BLANK060,
ICON_BLANK061,
ICON_BLANK061b,
/* MODES */
ICON_OBJECT_DATAMODE, // XXX fix this up
ICON_EDITMODE_HLT,
ICON_FACESEL_HLT,
ICON_VPAINT_HLT,
ICON_TPAINT_HLT,
ICON_WPAINT_HLT,
ICON_SCULPTMODE_HLT,
ICON_POSE_HLT,
ICON_PARTICLEMODE,
ICON_BLANK062,
ICON_BLANK063,
ICON_BLANK064,
ICON_BLANK065,
ICON_BLANK066,
ICON_BLANK067,
ICON_BLANK068,
ICON_BLANK069,
ICON_BLANK070,
ICON_BLANK071,
ICON_BLANK072,
ICON_BLANK073,
ICON_BLANK074,
ICON_BLANK075,
ICON_BLANK076,
ICON_BLANK077,
ICON_BLANK077b,
/* DATA */
ICON_SCENE_DATA,
ICON_RENDERLAYERS,
ICON_WORLD_DATA,
ICON_OBJECT_DATA,
ICON_MESH_DATA,
ICON_CURVE_DATA,
ICON_META_DATA,
ICON_LATTICE_DATA,
ICON_LAMP_DATA,
ICON_MATERIAL_DATA,
ICON_TEXTURE_DATA,
ICON_ANIM_DATA,
ICON_CAMERA_DATA,
ICON_PARTICLE_DATA,
ICON_LIBRARY_DATA_DIRECT,
ICON_GROUP,
ICON_ARMATURE_DATA,
ICON_POSE_DATA,
ICON_BONE_DATA,
ICON_CONSTRAINT,
ICON_SHAPEKEY_DATA,
ICON_BLANK079a,
ICON_BLANK079,
ICON_PACKAGE,
ICON_UGLYPACKAGE,
ICON_BLANK079b,
/* DATA */
ICON_BRUSH_DATA,
ICON_IMAGE_DATA,
ICON_FILE,
ICON_FCURVE,
ICON_FONT_DATA,
ICON_RENDER_RESULT,
ICON_SURFACE_DATA,
ICON_EMPTY_DATA,
ICON_SETTINGS,
ICON_BLANK080D,
ICON_BLANK080E,
ICON_BLANK080F,
ICON_BLANK080,
ICON_STRANDS,
ICON_LIBRARY_DATA_INDIRECT,
ICON_BLANK082,
ICON_BLANK083,
ICON_BLANK084,
ICON_GROUP_BONE,
ICON_GROUP_VERTEX,
ICON_GROUP_VCOL,
ICON_GROUP_UVS,
ICON_BLANK089,
ICON_BLANK090,
ICON_RNA,
ICON_BLANK090b,
/* available */
ICON_BLANK092,
ICON_BLANK093,
ICON_BLANK094,
ICON_BLANK095,
ICON_BLANK096,
ICON_BLANK097,
ICON_BLANK098,
ICON_BLANK099,
ICON_BLANK100,
ICON_BLANK101,
ICON_BLANK102,
ICON_BLANK103,
ICON_BLANK104,
ICON_BLANK105,
ICON_BLANK106,
ICON_BLANK107,
ICON_BLANK108,
ICON_BLANK109,
ICON_BLANK110,
ICON_BLANK111,
ICON_BLANK112,
ICON_BLANK113,
ICON_BLANK114,
ICON_BLANK115,
ICON_BLANK116,
ICON_BLANK116b,
/* OUTLINER */
ICON_OUTLINER_OB_EMPTY,
ICON_OUTLINER_OB_MESH,
ICON_OUTLINER_OB_CURVE,
ICON_OUTLINER_OB_LATTICE,
ICON_OUTLINER_OB_META,
ICON_OUTLINER_OB_LAMP,
ICON_OUTLINER_OB_CAMERA,
ICON_OUTLINER_OB_ARMATURE,
ICON_OUTLINER_OB_FONT,
ICON_OUTLINER_OB_SURFACE,
ICON_BLANK119,
ICON_BLANK120,
ICON_BLANK121,
ICON_BLANK122,
ICON_BLANK123,
ICON_BLANK124,
ICON_BLANK125,
ICON_BLANK126,
ICON_BLANK127,
ICON_RESTRICT_VIEW_OFF,
ICON_RESTRICT_VIEW_ON,
ICON_RESTRICT_SELECT_OFF,
ICON_RESTRICT_SELECT_ON,
ICON_RESTRICT_RENDER_OFF,
ICON_RESTRICT_RENDER_ON,
ICON_BLANK127b,
/* OUTLINER */
ICON_OUTLINER_DATA_EMPTY,
ICON_OUTLINER_DATA_MESH,
ICON_OUTLINER_DATA_CURVE,
ICON_OUTLINER_DATA_LATTICE,
ICON_OUTLINER_DATA_META,
ICON_OUTLINER_DATA_LAMP,
ICON_OUTLINER_DATA_CAMERA,
ICON_OUTLINER_DATA_ARMATURE,
ICON_OUTLINER_DATA_FONT,
ICON_OUTLINER_DATA_SURFACE,
ICON_OUTLINER_DATA_POSE,
ICON_BLANK129,
ICON_BLANK130,
ICON_BLANK131,
ICON_BLANK132,
ICON_BLANK133,
ICON_BLANK134,
ICON_BLANK135,
ICON_BLANK136,
ICON_BLANK137,
ICON_BLANK138,
ICON_BLANK139,
ICON_BLANK140,
ICON_BLANK141,
ICON_BLANK142,
ICON_BLANK142b,
/* PRIMITIVES */
ICON_MESH_PLANE,
ICON_MESH_CUBE,
ICON_MESH_CIRCLE,
ICON_MESH_UVSPHERE,
ICON_MESH_ICOSPHERE,
ICON_MESH_GRID,
ICON_MESH_MONKEY,
ICON_MESH_TUBE,
ICON_MESH_DONUT,
ICON_MESH_CONE,
ICON_BLANK610,
ICON_BLANK611,
ICON_LAMP_POINT,
ICON_LAMP_SUN,
ICON_LAMP_SPOT,
ICON_LAMP_HEMI,
ICON_LAMP_AREA,
ICON_BLANK617,
ICON_BLANK618,
ICON_BLANK619,
ICON_META_PLANE,
ICON_META_CUBE,
ICON_META_BALL,
ICON_META_ELLIPSOID,
ICON_META_TUBE,
ICON_BLANK625,
/* PRIMITIVES */
ICON_SURFACE_NCURVE,
ICON_SURFACE_NCIRCLE,
ICON_SURFACE_NSURFACE,
ICON_SURFACE_NTUBE,
ICON_SURFACE_NSPHERE,
ICON_SURFACE_NDONUT,
ICON_BLANK636,
ICON_BLANK637,
ICON_BLANK638,
ICON_CURVE_BEZCURVE,
ICON_CURVE_BEZCIRCLE,
ICON_CURVE_NCURVE,
ICON_CURVE_NCIRCLE,
ICON_CURVE_PATH,
ICON_BLANK644,
ICON_BLANK645,
ICON_BLANK646,
ICON_BLANK647,
ICON_BLANK648,
ICON_BLANK649,
ICON_BLANK650,
ICON_BLANK651,
ICON_BLANK652,
ICON_BLANK653,
ICON_BLANK654,
ICON_BLANK655,
/* EMPTY */
ICON_BLANK660,
ICON_BLANK661,
ICON_BLANK662,
ICON_BLANK663,
ICON_BLANK664,
ICON_BLANK665,
ICON_BLANK666,
ICON_BLANK667,
ICON_BLANK668,
ICON_BLANK669,
ICON_BLANK670,
ICON_BLANK671,
ICON_BLANK672,
ICON_BLANK673,
ICON_BLANK674,
ICON_BLANK675,
ICON_BLANK676,
ICON_BLANK677,
ICON_BLANK678,
ICON_BLANK679,
ICON_BLANK680,
ICON_BLANK681,
ICON_BLANK682,
ICON_BLANK683,
ICON_BLANK684,
ICON_BLANK685,
/* EMPTY */
ICON_BLANK690,
ICON_BLANK691,
ICON_BLANK692,
ICON_BLANK693,
ICON_BLANK694,
ICON_BLANK695,
ICON_BLANK696,
ICON_BLANK697,
ICON_BLANK698,
ICON_BLANK699,
ICON_BLANK700,
ICON_BLANK701,
ICON_BLANK702,
ICON_BLANK703,
ICON_BLANK704,
ICON_BLANK705,
ICON_BLANK706,
ICON_BLANK707,
ICON_BLANK708,
ICON_BLANK709,
ICON_BLANK710,
ICON_BLANK711,
ICON_BLANK712,
ICON_BLANK713,
ICON_BLANK714,
ICON_BLANK715,
/* EMPTY */
ICON_BLANK720,
ICON_BLANK721,
ICON_BLANK722,
ICON_BLANK733,
ICON_BLANK734,
ICON_BLANK735,
ICON_BLANK736,
ICON_BLANK737,
ICON_BLANK738,
ICON_BLANK739,
ICON_BLANK740,
ICON_BLANK741,
ICON_BLANK742,
ICON_BLANK743,
ICON_BLANK744,
ICON_BLANK745,
ICON_BLANK746,
ICON_BLANK747,
ICON_BLANK748,
ICON_BLANK749,
ICON_BLANK750,
ICON_BLANK751,
ICON_BLANK752,
ICON_BLANK753,
ICON_BLANK754,
ICON_BLANK755,
/* EMPTY */
ICON_BLANK760,
ICON_BLANK761,
ICON_BLANK762,
ICON_BLANK763,
ICON_BLANK764,
ICON_BLANK765,
ICON_BLANK766,
ICON_BLANK767,
ICON_BLANK768,
ICON_BLANK769,
ICON_BLANK770,
ICON_BLANK771,
ICON_BLANK772,
ICON_BLANK773,
ICON_BLANK774,
ICON_BLANK775,
ICON_BLANK776,
ICON_BLANK777,
ICON_BLANK778,
ICON_BLANK779,
ICON_BLANK780,
ICON_BLANK781,
ICON_BLANK782,
ICON_BLANK783,
ICON_BLANK784,
ICON_BLANK785,
/* MODIFIERS */
ICON_MODIFIER,
ICON_MOD_WAVE,
ICON_MOD_BUILD,
ICON_MOD_DECIM,
ICON_MOD_MIRROR,
ICON_MOD_SOFT,
ICON_MOD_SUBSURF,
ICON_HOOK,
ICON_MOD_PHYSICS,
ICON_MOD_PARTICLES,
ICON_MOD_BOOLEAN,
ICON_MOD_EDGESPLIT,
ICON_MOD_ARRAY,
ICON_MOD_UVPROJECT,
ICON_MOD_DISPLACE,
ICON_MOD_CURVE,
ICON_MOD_LATTICE,
ICON_BLANK143,
ICON_MOD_ARMATURE,
ICON_MOD_SHRINKWRAP,
ICON_MOD_CAST,
ICON_MOD_MESHDEFORM,
ICON_MOD_BEVEL,
ICON_MOD_SMOOTH,
ICON_MOD_SIMPLEDEFORM,
ICON_MOD_MASK,
/* MODIFIERS */
ICON_MOD_CLOTH,
ICON_MOD_EXPLODE,
ICON_MOD_FLUIDSIM,
ICON_MOD_MULTIRES,
ICON_BLANK157,
ICON_BLANK158,
ICON_BLANK159,
ICON_BLANK160,
ICON_BLANK161,
ICON_BLANK162,
ICON_BLANK163,
ICON_BLANK164,
ICON_BLANK165,
ICON_BLANK166,
ICON_BLANK167,
ICON_BLANK168,
ICON_BLANK169,
ICON_BLANK170,
ICON_BLANK171,
ICON_BLANK172,
ICON_BLANK173,
ICON_BLANK174,
ICON_BLANK175,
ICON_BLANK176,
ICON_BLANK177,
ICON_BLANK177b,
/* ANIMATION */
ICON_REC,
ICON_PLAY,
ICON_FF,
ICON_REW,
ICON_PAUSE,
ICON_PREV_KEYFRAME,
ICON_NEXT_KEYFRAME,
ICON_PLAY_AUDIO,
ICON_BLANK178,
ICON_BLANK179,
ICON_BLANK180,
ICON_PMARKER_ACT,
ICON_PMARKER_SEL,
ICON_PMARKER,
ICON_MARKER_HLT,
ICON_MARKER,
ICON_SPACE2, // XXX
ICON_SPACE3, // XXX
ICON_BLANK181,
ICON_KEY_DEHLT,
ICON_KEY_HLT,
ICON_MUTE_IPO_OFF,
ICON_MUTE_IPO_ON,
ICON_BLANK182,
ICON_BLANK183,
ICON_BLANK183b,
/* available */
ICON_BLANK184,
ICON_BLANK185,
ICON_BLANK186,
ICON_BLANK187,
ICON_BLANK188,
ICON_BLANK189,
ICON_BLANK190,
ICON_BLANK191,
ICON_BLANK192,
ICON_BLANK193,
ICON_BLANK194,
ICON_BLANK195,
ICON_BLANK196,
ICON_BLANK197,
ICON_BLANK198,
ICON_BLANK199,
ICON_BLANK200,
ICON_BLANK201,
ICON_BLANK202,
ICON_BLANK203,
ICON_BLANK204,
ICON_BLANK205,
ICON_BLANK206,
ICON_BLANK207,
ICON_BLANK208,
ICON_BLANK208b,
/* EDITING */
ICON_VERTEXSEL,
ICON_EDGESEL,
ICON_FACESEL,
ICON_LINKEDSEL,
ICON_BLANK210,
ICON_ROTATE,
ICON_CURSOR,
ICON_ROTATECOLLECTION,
ICON_ROTATECENTER,
ICON_ROTACTIVE,
ICON_ALIGN,
ICON_BLANK211,
ICON_SMOOTHCURVE,
ICON_SPHERECURVE,
ICON_ROOTCURVE,
ICON_SHARPCURVE,
ICON_LINCURVE,
ICON_NOCURVE,
ICON_RNDCURVE,
ICON_PROP_OFF,
ICON_PROP_ON,
ICON_PROP_CON,
ICON_BLANK212,
ICON_BLANK213,
ICON_BLANK214,
ICON_BLANK214b,
/* EDITING */
ICON_MAN_TRANS,
ICON_MAN_ROT,
ICON_MAN_SCALE,
ICON_MANIPUL,
ICON_BLANK215,
ICON_SNAP_GEAR,
ICON_SNAP_GEO,
ICON_SNAP_NORMAL,
ICON_SNAP_VERTEX,
ICON_SNAP_EDGE,
ICON_SNAP_FACE,
ICON_SNAP_VOLUME,
ICON_STICKY_UVS_LOC,
ICON_STICKY_UVS_DISABLE,
ICON_STICKY_UVS_VERT,
ICON_CLIPUV_DEHLT,
ICON_CLIPUV_HLT,
ICON_BLANK219,
ICON_SNAP_PEEL_OBJECT,
ICON_BLANK221,
ICON_GRID,
ICON_GEARS,
ICON_BLANK224,
ICON_BLANK225,
ICON_BLANK226,
ICON_BLANK226b,
/* EDITING */
ICON_PASTEDOWN,
ICON_COPYDOWN,
ICON_PASTEFLIPUP,
ICON_PASTEFLIPDOWN,
ICON_BLANK227,
ICON_BLANK228,
ICON_BLANK229,
ICON_BLANK230,
ICON_BLANK231,
ICON_BLANK232,
ICON_BLANK233,
ICON_BLANK234,
ICON_BLANK235,
ICON_BLANK236,
ICON_BLANK237,
ICON_BLANK238,
ICON_BLANK239,
ICON_BLANK240,
ICON_BLANK241,
ICON_BLANK242,
ICON_BLANK243,
ICON_BLANK244,
ICON_BLANK245,
ICON_BLANK246,
ICON_BLANK247,
ICON_BLANK247b,
/* 3D VIEW */
ICON_BBOX,
ICON_WIRE,
ICON_SOLID,
ICON_SMOOTH,
ICON_POTATO,
ICON_BLANK248,
ICON_ORTHO,
ICON_BLANK249,
ICON_CAMERA,
ICON_LOCKVIEW_OFF,
ICON_LOCKVIEW_ON,
ICON_BLANK250,
ICON_AXIS_SIDE,
ICON_AXIS_FRONT,
ICON_AXIS_TOP,
ICON_NDOF_DOM,
ICON_NDOF_TURN,
ICON_NDOF_FLY,
ICON_NDOF_TRANS,
ICON_LAYER_USED,
ICON_LAYER_ACTIVE,
ICON_BLANK254,
ICON_BLANK255,
ICON_BLANK256,
ICON_BLANK257,
ICON_BLANK257b,
/* available */
ICON_BLANK258,
ICON_BLANK259,
ICON_BLANK260,
ICON_BLANK261,
ICON_BLANK262,
ICON_BLANK263,
ICON_BLANK264,
ICON_BLANK265,
ICON_BLANK266,
ICON_BLANK267,
ICON_BLANK268,
ICON_BLANK269,
ICON_BLANK270,
ICON_BLANK271,
ICON_BLANK272,
ICON_BLANK273,
ICON_BLANK274,
ICON_BLANK275,
ICON_BLANK276,
ICON_BLANK277,
ICON_BLANK278,
ICON_BLANK279,
ICON_BLANK280,
ICON_BLANK281,
ICON_BLANK282,
ICON_BLANK282b,
/* FILE SELECT */
ICON_SORTALPHA,
ICON_SORTBYEXT,
ICON_SORTTIME,
ICON_SORTSIZE,
ICON_LONGDISPLAY,
ICON_SHORTDISPLAY,
ICON_GHOST,
ICON_IMGDISPLAY,
ICON_BLANK284,
ICON_BLANK285,
ICON_BOOKMARKS,
ICON_FONTPREVIEW,
ICON_FILTER,
ICON_NEWFOLDER,
ICON_BLANK285F,
ICON_FILE_PARENT,
ICON_FILE_REFRESH,
ICON_FILE_FOLDER,
ICON_FILE_BLANK,
ICON_FILE_BLEND,
ICON_FILE_IMAGE,
ICON_FILE_MOVIE,
ICON_FILE_SCRIPT,
ICON_FILE_SOUND,
ICON_FILE_FONT,
ICON_BLANK291b,
/* available */
ICON_BLANK292,
ICON_BLANK293,
ICON_BLANK294,
ICON_BLANK295,
ICON_BLANK296,
ICON_BLANK297,
ICON_BLANK298,
ICON_BLANK299,
ICON_BLANK300,
ICON_BLANK301,
ICON_BLANK302,
ICON_BLANK303,
ICON_BLANK304,
ICON_BLANK305,
ICON_BLANK306,
ICON_BLANK307,
ICON_BLANK308,
ICON_BLANK309,
ICON_BLANK310,
ICON_BLANK311,
ICON_BLANK312,
ICON_BLANK313,
ICON_BLANK314,
ICON_BLANK315,
ICON_BLANK316,
ICON_DISK_DRIVE,
/* SHADING / TEXT */
ICON_MATPLANE,
ICON_MATSPHERE,
ICON_MATCUBE,
ICON_MONKEY,
ICON_HAIR,
ICON_RING,
ICON_BLANK317,
ICON_BLANK318,
ICON_BLANK319,
ICON_BLANK320,
ICON_BLANK321,
ICON_BLANK322,
ICON_WORDWRAP_OFF,
ICON_WORDWRAP_ON,
ICON_SYNTAX_OFF,
ICON_SYNTAX_ON,
ICON_LINENUMBERS_OFF,
ICON_LINENUMBERS_ON,
ICON_SCRIPTPLUGINS, // XXX CREATE NEW
ICON_BLANK323,
ICON_BLANK324,
ICON_BLANK325,
ICON_BLANK326,
ICON_BLANK327,
ICON_BLANK328,
ICON_BLANK328b,
/* SEQUENCE / IMAGE EDITOR */
ICON_SEQ_SEQUENCER,
ICON_SEQ_PREVIEW,
ICON_SEQ_LUMA_WAVEFORM,
ICON_SEQ_CHROMA_SCOPE,
ICON_SEQ_HISTOGRAM,
ICON_BLANK330,
ICON_BLANK331,
ICON_BLANK332,
ICON_BLANK333,
ICON_IMAGE_RGB, // XXX CHANGE TO STRAIGHT ALPHA, Z ETC
ICON_IMAGE_RGB_ALPHA,
ICON_IMAGE_ALPHA,
ICON_IMAGE_ZDEPTH,
ICON_IMAGEFILE,
ICON_BLANK336,
ICON_BLANK337,
ICON_BLANK338,
ICON_BLANK339,
ICON_BLANK340,
ICON_BLANK341,
ICON_BLANK342,
ICON_BLANK343,
ICON_BLANK344,
ICON_BLANK345,
ICON_BLANK346,
ICON_BLANK346b,
/* vector icons */
VICON_VIEW3D,
VICON_EDIT,
VICON_EDITMODE_DEHLT,
VICON_EDITMODE_HLT,
VICON_DISCLOSURE_TRI_RIGHT,
VICON_DISCLOSURE_TRI_DOWN,
VICON_MOVE_UP,
VICON_MOVE_DOWN,
VICON_X
#define BIFICONID_LAST (VICON_X)
#define BIFNICONIDS (BIFICONID_LAST-BIFICONID_FIRST + 1) #define BIFNICONIDS (BIFICONID_LAST-BIFICONID_FIRST + 1)
} BIFIconID; } BIFIconID;
#undef DEF_ICON
typedef enum { typedef enum {

@ -398,18 +398,21 @@ void uiMenuPopupBoundsBlock(uiBlock *block, int addval, int mx, int my)
static void ui_draw_linkline(uiBut *but, uiLinkLine *line) static void ui_draw_linkline(uiBut *but, uiLinkLine *line)
{ {
float vec1[2], vec2[2]; rcti rect;
if(line->from==NULL || line->to==NULL) return; if(line->from==NULL || line->to==NULL) return;
vec1[0]= (line->from->x1+line->from->x2)/2.0; rect.xmin= (line->from->x1+line->from->x2)/2.0;
vec1[1]= (line->from->y1+line->from->y2)/2.0; rect.ymin= (line->from->y1+line->from->y2)/2.0;
vec2[0]= (line->to->x1+line->to->x2)/2.0; rect.xmax= (line->to->x1+line->to->x2)/2.0;
vec2[1]= (line->to->y1+line->to->y2)/2.0; rect.ymax= (line->to->y1+line->to->y2)/2.0;
if(line->flag & UI_SELECT) glColor3ub(100,100,100); if(line->flag & UI_SELECT)
else glColor3ub(0,0,0); glColor3ub(100,100,100);
fdrawline(vec1[0], vec1[1], vec2[0], vec2[1]); else
glColor3ub(0,0,0);
ui_draw_link_bezier(&rect);
} }
static void ui_draw_links(uiBlock *block) static void ui_draw_links(uiBlock *block)
@ -475,6 +478,8 @@ static int ui_but_update_from_old_block(const bContext *C, uiBlock *block, uiBut
but->selend= oldbut->selend; but->selend= oldbut->selend;
but->softmin= oldbut->softmin; but->softmin= oldbut->softmin;
but->softmax= oldbut->softmax; but->softmax= oldbut->softmax;
but->linkto[0]= oldbut->linkto[0];
but->linkto[1]= oldbut->linkto[1];
found= 1; found= 1;
oldbut->active= NULL; oldbut->active= NULL;
@ -733,8 +738,13 @@ static void ui_is_but_sel(uiBut *but)
/* XXX 2.50 no links supported yet */ /* XXX 2.50 no links supported yet */
#if 0 static int uibut_contains_pt(uiBut *but, short *mval)
static uiBut *ui_get_valid_link_button(uiBlock *block, uiBut *but, short *mval) {
return 0;
}
uiBut *ui_get_valid_link_button(uiBlock *block, uiBut *but, short *mval)
{ {
uiBut *bt; uiBut *bt;
@ -745,7 +755,7 @@ static uiBut *ui_get_valid_link_button(uiBlock *block, uiBut *but, short *mval)
if (bt) { if (bt) {
if (but->type==LINK && bt->type==INLINK) { if (but->type==LINK && bt->type==INLINK) {
if( but->link->tocode == (int)bt->min ) { if( but->link->tocode == (int)bt->hardmin ) {
return bt; return bt;
} }
} }
@ -759,21 +769,6 @@ static uiBut *ui_get_valid_link_button(uiBlock *block, uiBut *but, short *mval)
return NULL; return NULL;
} }
static int ui_is_a_link(uiBut *from, uiBut *to)
{
uiLinkLine *line;
uiLink *link;
link= from->link;
if(link) {
line= link->lines.first;
while(line) {
if(line->from==from && line->to==to) return 1;
line= line->next;
}
}
return 0;
}
static uiBut *ui_find_inlink(uiBlock *block, void *poin) static uiBut *ui_find_inlink(uiBlock *block, void *poin)
{ {
@ -839,98 +834,6 @@ void uiComposeLinks(uiBlock *block)
} }
} }
static void ui_add_link(uiBut *from, uiBut *to)
{
/* in 'from' we have to add a link to 'to' */
uiLink *link;
void **oldppoin;
int a;
if(ui_is_a_link(from, to)) {
printf("already exists\n");
return;
}
link= from->link;
/* are there more pointers allowed? */
if(link->ppoin) {
oldppoin= *(link->ppoin);
(*(link->totlink))++;
*(link->ppoin)= MEM_callocN( *(link->totlink)*sizeof(void *), "new link");
for(a=0; a< (*(link->totlink))-1; a++) {
(*(link->ppoin))[a]= oldppoin[a];
}
(*(link->ppoin))[a]= to->poin;
if(oldppoin) MEM_freeN(oldppoin);
}
else {
*(link->poin)= to->poin;
}
}
static int ui_do_but_LINK(uiBlock *block, uiBut *but)
{
/*
* This button only visualizes, the dobutton mode
* can add a new link, but then the whole system
* should be redrawn/initialized.
*
*/
uiBut *bt=0, *bto=NULL;
short sval[2], mval[2], mvalo[2], first= 1;
uiGetMouse(curarea->win, sval);
mvalo[0]= sval[0];
mvalo[1]= sval[1];
while (get_mbut() & L_MOUSE) {
uiGetMouse(curarea->win, mval);
if(mval[0]!=mvalo[0] || mval[1]!=mvalo[1] || first) {
/* clear completely, because of drawbuttons */
bt= ui_get_valid_link_button(block, but, mval);
if(bt) {
bt->flag |= UI_ACTIVE;
ui_draw_but(ar, bt);
}
if(bto && bto!=bt) {
bto->flag &= ~UI_ACTIVE;
ui_draw_but(ar, bto);
}
bto= bt;
if (!first) {
glutil_draw_front_xor_line(sval[0], sval[1], mvalo[0], mvalo[1]);
}
glutil_draw_front_xor_line(sval[0], sval[1], mval[0], mval[1]);
mvalo[0]= mval[0];
mvalo[1]= mval[1];
first= 0;
}
else UI_wait_for_statechange();
}
if (!first) {
glutil_draw_front_xor_line(sval[0], sval[1], mvalo[0], mvalo[1]);
}
if(bt) {
if(but->type==LINK) ui_add_link(but, bt);
else ui_add_link(bt, but);
scrarea_queue_winredraw(curarea);
}
return 0;
}
#endif
/* ************************************************ */ /* ************************************************ */
@ -1859,18 +1762,24 @@ void ui_check_but(uiBut *but)
case ICONTOG: case ICONTOG:
case ICONTOGN: case ICONTOGN:
if(!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) {
if(but->flag & UI_SELECT) but->iconadd= 1; if(but->flag & UI_SELECT) but->iconadd= 1;
else but->iconadd= 0; else but->iconadd= 0;
}
break; break;
case ICONROW: case ICONROW:
if(!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) {
value= ui_get_but_val(but); value= ui_get_but_val(but);
but->iconadd= (int)value- (int)(but->hardmin); but->iconadd= (int)value- (int)(but->hardmin);
}
break; break;
case ICONTEXTROW: case ICONTEXTROW:
if(!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) {
value= ui_get_but_val(but); value= ui_get_but_val(but);
but->iconadd= (int)value- (int)(but->hardmin); but->iconadd= (int)value- (int)(but->hardmin);
}
break; break;
} }
@ -2267,7 +2176,7 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
uiBut *but; uiBut *but;
PropertyRNA *prop; PropertyRNA *prop;
PropertyType proptype; PropertyType proptype;
int freestr= 0; int freestr= 0, icon= 0;
prop= RNA_struct_find_property(ptr, propname); prop= RNA_struct_find_property(ptr, propname);
@ -2279,14 +2188,22 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
if(type == MENU && proptype == PROP_ENUM) { if(type == MENU && proptype == PROP_ENUM) {
const EnumPropertyItem *item; const EnumPropertyItem *item;
DynStr *dynstr; DynStr *dynstr;
int i, totitem; int i, totitem, value;
RNA_property_enum_items(ptr, prop, &item, &totitem); RNA_property_enum_items(ptr, prop, &item, &totitem);
value= RNA_property_enum_get(ptr, prop);
dynstr= BLI_dynstr_new(); dynstr= BLI_dynstr_new();
BLI_dynstr_appendf(dynstr, "%s%%t", RNA_property_ui_name(prop)); BLI_dynstr_appendf(dynstr, "%s%%t", RNA_property_ui_name(prop));
for(i=0; i<totitem; i++) for(i=0; i<totitem; i++) {
if(item[i].icon)
BLI_dynstr_appendf(dynstr, "|%s %%i%d %%x%d", item[i].name, item[i].icon, item[i].value);
else
BLI_dynstr_appendf(dynstr, "|%s %%x%d", item[i].name, item[i].value); BLI_dynstr_appendf(dynstr, "|%s %%x%d", item[i].name, item[i].value);
if(value == item[i].value)
icon= item[i].icon;
}
str= BLI_dynstr_get_cstring(dynstr); str= BLI_dynstr_get_cstring(dynstr);
BLI_dynstr_free(dynstr); BLI_dynstr_free(dynstr);
@ -2297,15 +2214,20 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
int i, totitem; int i, totitem;
RNA_property_enum_items(ptr, prop, &item, &totitem); RNA_property_enum_items(ptr, prop, &item, &totitem);
for(i=0; i<totitem; i++) for(i=0; i<totitem; i++) {
if(item[i].value == (int)max) if(item[i].value == (int)max) {
str= (char*)item[i].name; str= (char*)item[i].name;
icon= item[i].icon;
}
}
if(!str) if(!str)
str= (char*)RNA_property_ui_name(prop); str= (char*)RNA_property_ui_name(prop);
} }
else else {
str= (char*)RNA_property_ui_name(prop); str= (char*)RNA_property_ui_name(prop);
icon= RNA_property_ui_icon(prop);
}
} }
if(!tip) { if(!tip) {
@ -2384,6 +2306,13 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
if(type == IDPOIN) if(type == IDPOIN)
uiButSetCompleteFunc(but, ui_rna_ID_autocomplete, but); uiButSetCompleteFunc(but, ui_rna_ID_autocomplete, but);
}
if(icon) {
but->icon= (BIFIconID)icon;
but->flag |= UI_HAS_ICON;
but->flag|= UI_ICON_LEFT;
} }
if (!prop || !RNA_property_editable(&but->rnapoin, prop)) { if (!prop || !RNA_property_editable(&but->rnapoin, prop)) {
@ -2653,8 +2582,10 @@ uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, short x1, s
but= ui_def_but_rna(block, type, retval, "", x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); but= ui_def_but_rna(block, type, retval, "", x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip);
if(but) { if(but) {
if(icon) {
but->icon= (BIFIconID) icon; but->icon= (BIFIconID) icon;
but->flag|= UI_HAS_ICON; but->flag|= UI_HAS_ICON;
}
ui_check_but(but); ui_check_but(but);
} }
@ -2736,8 +2667,10 @@ uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, char *s
but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip); but= ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip);
if(but) { if(but) {
if(icon) {
but->icon= (BIFIconID) icon; but->icon= (BIFIconID) icon;
but->flag|= UI_HAS_ICON; but->flag|= UI_HAS_ICON;
}
but->flag|= UI_ICON_LEFT; but->flag|= UI_ICON_LEFT;
ui_check_but(but); ui_check_but(but);
} }
@ -2779,60 +2712,6 @@ uiBut *uiDefMenuSep(uiBlock *block)
return uiDefBut(block, SEPR, 0, "", 0, y, MENU_WIDTH, MENU_SEP_HEIGHT, NULL, 0.0, 0.0, 0, 0, ""); return uiDefBut(block, SEPR, 0, "", 0, y, MENU_WIDTH, MENU_SEP_HEIGHT, NULL, 0.0, 0.0, 0, 0, "");
} }
uiBut *uiDefMenuSub(uiBlock *block, uiBlockCreateFunc func, char *name)
{
int y= ui_menu_y(block) - MENU_ITEM_HEIGHT;
return uiDefIconTextBlockBut(block, func, NULL, ICON_BLANK1, name, 0, y, MENU_WIDTH, MENU_ITEM_HEIGHT-1, "");
}
uiBut *uiDefMenuTogR(uiBlock *block, PointerRNA *ptr, char *propname, char *propvalue, char *name)
{
uiBut *but;
PropertyRNA *prop;
PropertyType type;
const EnumPropertyItem *item;
int a, value, totitem, icon= ICON_CHECKBOX_DEHLT;
int y= ui_menu_y(block) - MENU_ITEM_HEIGHT;
prop= RNA_struct_find_property(ptr, propname);
if(prop) {
type= RNA_property_type(prop);
if(type == PROP_BOOLEAN) {
if(RNA_property_boolean_get(ptr, prop))
icon= ICON_CHECKBOX_HLT;
return uiDefIconTextButR(block, TOG, 0, icon, name, 0, y, MENU_WIDTH, MENU_ITEM_HEIGHT-1, ptr, propname, 0, 0, 0, 0, 0, NULL);
}
else if(type == PROP_ENUM) {
RNA_property_enum_items(ptr, prop, &item, &totitem);
value= 0;
for(a=0; a<totitem; a++) {
if(propvalue && strcmp(propvalue, item[a].identifier) == 0) {
value= item[a].value;
if(!name)
name= (char*)item[a].name;
if(RNA_property_enum_get(ptr, prop) == value)
icon= ICON_CHECKBOX_HLT;
break;
}
}
if(a != totitem)
return uiDefIconTextButR(block, ROW, 0, icon, name, 0, y, MENU_WIDTH, MENU_ITEM_HEIGHT-1, ptr, propname, 0, 0, value, 0, 0, NULL);
}
}
/* not found */
uiBlockSetButLock(block, 1, "");
but= uiDefIconTextBut(block, BUT, 0, ICON_BLANK1, propname, 0, y, MENU_WIDTH, MENU_ITEM_HEIGHT, NULL, 0.0, 0.0, 0, 0, "");
uiBlockClearButLock(block);
return but;
}
/* END Button containing both string label and icon */ /* END Button containing both string label and icon */
void uiSetButLink(uiBut *but, void **poin, void ***ppoin, short *tot, int from, int to) void uiSetButLink(uiBut *but, void **poin, void ***ppoin, short *tot, int from, int to)
@ -2874,8 +2753,8 @@ void uiBlockFlipOrder(uiBlock *block)
uiBut *but, *next; uiBut *but, *next;
float centy, miny=10000, maxy= -10000; float centy, miny=10000, maxy= -10000;
// if(U.uiflag & USER_PLAINMENUS) if(!(U.uiflag & USER_DIRECTIONALORDER))
// return; return;
for(but= block->buttons.first; but; but= but->next) { for(but= block->buttons.first; but; but= but->next) {
if(but->flag & UI_BUT_ALIGN) return; if(but->flag & UI_BUT_ALIGN) return;

@ -165,6 +165,7 @@ typedef struct uiAfterFunc {
bContextStore *context; bContextStore *context;
} uiAfterFunc; } uiAfterFunc;
static int ui_mouse_inside_button(ARegion *ar, uiBut *but, int x, int y);
static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState state); static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState state);
static int ui_handler_region_menu(bContext *C, wmEvent *event, void *userdata); static int ui_handler_region_menu(bContext *C, wmEvent *event, void *userdata);
static int ui_handler_popup(bContext *C, wmEvent *event, void *userdata); static int ui_handler_popup(bContext *C, wmEvent *event, void *userdata);
@ -525,6 +526,149 @@ static void ui_apply_but_CHARTAB(bContext *C, uiBut *but, uiHandleButtonData *da
} }
#endif #endif
static void ui_delete_active_linkline(uiBlock *block)
{
uiBut *but;
uiLink *link;
uiLinkLine *line, *nline;
int a, b;
but= block->buttons.first;
while(but) {
if(but->type==LINK && but->link) {
line= but->link->lines.first;
while(line) {
nline= line->next;
if(line->flag & UI_SELECT) {
BLI_remlink(&but->link->lines, line);
link= line->from->link;
/* are there more pointers allowed? */
if(link->ppoin) {
if(*(link->totlink)==1) {
*(link->totlink)= 0;
MEM_freeN(*(link->ppoin));
*(link->ppoin)= NULL;
}
else {
b= 0;
for(a=0; a< (*(link->totlink)); a++) {
if( (*(link->ppoin))[a] != line->to->poin ) {
(*(link->ppoin))[b]= (*(link->ppoin))[a];
b++;
}
}
(*(link->totlink))--;
}
}
else {
*(link->poin)= NULL;
}
MEM_freeN(line);
}
line= nline;
}
}
but= but->next;
}
}
static uiLinkLine *ui_is_a_link(uiBut *from, uiBut *to)
{
uiLinkLine *line;
uiLink *link;
link= from->link;
if(link) {
line= link->lines.first;
while(line) {
if(line->from==from && line->to==to) return line;
line= line->next;
}
}
return NULL;
}
static void ui_add_link(uiBut *from, uiBut *to)
{
/* in 'from' we have to add a link to 'to' */
uiLink *link;
uiLinkLine *line;
void **oldppoin;
int a;
if( (line= ui_is_a_link(from, to)) ) {
line->flag |= UI_SELECT;
ui_delete_active_linkline(from->block);
printf("already exists, means deletion now\n");
return;
}
if (from->type==LINK && to->type==INLINK) {
if( from->link->tocode != (int)to->hardmin ) {
printf("cannot link\n");
return;
}
}
else if(from->type==INLINK && to->type==LINK) {
if( to->link->tocode == (int)from->hardmin ) {
printf("cannot link\n");
return;
}
}
link= from->link;
/* are there more pointers allowed? */
if(link->ppoin) {
oldppoin= *(link->ppoin);
(*(link->totlink))++;
*(link->ppoin)= MEM_callocN( *(link->totlink)*sizeof(void *), "new link");
for(a=0; a< (*(link->totlink))-1; a++) {
(*(link->ppoin))[a]= oldppoin[a];
}
(*(link->ppoin))[a]= to->poin;
if(oldppoin) MEM_freeN(oldppoin);
}
else {
*(link->poin)= to->poin;
}
}
static void ui_apply_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data)
{
ARegion *ar= CTX_wm_region(C);
uiBut *bt;
for(bt= but->block->buttons.first; bt; bt= bt->next) {
if( ui_mouse_inside_button(ar, bt, but->linkto[0]+ar->winrct.xmin, but->linkto[1]+ar->winrct.ymin) )
break;
}
if(bt && bt!=but) {
if(but->type==LINK) ui_add_link(but, bt);
else ui_add_link(bt, but);
ui_apply_but_func(C, but);
data->retval= but->retval;
}
data->applied= 1;
}
static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, int interactive) static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, int interactive)
{ {
char *editstr; char *editstr;
@ -640,6 +784,7 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
#endif #endif
case LINK: case LINK:
case INLINK: case INLINK:
ui_apply_but_LINK(C, but, data);
break; break;
default: default:
break; break;
@ -1774,7 +1919,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
click= 1; click= 1;
} }
else if(event->val==KM_PRESS) { else if(event->val==KM_PRESS) {
if(ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->shift) { if(ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->ctrl) {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING); button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
retval= WM_UI_HANDLER_BREAK; retval= WM_UI_HANDLER_BREAK;
} }
@ -1985,7 +2130,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
click= 2; click= 2;
} }
else if(event->val==KM_PRESS) { else if(event->val==KM_PRESS) {
if(ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->shift) { if(ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->ctrl) {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING); button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
retval= WM_UI_HANDLER_BREAK; retval= WM_UI_HANDLER_BREAK;
} }
@ -2027,7 +2172,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
} }
if(click) { if(click) {
if (event->ctrl || click==2) { if (click==2) {
/* nudge slider to the left or right */ /* nudge slider to the left or right */
float f, tempf, softmin, softmax, softrange; float f, tempf, softmin, softmax, softrange;
int temp; int temp;
@ -2806,6 +2951,38 @@ static int ui_do_but_CHARTAB(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
} }
#endif #endif
static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, wmEvent *event)
{
ARegion *ar= CTX_wm_region(C);
but->linkto[0]= event->x-ar->winrct.xmin;
but->linkto[1]= event->y-ar->winrct.ymin;
if(data->state == BUTTON_STATE_HIGHLIGHT) {
if(event->type == LEFTMOUSE && event->val==KM_PRESS) {
button_activate_state(C, but, BUTTON_STATE_WAIT_RELEASE);
return WM_UI_HANDLER_BREAK;
}
else if(event->type == LEFTMOUSE && but->block->handle) {
button_activate_state(C, but, BUTTON_STATE_EXIT);
return WM_UI_HANDLER_BREAK;
}
}
else if(data->state == BUTTON_STATE_WAIT_RELEASE) {
if(event->type == LEFTMOUSE && event->val!=KM_PRESS) {
if(!(but->flag & UI_SELECT))
data->cancel= 1;
button_activate_state(C, but, BUTTON_STATE_EXIT);
return WM_UI_HANDLER_BREAK;
}
}
return WM_UI_HANDLER_CONTINUE;
}
static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event) static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
{ {
uiHandleButtonData *data; uiHandleButtonData *data;
@ -2951,13 +3128,11 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
retval= ui_do_but_CHARTAB(C, block, but, data, event); retval= ui_do_but_CHARTAB(C, block, but, data, event);
break; break;
#endif #endif
/* XXX 2.50 links not implemented yet */
#if 0
case LINK: case LINK:
case INLINK: case INLINK:
retval= retval= ui_do_but_LINK(block, but); retval= ui_do_but_LINK(C, but, data, event);
break; break;
#endif
} }
return retval; return retval;
@ -3421,6 +3596,13 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
else if(data->state == BUTTON_STATE_WAIT_RELEASE) { else if(data->state == BUTTON_STATE_WAIT_RELEASE) {
switch(event->type) { switch(event->type) {
case MOUSEMOVE: case MOUSEMOVE:
if(ELEM(but->type,LINK, INLINK)) {
but->flag |= UI_SELECT;
ui_do_button(C, block, but, event);
ED_region_tag_redraw(data->region);
}
else {
/* deselect the button when moving the mouse away */ /* deselect the button when moving the mouse away */
if(ui_mouse_inside_button(ar, but, event->x, event->y)) { if(ui_mouse_inside_button(ar, but, event->x, event->y)) {
if(!(but->flag & UI_SELECT)) { if(!(but->flag & UI_SELECT)) {
@ -3436,6 +3618,7 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
ED_region_tag_redraw(data->region); ED_region_tag_redraw(data->region);
} }
} }
}
break; break;
default: default:
/* otherwise catch mouse release event */ /* otherwise catch mouse release event */

@ -181,6 +181,7 @@ struct uiBut {
void *search_arg; void *search_arg;
uiLink *link; uiLink *link;
short linkto[2];
char *tip, *lockstr; char *tip, *lockstr;
@ -408,6 +409,7 @@ extern int ui_button_is_active(struct ARegion *ar);
void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3); void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3);
void ui_draw_menu_back(struct uiStyle *style, uiBlock *block, rcti *rect); void ui_draw_menu_back(struct uiStyle *style, uiBlock *block, rcti *rect);
void ui_draw_search_back(struct uiStyle *style, uiBlock *block, rcti *rect); void ui_draw_search_back(struct uiStyle *style, uiBlock *block, rcti *rect);
void ui_draw_link_bezier(rcti *rect);
extern void ui_draw_but(const struct bContext *C, ARegion *ar, struct uiStyle *style, uiBut *but, rcti *rect); extern void ui_draw_but(const struct bContext *C, ARegion *ar, struct uiStyle *style, uiBut *but, rcti *rect);
/* theme color init */ /* theme color init */

@ -427,19 +427,29 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon
uiBlockSetCurLayout(block, layout); uiBlockSetCurLayout(block, layout);
} }
static void ui_item_enum_row(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int x, int y, int w, int h) static void ui_item_enum_row(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, char *uiname, int x, int y, int w, int h)
{ {
const EnumPropertyItem *item; const EnumPropertyItem *item;
int a, totitem, itemw; const char *identifier;
const char *propname; char *name;
int a, totitem, itemw, icon, value;
propname= RNA_property_identifier(prop); identifier= RNA_property_identifier(prop);
RNA_property_enum_items(ptr, prop, &item, &totitem); RNA_property_enum_items(ptr, prop, &item, &totitem);
uiBlockSetCurLayout(block, ui_item_local_sublayout(layout, layout, 1)); uiBlockSetCurLayout(block, ui_item_local_sublayout(layout, layout, 1));
for(a=0; a<totitem; a++) { for(a=0; a<totitem; a++) {
itemw= ui_text_icon_width(block->curlayout, (char*)item[a].name, 0); name= (!uiname || uiname[0])? (char*)item[a].name: "";
uiDefButR(block, ROW, 0, NULL, 0, 0, itemw, h, ptr, propname, -1, 0, item[a].value, -1, -1, NULL); icon= item[a].icon;
value= item[a].value;
itemw= ui_text_icon_width(block->curlayout, name, icon);
if(icon && strcmp(name, "") != 0)
uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
else if(icon)
uiDefIconButR(block, ROW, 0, icon, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
else
uiDefButR(block, ROW, 0, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
} }
uiBlockSetCurLayout(block, layout); uiBlockSetCurLayout(block, layout);
} }
@ -732,6 +742,8 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper
/* set name and icon */ /* set name and icon */
if(!name) if(!name)
name= (char*)RNA_property_ui_name(prop); name= (char*)RNA_property_ui_name(prop);
if(!icon)
icon= RNA_property_ui_icon(prop);
if(ELEM5(type, PROP_INT, PROP_FLOAT, PROP_STRING, PROP_ENUM, PROP_POINTER)) if(ELEM5(type, PROP_INT, PROP_FLOAT, PROP_STRING, PROP_ENUM, PROP_POINTER))
name= ui_item_name_add_colon(name, namestr); name= ui_item_name_add_colon(name, namestr);
@ -764,7 +776,7 @@ void uiItemFullR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, Proper
} }
/* expanded enum */ /* expanded enum */
else if(type == PROP_ENUM && expand) else if(type == PROP_ENUM && expand)
ui_item_enum_row(layout, block, ptr, prop, 0, 0, w, h); ui_item_enum_row(layout, block, ptr, prop, name, 0, 0, w, h);
/* property with separate label */ /* property with separate label */
else if(type == PROP_ENUM || type == PROP_STRING || type == PROP_POINTER) else if(type == PROP_ENUM || type == PROP_STRING || type == PROP_POINTER)
ui_item_with_label(layout, block, name, icon, ptr, prop, index, 0, 0, w, h); ui_item_with_label(layout, block, name, icon, ptr, prop, index, 0, 0, w, h);
@ -858,7 +870,7 @@ static void ui_item_menu(uiLayout *layout, char *name, int icon, uiMenuCreateFun
uiBlockSetCurLayout(block, layout); uiBlockSetCurLayout(block, layout);
if(layout->root->type == UI_LAYOUT_HEADER) if(layout->root->type == UI_LAYOUT_HEADER)
uiBlockSetEmboss(block, UI_EMBOSSP); uiBlockSetEmboss(block, UI_EMBOSS);
if(!name) if(!name)
name= ""; name= "";
@ -869,7 +881,7 @@ static void ui_item_menu(uiLayout *layout, char *name, int icon, uiMenuCreateFun
h= UI_UNIT_Y; h= UI_UNIT_Y;
if(layout->root->type == UI_LAYOUT_HEADER) /* ugly .. */ if(layout->root->type == UI_LAYOUT_HEADER) /* ugly .. */
w -= 3; w -= 10;
if(icon) if(icon)
but= uiDefIconTextMenuBut(block, func, arg, icon, (char*)name, 0, 0, w, h, ""); but= uiDefIconTextMenuBut(block, func, arg, icon, (char*)name, 0, 0, w, h, "");
@ -1484,6 +1496,7 @@ static void ui_litem_layout_split(uiLayout *litem)
{ {
uiLayoutItemSplt *split= (uiLayoutItemSplt*)litem; uiLayoutItemSplt *split= (uiLayoutItemSplt*)litem;
uiItem *item; uiItem *item;
float percentage;
int itemh, x, y, w, tot=0, colw=0; int itemh, x, y, w, tot=0, colw=0;
x= litem->x; x= litem->x;
@ -1495,8 +1508,10 @@ static void ui_litem_layout_split(uiLayout *litem)
if(tot == 0) if(tot == 0)
return; return;
percentage= (split->percentage == 0.0f)? 1.0f/(float)tot: split->percentage;
w= (litem->w - (tot-1)*litem->space); w= (litem->w - (tot-1)*litem->space);
colw= w*split->percentage; colw= w*percentage;
colw= MAX2(colw, 0); colw= MAX2(colw, 0);
for(item=litem->items.first; item; item=item->next) { for(item=litem->items.first; item; item=item->next) {
@ -1506,7 +1521,7 @@ static void ui_litem_layout_split(uiLayout *litem)
x += colw; x += colw;
if(item->next) { if(item->next) {
colw= (w - (w*split->percentage))/(tot-1); colw= (w - (int)(w*percentage))/(tot-1);
colw= MAX2(colw, 0); colw= MAX2(colw, 0);
x += litem->space; x += litem->space;
@ -1637,7 +1652,7 @@ uiLayout *uiLayoutSplit(uiLayout *layout, float percentage)
split->litem.enabled= 1; split->litem.enabled= 1;
split->litem.context= layout->context; split->litem.context= layout->context;
split->litem.space= layout->root->style->columnspace; split->litem.space= layout->root->style->columnspace;
split->percentage= (percentage == 0.0f)? 0.5f: percentage; split->percentage= percentage;
BLI_addtail(&layout->items, split); BLI_addtail(&layout->items, split);
uiBlockSetCurLayout(layout->root->block, &split->litem); uiBlockSetCurLayout(layout->root->block, &split->litem);

@ -69,6 +69,7 @@
#define PNL_ACTIVE 2 #define PNL_ACTIVE 2
#define PNL_WAS_ACTIVE 4 #define PNL_WAS_ACTIVE 4
#define PNL_ANIM_ALIGN 8 #define PNL_ANIM_ALIGN 8
#define PNL_NEW_ADDED 16
typedef enum uiHandlePanelState { typedef enum uiHandlePanelState {
PANEL_STATE_DRAG, PANEL_STATE_DRAG,
@ -157,18 +158,20 @@ static void ui_panel_copy_offset(Panel *pa, Panel *papar)
pa->ofsy= papar->ofsy + papar->sizey-pa->sizey; pa->ofsy= papar->ofsy + papar->sizey-pa->sizey;
} }
Panel *uiBeginPanel(ARegion *ar, uiBlock *block, PanelType *pt, int *open) Panel *uiBeginPanel(ScrArea *sa, ARegion *ar, uiBlock *block, PanelType *pt, int *open)
{ {
uiStyle *style= U.uistyles.first; uiStyle *style= U.uistyles.first;
Panel *pa, *patab, *palast, *panext; Panel *pa, *patab, *palast, *panext;
char *panelname= pt->label; char *drawname= pt->label;
char *tabname= pt->label; char *idname= pt->idname;
char *tabname= pt->idname;
char *hookname= NULL; char *hookname= NULL;
int newpanel; int newpanel;
int align= panel_aligned(sa, ar);
/* check if Panel exists, then use that one */ /* check if Panel exists, then use that one */
for(pa=ar->panels.first; pa; pa=pa->next) for(pa=ar->panels.first; pa; pa=pa->next)
if(strncmp(pa->panelname, panelname, UI_MAX_NAME_STR)==0) if(strncmp(pa->panelname, idname, UI_MAX_NAME_STR)==0)
if(strncmp(pa->tabname, tabname, UI_MAX_NAME_STR)==0) if(strncmp(pa->tabname, tabname, UI_MAX_NAME_STR)==0)
break; break;
@ -181,13 +184,21 @@ Panel *uiBeginPanel(ARegion *ar, uiBlock *block, PanelType *pt, int *open)
/* new panel */ /* new panel */
pa= MEM_callocN(sizeof(Panel), "new panel"); pa= MEM_callocN(sizeof(Panel), "new panel");
pa->type= pt; pa->type= pt;
BLI_strncpy(pa->panelname, panelname, UI_MAX_NAME_STR); BLI_strncpy(pa->panelname, idname, UI_MAX_NAME_STR);
BLI_strncpy(pa->tabname, tabname, UI_MAX_NAME_STR); BLI_strncpy(pa->tabname, tabname, UI_MAX_NAME_STR);
if(pt->flag & PNL_DEFAULT_CLOSED) {
if(align == BUT_VERTICAL)
pa->flag |= PNL_CLOSEDY;
else
pa->flag |= PNL_CLOSEDX;
}
pa->ofsx= 0; pa->ofsx= 0;
pa->ofsy= style->panelouter; pa->ofsy= style->panelouter;
pa->sizex= 0; pa->sizex= 0;
pa->sizey= 0; pa->sizey= 0;
pa->runtime_flag |= PNL_NEW_ADDED;
BLI_addtail(&ar->panels, pa); BLI_addtail(&ar->panels, pa);
@ -207,6 +218,8 @@ Panel *uiBeginPanel(ARegion *ar, uiBlock *block, PanelType *pt, int *open)
} }
} }
BLI_strncpy(pa->drawname, drawname, UI_MAX_NAME_STR);
/* if a new panel is added, we insert it right after the panel /* if a new panel is added, we insert it right after the panel
* that was last added. this way new panels are inserted in the * that was last added. this way new panels are inserted in the
* right place between versions */ * right place between versions */
@ -235,7 +248,6 @@ Panel *uiBeginPanel(ARegion *ar, uiBlock *block, PanelType *pt, int *open)
if(pa->flag & PNL_CLOSED) return pa; if(pa->flag & PNL_CLOSED) return pa;
*open= 1; *open= 1;
pa->drawname[0]= 0; /* otherwise closes panels show wrong title */
return pa; return pa;
} }
@ -244,6 +256,12 @@ void uiEndPanel(uiBlock *block, int width, int height)
{ {
Panel *pa= block->panel; Panel *pa= block->panel;
if(pa->runtime_flag & PNL_NEW_ADDED) {
pa->runtime_flag &= ~PNL_NEW_ADDED;
pa->sizex= width;
pa->sizey= height;
}
else if(!(width == 0 || height == 0)) {
if(pa->sizex != width || pa->sizey != height) { if(pa->sizex != width || pa->sizey != height) {
pa->runtime_flag |= PNL_ANIM_ALIGN; pa->runtime_flag |= PNL_ANIM_ALIGN;
pa->ofsy += pa->sizey-height; pa->ofsy += pa->sizey-height;
@ -252,6 +270,7 @@ void uiEndPanel(uiBlock *block, int width, int height)
pa->sizex= width; pa->sizex= width;
pa->sizey= height; pa->sizey= height;
} }
}
#if 0 #if 0
void uiPanelToMouse(const bContext *C, Panel *pa) void uiPanelToMouse(const bContext *C, Panel *pa)

@ -1948,6 +1948,9 @@ uiBlock *ui_block_func_PUPMENU(bContext *C, uiPopupBlockHandle *handle, void *ar
md= decompose_menu_string(info->instr); md= decompose_menu_string(info->instr);
rows= md->nitems; rows= md->nitems;
if(rows<1)
rows= 1;
columns= 1; columns= 1;
/* size and location, title slightly bigger for bold */ /* size and location, title slightly bigger for bold */

@ -91,7 +91,7 @@ static uiStyle *ui_style_new(ListBase *styles, const char *name)
style->paneltitle.uifont_id= UIFONT_DEFAULT; style->paneltitle.uifont_id= UIFONT_DEFAULT;
style->paneltitle.points= 13; style->paneltitle.points= 13;
style->paneltitle.kerning= 0.5; style->paneltitle.kerning= 0.0;
style->paneltitle.shadow= 5; style->paneltitle.shadow= 5;
style->paneltitle.shadx= 2; style->paneltitle.shadx= 2;
style->paneltitle.shady= -2; style->paneltitle.shady= -2;
@ -100,7 +100,7 @@ static uiStyle *ui_style_new(ListBase *styles, const char *name)
style->grouplabel.uifont_id= UIFONT_DEFAULT; style->grouplabel.uifont_id= UIFONT_DEFAULT;
style->grouplabel.points= 12; style->grouplabel.points= 12;
style->grouplabel.kerning= 0.5; style->grouplabel.kerning= 0.0;
style->grouplabel.shadow= 3; style->grouplabel.shadow= 3;
style->grouplabel.shadx= 1; style->grouplabel.shadx= 1;
style->grouplabel.shady= -1; style->grouplabel.shady= -1;
@ -108,7 +108,7 @@ static uiStyle *ui_style_new(ListBase *styles, const char *name)
style->widgetlabel.uifont_id= UIFONT_DEFAULT; style->widgetlabel.uifont_id= UIFONT_DEFAULT;
style->widgetlabel.points= 11; style->widgetlabel.points= 11;
style->widgetlabel.kerning= 0.5; style->widgetlabel.kerning= 0.0;
style->widgetlabel.shadow= 3; style->widgetlabel.shadow= 3;
style->widgetlabel.shadx= 1; style->widgetlabel.shadx= 1;
style->widgetlabel.shady= -1; style->widgetlabel.shady= -1;
@ -117,7 +117,7 @@ static uiStyle *ui_style_new(ListBase *styles, const char *name)
style->widget.uifont_id= UIFONT_DEFAULT; style->widget.uifont_id= UIFONT_DEFAULT;
style->widget.points= 11; style->widget.points= 11;
style->widget.kerning= 0.5; style->widget.kerning= 0.0;
style->widget.shadowalpha= 0.25f; style->widget.shadowalpha= 0.25f;
style->columnspace= 5; style->columnspace= 5;

@ -1448,10 +1448,8 @@ void uiTemplateCurveMapping(uiLayout *layout, CurveMapping *cumap, int type)
void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, char *propname) void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, char *propname)
{ {
uiBlock *block;
uiLayout *uRow, *uSplit, *uCol; uiLayout *uRow, *uSplit, *uCol;
PropertyRNA *prop; PropertyRNA *prop;
StructRNA *type;
int groups, cols, layers; int groups, cols, layers;
int group, col, layer, row; int group, col, layer, row;

@ -40,6 +40,7 @@
#include "BLI_rect.h" #include "BLI_rect.h"
#include "BKE_context.h" #include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_global.h" #include "BKE_global.h"
#include "BKE_utildefines.h" #include "BKE_utildefines.h"
@ -874,9 +875,9 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB
and offset the text label to accomodate it */ and offset the text label to accomodate it */
if (but->flag & UI_HAS_ICON) { if (but->flag & UI_HAS_ICON) {
widget_draw_icon(but, but->icon, 0, rect); widget_draw_icon(but, but->icon+but->iconadd, 0, rect);
rect->xmin += UI_icon_get_width(but->icon); rect->xmin += UI_icon_get_width(but->icon+but->iconadd);
if(but->editstr || (but->flag & UI_TEXT_LEFT)) if(but->editstr || (but->flag & UI_TEXT_LEFT))
rect->xmin += 5; rect->xmin += 5;
@ -1118,8 +1119,6 @@ void ui_widget_color_init(ThemeUI *tui)
tui->wcol_menu_back= wcol_menu_back; tui->wcol_menu_back= wcol_menu_back;
tui->wcol_menu_item= wcol_menu_item; tui->wcol_menu_item= wcol_menu_item;
tui->wcol_box= wcol_box; tui->wcol_box= wcol_box;
tui->iconfile[0]= 0;
} }
/* ************ button callbacks, state ***************** */ /* ************ button callbacks, state ***************** */
@ -1552,6 +1551,76 @@ static void widget_numbut(uiWidgetColors *wcol, rcti *rect, int state, int round
} }
static int ui_link_bezier_points(rcti *rect, float coord_array[][2], int resol)
{
float dist, vec[4][2];
vec[0][0]= rect->xmin;
vec[0][1]= rect->ymin;
vec[3][0]= rect->xmax;
vec[3][1]= rect->ymax;
dist= 0.5f*ABS(vec[0][0] - vec[3][0]);
vec[1][0]= vec[0][0]+dist;
vec[1][1]= vec[0][1];
vec[2][0]= vec[3][0]-dist;
vec[2][1]= vec[3][1];
forward_diff_bezier(vec[0][0], vec[1][0], vec[2][0], vec[3][0], coord_array[0], resol, 2);
forward_diff_bezier(vec[0][1], vec[1][1], vec[2][1], vec[3][1], coord_array[0]+1, resol, 2);
return 1;
}
#define LINK_RESOL 24
void ui_draw_link_bezier(rcti *rect)
{
float coord_array[LINK_RESOL+1][2];
if(ui_link_bezier_points(rect, coord_array, LINK_RESOL)) {
float dist;
int i;
/* we can reuse the dist variable here to increment the GL curve eval amount*/
dist = 1.0f/(float)LINK_RESOL;
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
glBegin(GL_LINE_STRIP);
for(i=0; i<=LINK_RESOL; i++) {
glVertex2fv(coord_array[i]);
}
glEnd();
glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);
}
}
static void widget_link(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
if(but->flag & UI_SELECT) {
rcti rectlink;
UI_ThemeColor(TH_TEXT_HI);
rectlink.xmin= (rect->xmin+rect->xmax)/2;
rectlink.ymin= (rect->ymin+rect->ymax)/2;
rectlink.xmax= but->linkto[0];
rectlink.ymax= but->linkto[1];
ui_draw_link_bezier(&rectlink);
}
}
static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign) static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{ {
uiWidgetBase wtb, wtb1; uiWidgetBase wtb, wtb1;
@ -2080,6 +2149,13 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
wt= widget_type(UI_WTYPE_BOX); wt= widget_type(UI_WTYPE_BOX);
break; break;
case LINK:
case INLINK:
wt= widget_type(UI_WTYPE_ICON);
wt->custom= widget_link;
break;
case BUT_EXTRA: case BUT_EXTRA:
widget_draw_extra_mask(C, but, widget_type(UI_WTYPE_BOX), rect); widget_draw_extra_mask(C, but, widget_type(UI_WTYPE_BOX), rect);
break; break;

@ -75,7 +75,7 @@ static int theme_regionid= RGN_TYPE_WINDOW;
void ui_resources_init(void) void ui_resources_init(void)
{ {
UI_icons_init(BIFICONID_LAST+1); UI_icons_init(BIFICONID_LAST);
} }
void ui_resources_free(void) void ui_resources_free(void)
@ -156,6 +156,9 @@ char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
case SPACE_NODE: case SPACE_NODE:
ts= &btheme->tnode; ts= &btheme->tnode;
break; break;
case SPACE_LOGIC:
ts= &btheme->tlogic;
break;
default: default:
ts= &btheme->tv3d; ts= &btheme->tv3d;
break; break;
@ -398,6 +401,7 @@ static void ui_theme_init_new(bTheme *btheme)
ui_theme_init_new_do(&btheme->toops); ui_theme_init_new_do(&btheme->toops);
ui_theme_init_new_do(&btheme->ttime); ui_theme_init_new_do(&btheme->ttime);
ui_theme_init_new_do(&btheme->tnode); ui_theme_init_new_do(&btheme->tnode);
ui_theme_init_new_do(&btheme->tlogic);
} }
@ -608,6 +612,10 @@ void ui_theme_init_userdef(void)
SETCOL(btheme->tnode.syntaxv, 142, 138, 145, 255); /* generator */ SETCOL(btheme->tnode.syntaxv, 142, 138, 145, 255); /* generator */
SETCOL(btheme->tnode.syntaxc, 120, 145, 120, 255); /* group */ SETCOL(btheme->tnode.syntaxc, 120, 145, 120, 255); /* group */
/* space logic */
btheme->tlogic= btheme->tv3d;
SETCOL(btheme->tlogic.back, 100, 100, 100, 255);
} }
@ -1233,6 +1241,13 @@ void init_userdef_do_versions(void)
if(btheme->tui.wcol_num.outline[3]==0) if(btheme->tui.wcol_num.outline[3]==0)
ui_widget_color_init(&btheme->tui); ui_widget_color_init(&btheme->tui);
/* Logic editor theme, check for alpha==0 is safe, then color was never set */
if(btheme->tlogic.syntaxn[3]==0) {
/* re-uses syntax color storage */
btheme->tlogic= btheme->tv3d;
SETCOL(btheme->tlogic.back, 100, 100, 100, 255);
}
} }
} }

@ -1434,10 +1434,10 @@ void remake_editMesh(Scene *scene, Object *ob)
/* *************** Operator: separate parts *************/ /* *************** Operator: separate parts *************/
static EnumPropertyItem prop_separate_types[] = { static EnumPropertyItem prop_separate_types[] = {
{0, "SELECTED", "Selection", ""}, {0, "SELECTED", 0, "Selection", ""},
{1, "MATERIAL", "By Material", ""}, {1, "MATERIAL", 0, "By Material", ""},
{2, "LOOSE", "By loose parts", ""}, {2, "LOOSE", 0, "By loose parts", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* return 1: success */ /* return 1: success */

@ -51,11 +51,13 @@ editmesh_lib: generic (no UI, no menus) operations/evaluators for editmesh data
#include "BLI_editVert.h" #include "BLI_editVert.h"
#include "BKE_customdata.h" #include "BKE_customdata.h"
#include "BKE_context.h"
#include "BKE_global.h" #include "BKE_global.h"
#include "BKE_mesh.h" #include "BKE_mesh.h"
#include "BKE_utildefines.h" #include "BKE_utildefines.h"
#include "ED_mesh.h" #include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_view3d.h" #include "ED_view3d.h"
#include "mesh_intern.h" #include "mesh_intern.h"
@ -2278,3 +2280,10 @@ void EM_free_uv_vert_map(UvVertMap *vmap)
} }
} }
/* poll call for mesh operators requiring a view3d context */
int EM_view3d_poll(bContext *C)
{
if(ED_operator_editmesh(C) && ED_operator_view3d_active(C))
return 1;
return 0;
}

@ -458,10 +458,10 @@ typedef struct CutCurve {
#define KNIFE_MULTICUT 3 #define KNIFE_MULTICUT 3
static EnumPropertyItem knife_items[]= { static EnumPropertyItem knife_items[]= {
{KNIFE_EXACT, "EXACT", "Exact", ""}, {KNIFE_EXACT, "EXACT", 0, "Exact", ""},
{KNIFE_MIDPOINT, "MIDPOINTS", "Midpoints", ""}, {KNIFE_MIDPOINT, "MIDPOINTS", 0, "Midpoints", ""},
{KNIFE_MULTICUT, "MULTICUT", "Multicut", ""}, {KNIFE_MULTICUT, "MULTICUT", 0, "Multicut", ""},
{0, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* seg_intersect() Determines if and where a mouse trail intersects an EditEdge */ /* seg_intersect() Determines if and where a mouse trail intersects an EditEdge */

@ -655,13 +655,13 @@ FACES GROUP
*/ */
static EnumPropertyItem prop_simface_types[] = { static EnumPropertyItem prop_simface_types[] = {
{1, "MATERIAL", "Material", ""}, {1, "MATERIAL", 0, "Material", ""},
{2, "IMAGE", "Image", ""}, {2, "IMAGE", 0, "Image", ""},
{3, "AREA", "Area", ""}, {3, "AREA", 0, "Area", ""},
{4, "PERIMETER", "Perimeter", ""}, {4, "PERIMETER", 0, "Perimeter", ""},
{5, "NORMAL", "Normal", ""}, {5, "NORMAL", 0, "Normal", ""},
{6, "COPLANAR", "Co-planar", ""}, {6, "COPLANAR", 0, "Co-planar", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
@ -849,14 +849,14 @@ EDGE GROUP
*/ */
static EnumPropertyItem prop_simedge_types[] = { static EnumPropertyItem prop_simedge_types[] = {
{1, "LENGTH", "Length", ""}, {1, "LENGTH", 0, "Length", ""},
{2, "DIR", "Direction", ""}, {2, "DIR", 0, "Direction", ""},
{3, "FACE", "Amount of Vertices in Face", ""}, {3, "FACE", 0, "Amount of Vertices in Face", ""},
{4, "FACE_ANGLE", "Face Angles", ""}, {4, "FACE_ANGLE", 0, "Face Angles", ""},
{5, "CREASE", "Crease", ""}, {5, "CREASE", 0, "Crease", ""},
{6, "SEAM", "Seam", ""}, {6, "SEAM", 0, "Seam", ""},
{7, "SHARP", "Sharpness", ""}, {7, "SHARP", 0, "Sharpness", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int similar_edge_select__internal(Scene *scene, EditMesh *em, int mode) static int similar_edge_select__internal(Scene *scene, EditMesh *em, int mode)
@ -1105,10 +1105,10 @@ VERT GROUP
mode 3: same vertex groups mode 3: same vertex groups
*/ */
static EnumPropertyItem prop_simvertex_types[] = { static EnumPropertyItem prop_simvertex_types[] = {
{0, "NORMAL", "Normal", ""}, {0, "NORMAL", 0, "Normal", ""},
{1, "FACE", "Amount of Vertices in Face", ""}, {1, "FACE", 0, "Amount of Vertices in Face", ""},
{2, "VGROUP", "Vertex Groups", ""}, {2, "VGROUP", 0, "Vertex Groups", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
@ -3537,10 +3537,10 @@ static void mesh_selection_type(Scene *scene, EditMesh *em, int val)
} }
static EnumPropertyItem prop_mesh_edit_types[] = { static EnumPropertyItem prop_mesh_edit_types[] = {
{1, "VERT", "Vertices", ""}, {1, "VERT", 0, "Vertices", ""},
{2, "EDGE", "Edges", ""}, {2, "EDGE", 0, "Edges", ""},
{3, "FACE", "Faces", ""}, {3, "FACE", 0, "Faces", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int mesh_selection_type_exec(bContext *C, wmOperator *op) static int mesh_selection_type_exec(bContext *C, wmOperator *op)

@ -966,7 +966,7 @@ void MESH_OT_spin(wmOperatorType *ot)
/* api callbacks */ /* api callbacks */
ot->invoke= spin_mesh_invoke; ot->invoke= spin_mesh_invoke;
ot->exec= spin_mesh_exec; ot->exec= spin_mesh_exec;
ot->poll= ED_operator_editmesh; ot->poll= EM_view3d_poll;
/* flags */ /* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@ -1073,7 +1073,7 @@ void MESH_OT_screw(wmOperatorType *ot)
/* api callbacks */ /* api callbacks */
ot->invoke= screw_mesh_invoke; ot->invoke= screw_mesh_invoke;
ot->exec= screw_mesh_exec; ot->exec= screw_mesh_exec;
ot->poll= ED_operator_editmesh; ot->poll= EM_view3d_poll;
/* flags */ /* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@ -1273,14 +1273,14 @@ void delete_mesh(Object *obedit, EditMesh *em, wmOperator *op, int event)
/* Note, these values must match delete_mesh() event values */ /* Note, these values must match delete_mesh() event values */
static EnumPropertyItem prop_mesh_delete_types[] = { static EnumPropertyItem prop_mesh_delete_types[] = {
{10,"VERT", "Vertices", ""}, {10,"VERT", 0, "Vertices", ""},
{1, "EDGE", "Edges", ""}, {1, "EDGE", 0, "Edges", ""},
{2, "FACE", "Faces", ""}, {2, "FACE", 0, "Faces", ""},
{3, "ALL", "All", ""}, {3, "ALL", 0, "All", ""},
{4, "EDGE_FACE","Edges & Faces", ""}, {4, "EDGE_FACE",0, "Edges & Faces", ""},
{5, "ONLY_FACE","Only Faces", ""}, {5, "ONLY_FACE",0, "Only Faces", ""},
{6, "EDGE_LOOP","Edge Loop", ""}, {6, "EDGE_LOOP",0, "Edge Loop", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int delete_mesh_exec(bContext *C, wmOperator *op) static int delete_mesh_exec(bContext *C, wmOperator *op)
@ -4656,7 +4656,7 @@ void mesh_set_face_flags(EditMesh *em, short mode)
{ {
EditFace *efa; EditFace *efa;
MTFace *tface; MTFace *tface;
short m_tex=0, m_tiles=0, m_shared=0, short m_tex=0, m_shared=0,
m_light=0, m_invis=0, m_collision=0, m_light=0, m_invis=0, m_collision=0,
m_twoside=0, m_obcolor=0, m_halo=0, m_twoside=0, m_obcolor=0, m_halo=0,
m_billboard=0, m_shadow=0, m_text=0, m_billboard=0, m_shadow=0, m_text=0,
@ -4669,7 +4669,6 @@ void mesh_set_face_flags(EditMesh *em, short mode)
// } // }
add_numbut(0, TOG|SHO, "Texture", 0, 0, &m_tex, NULL); add_numbut(0, TOG|SHO, "Texture", 0, 0, &m_tex, NULL);
add_numbut(1, TOG|SHO, "Tiles", 0, 0, &m_tiles, NULL);
add_numbut(2, TOG|SHO, "Light", 0, 0, &m_light, NULL); add_numbut(2, TOG|SHO, "Light", 0, 0, &m_light, NULL);
add_numbut(3, TOG|SHO, "Invisible", 0, 0, &m_invis, NULL); add_numbut(3, TOG|SHO, "Invisible", 0, 0, &m_invis, NULL);
add_numbut(4, TOG|SHO, "Collision", 0, 0, &m_collision, NULL); add_numbut(4, TOG|SHO, "Collision", 0, 0, &m_collision, NULL);
@ -4691,7 +4690,6 @@ void mesh_set_face_flags(EditMesh *em, short mode)
m_billboard = 0; m_billboard = 0;
if (m_tex) flag |= TF_TEX; if (m_tex) flag |= TF_TEX;
if (m_tiles) flag |= TF_TILES;
if (m_shared) flag |= TF_SHAREDCOL; if (m_shared) flag |= TF_SHAREDCOL;
if (m_light) flag |= TF_LIGHT; if (m_light) flag |= TF_LIGHT;
if (m_invis) flag |= TF_INVISIBLE; if (m_invis) flag |= TF_INVISIBLE;
@ -4997,7 +4995,7 @@ void MESH_OT_rip(wmOperatorType *ot)
/* api callbacks */ /* api callbacks */
ot->invoke= mesh_rip_invoke; ot->invoke= mesh_rip_invoke;
ot->poll= ED_operator_editmesh; // XXX + v3d! ot->poll= EM_view3d_poll;
/* flags */ /* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@ -6646,11 +6644,11 @@ static int subdivs_exec(bContext *C, wmOperator *op)
void MESH_OT_subdivs(wmOperatorType *ot) void MESH_OT_subdivs(wmOperatorType *ot)
{ {
static EnumPropertyItem type_items[]= { static EnumPropertyItem type_items[]= {
{0, "SIMPLE", "Simple", ""}, {0, "SIMPLE", 0, "Simple", ""},
{1, "MULTI", "Multi", ""}, {1, "MULTI", 0, "Multi", ""},
{2, "FRACTAL", "Fractal", ""}, {2, "FRACTAL", 0, "Fractal", ""},
{3, "SMOOTH", "Smooth", ""}, {3, "SMOOTH", 0, "Smooth", ""},
{0, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "subdivs"; ot->name= "subdivs";

@ -135,6 +135,7 @@ extern int convex(float *v1, float *v2, float *v3, float *v4);
extern struct EditFace *EM_face_from_faces(EditMesh *em, struct EditFace *efa1, extern struct EditFace *EM_face_from_faces(EditMesh *em, struct EditFace *efa1,
struct EditFace *efa2, int i1, int i2, int i3, int i4); struct EditFace *efa2, int i1, int i2, int i3, int i4);
extern int EM_view3d_poll(struct bContext *C);
/* ******************* editmesh_loop.c */ /* ******************* editmesh_loop.c */

@ -244,17 +244,17 @@ void ED_object_base_init_from_view(bContext *C, Base *base)
/* ******************* add object operator ****************** */ /* ******************* add object operator ****************** */
static EnumPropertyItem prop_object_types[] = { static EnumPropertyItem prop_object_types[] = {
{OB_EMPTY, "EMPTY", "Empty", ""}, {OB_EMPTY, "EMPTY", 0, "Empty", ""},
{OB_MESH, "MESH", "Mesh", ""}, {OB_MESH, "MESH", 0, "Mesh", ""},
{OB_CURVE, "CURVE", "Curve", ""}, {OB_CURVE, "CURVE", 0, "Curve", ""},
{OB_SURF, "SURFACE", "Surface", ""}, {OB_SURF, "SURFACE", 0, "Surface", ""},
{OB_FONT, "TEXT", "Text", ""}, {OB_FONT, "TEXT", 0, "Text", ""},
{OB_MBALL, "META", "Meta", ""}, {OB_MBALL, "META", 0, "Meta", ""},
{OB_LAMP, "LAMP", "Lamp", ""}, {OB_LAMP, "LAMP", 0, "Lamp", ""},
{OB_CAMERA, "CAMERA", "Camera", ""}, {OB_CAMERA, "CAMERA", 0, "Camera", ""},
{OB_ARMATURE, "ARMATURE", "Armature", ""}, {OB_ARMATURE, "ARMATURE", 0, "Armature", ""},
{OB_LATTICE, "LATTICE", "Lattice", ""}, {OB_LATTICE, "LATTICE", 0, "Lattice", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
@ -321,16 +321,16 @@ void OBJECT_OT_object_add(wmOperatorType *ot)
/* ****** work both in and outside editmode ****** */ /* ****** work both in and outside editmode ****** */
static EnumPropertyItem prop_mesh_types[] = { static EnumPropertyItem prop_mesh_types[] = {
{0, "PLANE", "Plane", ""}, {0, "PLANE", 0, "Plane", ""},
{1, "CUBE", "Cube", ""}, {1, "CUBE", 0, "Cube", ""},
{2, "CIRCLE", "Circle", ""}, {2, "CIRCLE", 0, "Circle", ""},
{3, "UVSPHERE", "UVsphere", ""}, {3, "UVSPHERE", 0, "UVsphere", ""},
{4, "ICOSPHERE", "Icosphere", ""}, {4, "ICOSPHERE", 0, "Icosphere", ""},
{5, "CYLINDER", "Cylinder", ""}, {5, "CYLINDER", 0, "Cylinder", ""},
{6, "CONE", "Cone", ""}, {6, "CONE", 0, "Cone", ""},
{7, "GRID", "Grid", ""}, {7, "GRID", 0, "Grid", ""},
{8, "MONKEY", "Monkey", ""}, {8, "MONKEY", 0, "Monkey", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int object_add_mesh_exec(bContext *C, wmOperator *op) static int object_add_mesh_exec(bContext *C, wmOperator *op)
@ -405,12 +405,12 @@ void OBJECT_OT_mesh_add(wmOperatorType *ot)
} }
static EnumPropertyItem prop_curve_types[] = { static EnumPropertyItem prop_curve_types[] = {
{CU_BEZIER|CU_2D|CU_PRIM_CURVE, "BEZIER_CURVE", "Bezier Curve", ""}, {CU_BEZIER|CU_2D|CU_PRIM_CURVE, "BEZIER_CURVE", 0, "Bezier Curve", ""},
{CU_BEZIER|CU_2D|CU_PRIM_CIRCLE, "BEZIER_CIRCLE", "Bezier Circle", ""}, {CU_BEZIER|CU_2D|CU_PRIM_CIRCLE, "BEZIER_CIRCLE", 0, "Bezier Circle", ""},
{CU_NURBS|CU_2D|CU_PRIM_CURVE, "NURBS_CURVE", "NURBS Curve", ""}, {CU_NURBS|CU_2D|CU_PRIM_CURVE, "NURBS_CURVE", 0, "NURBS Curve", ""},
{CU_NURBS|CU_2D|CU_PRIM_CIRCLE, "NURBS_CIRCLE", "NURBS Circle", ""}, {CU_NURBS|CU_2D|CU_PRIM_CIRCLE, "NURBS_CIRCLE", 0, "NURBS Circle", ""},
{CU_NURBS|CU_2D|CU_PRIM_PATH, "PATH", "Path", ""}, {CU_NURBS|CU_2D|CU_PRIM_PATH, "PATH", 0, "Path", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int object_add_curve_exec(bContext *C, wmOperator *op) static int object_add_curve_exec(bContext *C, wmOperator *op)
@ -479,13 +479,13 @@ void OBJECT_OT_curve_add(wmOperatorType *ot)
} }
static EnumPropertyItem prop_surface_types[]= { static EnumPropertyItem prop_surface_types[]= {
{CU_PRIM_CURVE|CU_NURBS, "NURBS_CURVE", "NURBS Curve", ""}, {CU_PRIM_CURVE|CU_NURBS, "NURBS_CURVE", 0, "NURBS Curve", ""},
{CU_PRIM_CIRCLE|CU_NURBS, "NURBS_CIRCLE", "NURBS Circle", ""}, {CU_PRIM_CIRCLE|CU_NURBS, "NURBS_CIRCLE", 0, "NURBS Circle", ""},
{CU_PRIM_PATCH|CU_NURBS, "NURBS_SURFACE", "NURBS Surface", ""}, {CU_PRIM_PATCH|CU_NURBS, "NURBS_SURFACE", 0, "NURBS Surface", ""},
{CU_PRIM_TUBE|CU_NURBS, "NURBS_TUBE", "NURBS Tube", ""}, {CU_PRIM_TUBE|CU_NURBS, "NURBS_TUBE", 0, "NURBS Tube", ""},
{CU_PRIM_SPHERE|CU_NURBS, "NURBS_SPHERE", "NURBS Sphere", ""}, {CU_PRIM_SPHERE|CU_NURBS, "NURBS_SPHERE", 0, "NURBS Sphere", ""},
{CU_PRIM_DONUT|CU_NURBS, "NURBS_DONUT", "NURBS Donut", ""}, {CU_PRIM_DONUT|CU_NURBS, "NURBS_DONUT", 0, "NURBS Donut", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int object_add_surface_exec(bContext *C, wmOperator *op) static int object_add_surface_exec(bContext *C, wmOperator *op)
@ -1366,10 +1366,10 @@ void add_hook_menu(Scene *scene, View3D *v3d)
/* ******************** clear parent operator ******************* */ /* ******************** clear parent operator ******************* */
static EnumPropertyItem prop_clear_parent_types[] = { static EnumPropertyItem prop_clear_parent_types[] = {
{0, "CLEAR", "Clear Parent", ""}, {0, "CLEAR", 0, "Clear Parent", ""},
{1, "CLEAR_KEEP_TRANSFORM", "Clear and Keep Transformation (Clear Track)", ""}, {1, "CLEAR_KEEP_TRANSFORM", 0, "Clear and Keep Transformation (Clear Track)", ""},
{2, "CLEAR_INVERSE", "Clear Parent Inverse", ""}, {2, "CLEAR_INVERSE", 0, "Clear Parent Inverse", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* note, poll should check for editable scene */ /* note, poll should check for editable scene */
@ -1422,9 +1422,9 @@ void OBJECT_OT_parent_clear(wmOperatorType *ot)
static EnumPropertyItem prop_clear_track_types[] = { static EnumPropertyItem prop_clear_track_types[] = {
{0, "CLEAR", "Clear Track", ""}, {0, "CLEAR", 0, "Clear Track", ""},
{1, "CLEAR_KEEP_TRANSFORM", "Clear and Keep Transformation (Clear Track)", ""}, {1, "CLEAR_KEEP_TRANSFORM", 0, "Clear and Keep Transformation (Clear Track)", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* note, poll should check for editable scene */ /* note, poll should check for editable scene */
@ -1471,9 +1471,9 @@ void OBJECT_OT_track_clear(wmOperatorType *ot)
/* *****************Selection Operators******************* */ /* *****************Selection Operators******************* */
static EnumPropertyItem prop_select_types[] = { static EnumPropertyItem prop_select_types[] = {
{0, "EXCLUSIVE", "Exclusive", ""}, {0, "EXCLUSIVE", 0, "Exclusive", ""},
{1, "EXTEND", "Extend", ""}, {1, "EXTEND", 0, "Extend", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* ****** Select by Type ****** */ /* ****** Select by Type ****** */
@ -1526,13 +1526,13 @@ void OBJECT_OT_select_by_type(wmOperatorType *ot)
/* ****** selection by links *******/ /* ****** selection by links *******/
static EnumPropertyItem prop_select_linked_types[] = { static EnumPropertyItem prop_select_linked_types[] = {
{1, "IPO", "Object IPO", ""}, // XXX depreceated animation system stuff... {1, "IPO", 0, "Object IPO", ""}, // XXX depreceated animation system stuff...
{2, "OBDATA", "Ob Data", ""}, {2, "OBDATA", 0, "Ob Data", ""},
{3, "MATERIAL", "Material", ""}, {3, "MATERIAL", 0, "Material", ""},
{4, "TEXTURE", "Texture", ""}, {4, "TEXTURE", 0, "Texture", ""},
{5, "DUPGROUP", "Dupligroup", ""}, {5, "DUPGROUP", 0, "Dupligroup", ""},
{6, "PARTICLE", "Particle System", ""}, {6, "PARTICLE", 0, "Particle System", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int object_select_linked_exec(bContext *C, wmOperator *op) static int object_select_linked_exec(bContext *C, wmOperator *op)
@ -2085,9 +2085,9 @@ void OBJECT_OT_restrictview_clear(wmOperatorType *ot)
} }
static EnumPropertyItem prop_set_restrictview_types[] = { static EnumPropertyItem prop_set_restrictview_types[] = {
{0, "SELECTED", "Selected", ""}, {0, "SELECTED", 0, "Selected", ""},
{1, "UNSELECTED", "Unselected ", ""}, {1, "UNSELECTED", 0, "Unselected ", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int object_restrictview_set_exec(bContext *C, wmOperator *op) static int object_restrictview_set_exec(bContext *C, wmOperator *op)
@ -2462,16 +2462,16 @@ void make_proxy(Scene *scene)
#define PAR_TRIA 8 #define PAR_TRIA 8
static EnumPropertyItem prop_make_parent_types[] = { static EnumPropertyItem prop_make_parent_types[] = {
{PAR_OBJECT, "OBJECT", "Object", ""}, {PAR_OBJECT, "OBJECT", 0, "Object", ""},
{PAR_ARMATURE, "ARMATURE", "Armature Deform", ""}, {PAR_ARMATURE, "ARMATURE", 0, "Armature Deform", ""},
{PAR_BONE, "BONE", "Bone", ""}, {PAR_BONE, "BONE", 0, "Bone", ""},
{PAR_CURVE, "CURVE", "Curve Deform", ""}, {PAR_CURVE, "CURVE", 0, "Curve Deform", ""},
{PAR_FOLLOW, "FOLLOW", "Follow Path", ""}, {PAR_FOLLOW, "FOLLOW", 0, "Follow Path", ""},
{PAR_PATH_CONST, "PATH_CONST", "Path Constraint", ""}, {PAR_PATH_CONST, "PATH_CONST", 0, "Path Constraint", ""},
{PAR_LATTICE, "LATTICE", "Lattice Deform", ""}, {PAR_LATTICE, "LATTICE", 0, "Lattice Deform", ""},
{PAR_VERTEX, "VERTEX", "Vertex", ""}, {PAR_VERTEX, "VERTEX", 0, "Vertex", ""},
{PAR_TRIA, "TRIA", "Triangle", ""}, {PAR_TRIA, "TRIA", 0, "Triangle", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int test_parent_loop(Object *par, Object *ob) static int test_parent_loop(Object *par, Object *ob)
@ -2655,10 +2655,10 @@ void OBJECT_OT_parent_set(wmOperatorType *ot)
/* *** make track ***** */ /* *** make track ***** */
static EnumPropertyItem prop_make_track_types[] = { static EnumPropertyItem prop_make_track_types[] = {
{1, "TRACKTO", "TrackTo Constraint", ""}, {1, "TRACKTO", 0, "TrackTo Constraint", ""},
{2, "LOCKTRACK", "LockTrack Constraint", ""}, {2, "LOCKTRACK", 0, "LockTrack Constraint", ""},
{3, "OLDTRACK", "Old Track", ""}, {3, "OLDTRACK", 0, "Old Track", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int track_set_exec(bContext *C, wmOperator *op) static int track_set_exec(bContext *C, wmOperator *op)
@ -2831,10 +2831,10 @@ void OBJECT_OT_dupli_set_real(wmOperatorType *ot)
/* ******************* Set Object Center ********************** */ /* ******************* Set Object Center ********************** */
static EnumPropertyItem prop_set_center_types[] = { static EnumPropertyItem prop_set_center_types[] = {
{0, "CENTER", "ObData to Center", "Move object data around Object center"}, {0, "CENTER", 0, "ObData to Center", "Move object data around Object center"},
{1, "CENTERNEW", "Center New", "Move Object center to center of object data"}, {1, "CENTERNEW", 0, "Center New", "Move Object center to center of object data"},
{2, "CENTERCURSOR", "Center Cursor", "Move Object Center to position of the 3d cursor"}, {2, "CENTERCURSOR", 0, "Center Cursor", "Move Object Center to position of the 3d cursor"},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* 0 == do center, 1 == center new, 2 == center cursor */ /* 0 == do center, 1 == center new, 2 == center cursor */

@ -2347,8 +2347,8 @@ void PARTICLE_OT_brush_radial_control(wmOperatorType *ot)
enum { DEL_PARTICLE, DEL_KEY }; enum { DEL_PARTICLE, DEL_KEY };
static EnumPropertyItem delete_type_items[]= { static EnumPropertyItem delete_type_items[]= {
{DEL_PARTICLE, "PARTICLE", "Particle", ""}, {DEL_PARTICLE, "PARTICLE", 0, "Particle", ""},
{DEL_KEY, "KEY", "Key", ""}, {DEL_KEY, "KEY", 0, "Key", ""},
{0, NULL, NULL}}; {0, NULL, NULL}};
static void set_delete_particle(PEData *data, int pa_index) static void set_delete_particle(PEData *data, int pa_index)
@ -2563,15 +2563,15 @@ void PARTICLE_OT_mirror(wmOperatorType *ot)
/*********************** set brush operator **********************/ /*********************** set brush operator **********************/
static EnumPropertyItem brush_type_items[]= { static EnumPropertyItem brush_type_items[]= {
{PE_BRUSH_NONE, "NONE", "None", ""}, {PE_BRUSH_NONE, "NONE", 0, "None", ""},
{PE_BRUSH_COMB, "COMB", "Comb", ""}, {PE_BRUSH_COMB, "COMB", 0, "Comb", ""},
{PE_BRUSH_SMOOTH, "SMOOTH", "Smooth", ""}, {PE_BRUSH_SMOOTH, "SMOOTH", 0, "Smooth", ""},
{PE_BRUSH_WEIGHT, "WEIGHT", "Weight", ""}, {PE_BRUSH_WEIGHT, "WEIGHT", 0, "Weight", ""},
{PE_BRUSH_ADD, "ADD", "Add", ""}, {PE_BRUSH_ADD, "ADD", 0, "Add", ""},
{PE_BRUSH_LENGTH, "LENGTH", "Length", ""}, {PE_BRUSH_LENGTH, "LENGTH", 0, "Length", ""},
{PE_BRUSH_PUFF, "PUFF", "Puff", ""}, {PE_BRUSH_PUFF, "PUFF", 0, "Puff", ""},
{PE_BRUSH_CUT, "CUT", "Cut", ""}, {PE_BRUSH_CUT, "CUT", 0, "Cut", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int set_brush_exec(bContext *C, wmOperator *op) static int set_brush_exec(bContext *C, wmOperator *op)

@ -1048,6 +1048,7 @@ static char *windowtype_pup(void)
"|Outliner %x3" //232 "|Outliner %x3" //232
"|Buttons Window %x4" //251 "|Buttons Window %x4" //251
"|Node Editor %x16" "|Node Editor %x16"
"|Logic Editor %x17"
"|%l" //254 "|%l" //254
"|File Browser %x5" //290 "|File Browser %x5" //290
@ -1106,6 +1107,7 @@ int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco)
void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *context) void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *context)
{ {
ScrArea *sa= CTX_wm_area(C);
uiStyle *style= U.uistyles.first; uiStyle *style= U.uistyles.first;
uiBlock *block; uiBlock *block;
PanelType *pt; PanelType *pt;
@ -1143,7 +1145,7 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex
/* draw panel */ /* draw panel */
if(pt->draw && (!pt->poll || pt->poll(C, pt))) { if(pt->draw && (!pt->poll || pt->poll(C, pt))) {
block= uiBeginBlock(C, ar, pt->idname, UI_EMBOSS); block= uiBeginBlock(C, ar, pt->idname, UI_EMBOSS);
panel= uiBeginPanel(ar, block, pt, &open); panel= uiBeginPanel(sa, ar, block, pt, &open);
if(vertical) if(vertical)
y -= header; y -= header;
@ -1161,7 +1163,6 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex
} }
if(open) { if(open) {
panel->type= pt;
panel->layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, panel->layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL,
style->panelspace, 0, w-2*style->panelspace, em, style); style->panelspace, 0, w-2*style->panelspace, em, style);
@ -1173,8 +1174,10 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex
yco -= 2*style->panelspace; yco -= 2*style->panelspace;
uiEndPanel(block, w, -yco); uiEndPanel(block, w, -yco);
} }
else else {
yco= 0; yco= 0;
uiEndPanel(block, w, 0);
}
uiEndBlock(C, block); uiEndBlock(C, block);

@ -179,6 +179,11 @@ int ED_operator_image_active(bContext *C)
return ed_spacetype_test(C, SPACE_IMAGE); return ed_spacetype_test(C, SPACE_IMAGE);
} }
int ED_operator_logic_active(bContext *C)
{
return ed_spacetype_test(C, SPACE_LOGIC);
}
int ED_operator_object_active(bContext *C) int ED_operator_object_active(bContext *C)
{ {
return NULL != CTX_data_active_object(C); return NULL != CTX_data_active_object(C);
@ -1192,9 +1197,9 @@ static int area_split_modal(bContext *C, wmOperator *op, wmEvent *event)
} }
static EnumPropertyItem prop_direction_items[] = { static EnumPropertyItem prop_direction_items[] = {
{'h', "HORIZONTAL", "Horizontal", ""}, {'h', "HORIZONTAL", 0, "Horizontal", ""},
{'v', "VERTICAL", "Vertical", ""}, {'v', "VERTICAL", 0, "Vertical", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
void SCREEN_OT_area_split(wmOperatorType *ot) void SCREEN_OT_area_split(wmOperatorType *ot)
{ {

@ -4517,6 +4517,9 @@ static int paint_init(bContext *C, wmOperator *op)
pop->ps.ar= CTX_wm_region(C); pop->ps.ar= CTX_wm_region(C);
/* intialize brush */ /* intialize brush */
if(!settings->imapaint.brush)
return 0;
pop->s.brush = settings->imapaint.brush; pop->s.brush = settings->imapaint.brush;
pop->s.tool = settings->imapaint.tool; pop->s.tool = settings->imapaint.tool;
if(pop->mode == PAINT_MODE_3D && (pop->s.tool == PAINT_TOOL_CLONE)) if(pop->mode == PAINT_MODE_3D && (pop->s.tool == PAINT_TOOL_CLONE))
@ -4536,6 +4539,10 @@ static int paint_init(bContext *C, wmOperator *op)
if (!pop->s.ob || !(pop->s.ob->lay & pop->ps.v3d->lay)) return 0; if (!pop->s.ob || !(pop->s.ob->lay & pop->ps.v3d->lay)) return 0;
pop->s.me = get_mesh(pop->s.ob); pop->s.me = get_mesh(pop->s.ob);
if (!pop->s.me) return 0; if (!pop->s.me) return 0;
/* Dont allow brush size below 2 */
if (pop->ps.brush && pop->ps.brush->size<=1)
pop->ps.brush->size = 2;
} }
else { else {
pop->s.image = pop->s.sima->image; pop->s.image = pop->s.sima->image;
@ -4548,10 +4555,6 @@ static int paint_init(bContext *C, wmOperator *op)
return 0; return 0;
} }
/* Dont allow brush size below 2 */
if (pop->ps.brush->size<=1)
pop->ps.brush->size = 2;
} }
/* note, if we have no UVs on the derived mesh, then we must return here */ /* note, if we have no UVs on the derived mesh, then we must return here */

@ -1245,10 +1245,10 @@ static int sculpt_brush_curve_preset_exec(bContext *C, wmOperator *op)
static void SCULPT_OT_brush_curve_preset(wmOperatorType *ot) static void SCULPT_OT_brush_curve_preset(wmOperatorType *ot)
{ {
static EnumPropertyItem prop_mode_items[] = { static EnumPropertyItem prop_mode_items[] = {
{BRUSH_PRESET_SHARP, "SHARP", "Sharp Curve", ""}, {BRUSH_PRESET_SHARP, "SHARP", 0, "Sharp Curve", ""},
{BRUSH_PRESET_SMOOTH, "SMOOTH", "Smooth Curve", ""}, {BRUSH_PRESET_SMOOTH, "SMOOTH", 0, "Smooth Curve", ""},
{BRUSH_PRESET_MAX, "MAX", "Max Curve", ""}, {BRUSH_PRESET_MAX, "MAX", 0, "Max Curve", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
ot->name= "Preset"; ot->name= "Preset";
ot->idname= "SCULPT_OT_brush_curve_preset"; ot->idname= "SCULPT_OT_brush_curve_preset";

@ -369,10 +369,10 @@ void ACT_OT_keyframes_paste (wmOperatorType *ot)
/* defines for insert keyframes tool */ /* defines for insert keyframes tool */
EnumPropertyItem prop_actkeys_insertkey_types[] = { EnumPropertyItem prop_actkeys_insertkey_types[] = {
{1, "ALL", "All Channels", ""}, {1, "ALL", 0, "All Channels", ""},
{2, "SEL", "Only Selected Channels", ""}, {2, "SEL", 0, "Only Selected Channels", ""},
{3, "GROUP", "In Active Group", ""}, // xxx not in all cases {3, "GROUP", 0, "In Active Group", ""}, // xxx not in all cases
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* this function is responsible for snapping keyframes to frame-times */ /* this function is responsible for snapping keyframes to frame-times */
@ -799,9 +799,9 @@ void ACT_OT_keyframes_sample (wmOperatorType *ot)
/* defines for set extrapolation-type for selected keyframes tool */ /* defines for set extrapolation-type for selected keyframes tool */
EnumPropertyItem prop_actkeys_expo_types[] = { EnumPropertyItem prop_actkeys_expo_types[] = {
{FCURVE_EXTRAPOLATE_CONSTANT, "CONSTANT", "Constant Extrapolation", ""}, {FCURVE_EXTRAPOLATE_CONSTANT, "CONSTANT", 0, "Constant Extrapolation", ""},
{FCURVE_EXTRAPOLATE_LINEAR, "LINEAR", "Linear Extrapolation", ""}, {FCURVE_EXTRAPOLATE_LINEAR, "LINEAR", 0, "Linear Extrapolation", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* this function is responsible for setting extrapolation mode for keyframes */ /* this function is responsible for setting extrapolation mode for keyframes */
@ -1089,11 +1089,11 @@ void ACT_OT_keyframes_cfrasnap (wmOperatorType *ot)
/* defines for snap keyframes tool */ /* defines for snap keyframes tool */
EnumPropertyItem prop_actkeys_snap_types[] = { EnumPropertyItem prop_actkeys_snap_types[] = {
{ACTKEYS_SNAP_CFRA, "CFRA", "Current frame", ""}, {ACTKEYS_SNAP_CFRA, "CFRA", 0, "Current frame", ""},
{ACTKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", "Nearest Frame", ""}, // XXX as single entry? {ACTKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", 0, "Nearest Frame", ""}, // XXX as single entry?
{ACTKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", "Nearest Second", ""}, // XXX as single entry? {ACTKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", 0, "Nearest Second", ""}, // XXX as single entry?
{ACTKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", "Nearest Marker", ""}, {ACTKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", 0, "Nearest Marker", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* this function is responsible for snapping keyframes to frame-times */ /* this function is responsible for snapping keyframes to frame-times */
@ -1188,11 +1188,11 @@ void ACT_OT_keyframes_snap (wmOperatorType *ot)
/* defines for mirror keyframes tool */ /* defines for mirror keyframes tool */
EnumPropertyItem prop_actkeys_mirror_types[] = { EnumPropertyItem prop_actkeys_mirror_types[] = {
{ACTKEYS_MIRROR_CFRA, "CFRA", "Current frame", ""}, {ACTKEYS_MIRROR_CFRA, "CFRA", 0, "Current frame", ""},
{ACTKEYS_MIRROR_YAXIS, "YAXIS", "Vertical Axis", ""}, {ACTKEYS_MIRROR_YAXIS, "YAXIS", 0, "Vertical Axis", ""},
{ACTKEYS_MIRROR_XAXIS, "XAXIS", "Horizontal Axis", ""}, {ACTKEYS_MIRROR_XAXIS, "XAXIS", 0, "Horizontal Axis", ""},
{ACTKEYS_MIRROR_MARKER, "MARKER", "First Selected Marker", ""}, {ACTKEYS_MIRROR_MARKER, "MARKER", 0, "First Selected Marker", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* this function is responsible for mirroring keyframes */ /* this function is responsible for mirroring keyframes */

@ -374,11 +374,11 @@ void ACT_OT_keyframes_select_border(wmOperatorType *ot)
/* defines for column-select mode */ /* defines for column-select mode */
static EnumPropertyItem prop_column_select_types[] = { static EnumPropertyItem prop_column_select_types[] = {
{ACTKEYS_COLUMNSEL_KEYS, "KEYS", "On Selected Keyframes", ""}, {ACTKEYS_COLUMNSEL_KEYS, "KEYS", 0, "On Selected Keyframes", ""},
{ACTKEYS_COLUMNSEL_CFRA, "CFRA", "On Current Frame", ""}, {ACTKEYS_COLUMNSEL_CFRA, "CFRA", 0, "On Current Frame", ""},
{ACTKEYS_COLUMNSEL_MARKERS_COLUMN, "MARKERS_COLUMN", "On Selected Markers", ""}, {ACTKEYS_COLUMNSEL_MARKERS_COLUMN, "MARKERS_COLUMN", 0, "On Selected Markers", ""},
{ACTKEYS_COLUMNSEL_MARKERS_BETWEEN, "MARKERS_BETWEEN", "Between Min/Max Selected Markers", ""}, {ACTKEYS_COLUMNSEL_MARKERS_BETWEEN, "MARKERS_BETWEEN", 0, "Between Min/Max Selected Markers", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* ------------------- */ /* ------------------- */
@ -584,11 +584,11 @@ void ACT_OT_keyframes_select_column (wmOperatorType *ot)
/* defines for left-right select tool */ /* defines for left-right select tool */
static EnumPropertyItem prop_actkeys_leftright_select_types[] = { static EnumPropertyItem prop_actkeys_leftright_select_types[] = {
{ACTKEYS_LRSEL_TEST, "CHECK", "Check if Select Left or Right", ""}, {ACTKEYS_LRSEL_TEST, "CHECK", 0, "Check if Select Left or Right", ""},
{ACTKEYS_LRSEL_NONE, "OFF", "Don't select", ""}, {ACTKEYS_LRSEL_NONE, "OFF", 0, "Don't select", ""},
{ACTKEYS_LRSEL_LEFT, "LEFT", "Before current frame", ""}, {ACTKEYS_LRSEL_LEFT, "LEFT", 0, "Before current frame", ""},
{ACTKEYS_LRSEL_RIGHT, "RIGHT", "After current frame", ""}, {ACTKEYS_LRSEL_RIGHT, "RIGHT", 0, "After current frame", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* sensitivity factor for frame-selections */ /* sensitivity factor for frame-selections */

@ -73,6 +73,7 @@ void ED_spacetypes_init(void)
ED_spacetype_script(); ED_spacetype_script();
ED_spacetype_text(); ED_spacetype_text();
ED_spacetype_sequencer(); ED_spacetype_sequencer();
ED_spacetype_logic();
// ... // ...
/* register operator types for screen and all spaces */ /* register operator types for screen and all spaces */

@ -1001,9 +1001,9 @@ void GRAPHEDIT_OT_keyframes_sample (wmOperatorType *ot)
/* defines for set extrapolation-type for selected keyframes tool */ /* defines for set extrapolation-type for selected keyframes tool */
EnumPropertyItem prop_graphkeys_expo_types[] = { EnumPropertyItem prop_graphkeys_expo_types[] = {
{FCURVE_EXTRAPOLATE_CONSTANT, "CONSTANT", "Constant Extrapolation", ""}, {FCURVE_EXTRAPOLATE_CONSTANT, "CONSTANT", 0, "Constant Extrapolation", ""},
{FCURVE_EXTRAPOLATE_LINEAR, "LINEAR", "Linear Extrapolation", ""}, {FCURVE_EXTRAPOLATE_LINEAR, "LINEAR", 0, "Linear Extrapolation", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* this function is responsible for setting extrapolation mode for keyframes */ /* this function is responsible for setting extrapolation mode for keyframes */
@ -1371,12 +1371,12 @@ void GRAPHEDIT_OT_keyframes_cfrasnap (wmOperatorType *ot)
/* defines for snap keyframes tool */ /* defines for snap keyframes tool */
EnumPropertyItem prop_graphkeys_snap_types[] = { EnumPropertyItem prop_graphkeys_snap_types[] = {
{GRAPHKEYS_SNAP_CFRA, "CFRA", "Current frame", ""}, {GRAPHKEYS_SNAP_CFRA, "CFRA", 0, "Current frame", ""},
{GRAPHKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", "Nearest Frame", ""}, // XXX as single entry? {GRAPHKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", 0, "Nearest Frame", ""}, // XXX as single entry?
{GRAPHKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", "Nearest Second", ""}, // XXX as single entry? {GRAPHKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", 0, "Nearest Second", ""}, // XXX as single entry?
{GRAPHKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", "Nearest Marker", ""}, {GRAPHKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", 0, "Nearest Marker", ""},
{GRAPHKEYS_SNAP_HORIZONTAL, "HORIZONTAL", "Flatten Handles", ""}, {GRAPHKEYS_SNAP_HORIZONTAL, "HORIZONTAL", 0, "Flatten Handles", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* this function is responsible for snapping keyframes to frame-times */ /* this function is responsible for snapping keyframes to frame-times */
@ -1466,11 +1466,11 @@ void GRAPHEDIT_OT_keyframes_snap (wmOperatorType *ot)
/* defines for mirror keyframes tool */ /* defines for mirror keyframes tool */
EnumPropertyItem prop_graphkeys_mirror_types[] = { EnumPropertyItem prop_graphkeys_mirror_types[] = {
{GRAPHKEYS_MIRROR_CFRA, "CFRA", "Current frame", ""}, {GRAPHKEYS_MIRROR_CFRA, "CFRA", 0, "Current frame", ""},
{GRAPHKEYS_MIRROR_YAXIS, "YAXIS", "Vertical Axis", ""}, {GRAPHKEYS_MIRROR_YAXIS, "YAXIS", 0, "Vertical Axis", ""},
{GRAPHKEYS_MIRROR_XAXIS, "XAXIS", "Horizontal Axis", ""}, {GRAPHKEYS_MIRROR_XAXIS, "XAXIS", 0, "Horizontal Axis", ""},
{GRAPHKEYS_MIRROR_MARKER, "MARKER", "First Selected Marker", ""}, {GRAPHKEYS_MIRROR_MARKER, "MARKER", 0, "First Selected Marker", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* this function is responsible for mirroring keyframes */ /* this function is responsible for mirroring keyframes */

@ -340,11 +340,11 @@ void GRAPHEDIT_OT_keyframes_select_border(wmOperatorType *ot)
/* defines for column-select mode */ /* defines for column-select mode */
static EnumPropertyItem prop_column_select_types[] = { static EnumPropertyItem prop_column_select_types[] = {
{GRAPHKEYS_COLUMNSEL_KEYS, "KEYS", "On Selected Keyframes", ""}, {GRAPHKEYS_COLUMNSEL_KEYS, "KEYS", 0, "On Selected Keyframes", ""},
{GRAPHKEYS_COLUMNSEL_CFRA, "CFRA", "On Current Frame", ""}, {GRAPHKEYS_COLUMNSEL_CFRA, "CFRA", 0, "On Current Frame", ""},
{GRAPHKEYS_COLUMNSEL_MARKERS_COLUMN, "MARKERS_COLUMN", "On Selected Markers", ""}, {GRAPHKEYS_COLUMNSEL_MARKERS_COLUMN, "MARKERS_COLUMN", 0, "On Selected Markers", ""},
{GRAPHKEYS_COLUMNSEL_MARKERS_BETWEEN, "MARKERS_BETWEEN", "Between Min/Max Selected Markers", ""}, {GRAPHKEYS_COLUMNSEL_MARKERS_BETWEEN, "MARKERS_BETWEEN", 0, "Between Min/Max Selected Markers", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* ------------------- */ /* ------------------- */
@ -526,11 +526,11 @@ void GRAPHEDIT_OT_keyframes_columnselect (wmOperatorType *ot)
/* defines for left-right select tool */ /* defines for left-right select tool */
static EnumPropertyItem prop_graphkeys_leftright_select_types[] = { static EnumPropertyItem prop_graphkeys_leftright_select_types[] = {
{GRAPHKEYS_LRSEL_TEST, "CHECK", "Check if Select Left or Right", ""}, {GRAPHKEYS_LRSEL_TEST, "CHECK", 0, "Check if Select Left or Right", ""},
{GRAPHKEYS_LRSEL_NONE, "OFF", "Don't select", ""}, {GRAPHKEYS_LRSEL_NONE, "OFF", 0, "Don't select", ""},
{GRAPHKEYS_LRSEL_LEFT, "LEFT", "Before current frame", ""}, {GRAPHKEYS_LRSEL_LEFT, "LEFT", 0, "Before current frame", ""},
{GRAPHKEYS_LRSEL_RIGHT, "RIGHT", "After current frame", ""}, {GRAPHKEYS_LRSEL_RIGHT, "RIGHT", 0, "After current frame", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* ------------------- */ /* ------------------- */

@ -383,41 +383,6 @@ static void image_editcursor_buts(const bContext *C, View2D *v2d, uiBlock *block
} }
} }
static void image_panel_game_properties(const bContext *C, Panel *pa)
{
SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C);
ImBuf *ibuf= BKE_image_get_ibuf(sima->image, &sima->iuser);
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
uiBlockSetHandleFunc(block, do_image_panel_events, NULL);
if (ibuf) {
char str[128];
image_info(sima->image, ibuf, str);
uiDefBut(block, LABEL, B_NOP, str, 10,180,300,19, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
uiDefButBitS(block, TOG, IMA_TWINANIM, B_TWINANIM, "Anim", 10,150,140,19, &sima->image->tpageflag, 0, 0, 0, 0, "Toggles use of animated texture");
uiDefButS(block, NUM, B_TWINANIM, "Start:", 10,130,140,19, &sima->image->twsta, 0.0, 128.0, 0, 0, "Displays the start frame of an animated texture");
uiDefButS(block, NUM, B_TWINANIM, "End:", 10,110,140,19, &sima->image->twend, 0.0, 128.0, 0, 0, "Displays the end frame of an animated texture");
uiDefButS(block, NUM, B_NOP, "Speed", 10,90,140,19, &sima->image->animspeed, 1.0, 100.0, 0, 0, "Displays Speed of the animation in frames per second");
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
uiDefButBitS(block, TOG, IMA_TILES, B_SIMAGETILE, "Tiles", 160,150,140,19, &sima->image->tpageflag, 0, 0, 0, 0, "Toggles use of tilemode for faces (Shift LMB to pick the tile for selected faces)");
uiDefButS(block, NUM, B_REDR, "X:", 160,130,70,19, &sima->image->xrep, 1.0, 16.0, 0, 0, "Sets the degree of repetition in the X direction");
uiDefButS(block, NUM, B_REDR, "Y:", 230,130,70,19, &sima->image->yrep, 1.0, 16.0, 0, 0, "Sets the degree of repetition in the Y direction");
uiBlockBeginAlign(block);
uiBlockBeginAlign(block);
uiDefButBitS(block, TOG, IMA_CLAMP_U, B_REDR, "ClampX", 160,100,70,19, &sima->image->tpageflag, 0, 0, 0, 0, "Disable texture repeating horizontaly");
uiDefButBitS(block, TOG, IMA_CLAMP_V, B_REDR, "ClampY", 230,100,70,19, &sima->image->tpageflag, 0, 0, 0, 0, "Disable texture repeating vertically");
uiBlockEndAlign(block);
}
}
static void image_panel_view_properties(const bContext *C, Panel *pa) static void image_panel_view_properties(const bContext *C, Panel *pa)
{ {
SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C); SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C);
@ -1412,12 +1377,6 @@ void image_buttons_register(ARegionType *art)
pt->draw= image_panel_properties; pt->draw= image_panel_properties;
BLI_addtail(&art->paneltypes, pt); BLI_addtail(&art->paneltypes, pt);
pt= MEM_callocN(sizeof(PanelType), "spacetype image panel game properties");
strcpy(pt->idname, "IMAGE_PT_game_properties");
strcpy(pt->label, "Game Properties");
pt->draw= image_panel_game_properties;
BLI_addtail(&art->paneltypes, pt);
pt= MEM_callocN(sizeof(PanelType), "spacetype image view properties"); pt= MEM_callocN(sizeof(PanelType), "spacetype image view properties");
strcpy(pt->idname, "IMAGE_PT_view_properties"); strcpy(pt->idname, "IMAGE_PT_view_properties");
strcpy(pt->label, "View Properties"); strcpy(pt->label, "View Properties");

@ -132,10 +132,10 @@ static int space_image_file_exists_poll(bContext *C)
int space_image_main_area_poll(bContext *C) int space_image_main_area_poll(bContext *C)
{ {
SpaceLink *slink= CTX_wm_space_data(C); SpaceLink *slink= CTX_wm_space_data(C);
ARegion *ar= CTX_wm_region(C); // XXX ARegion *ar= CTX_wm_region(C);
if(slink && (slink->spacetype == SPACE_IMAGE)) if(slink && (slink->spacetype == SPACE_IMAGE))
return (ar && ar->type->regionid == RGN_TYPE_WINDOW); return 1; // XXX (ar && ar->type->regionid == RGN_TYPE_WINDOW);
return 0; return 0;
} }
@ -1412,9 +1412,9 @@ void IMAGE_OT_sample(wmOperatorType *ot)
void IMAGE_OT_curves_point_set(wmOperatorType *ot) void IMAGE_OT_curves_point_set(wmOperatorType *ot)
{ {
static EnumPropertyItem point_items[]= { static EnumPropertyItem point_items[]= {
{0, "BLACK_POINT", "Black Point", ""}, {0, "BLACK_POINT", 0, "Black Point", ""},
{1, "WHITE_POINT", "White Point", ""}, {1, "WHITE_POINT", 0, "White Point", ""},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
/* identifiers */ /* identifiers */
ot->name= "Set Curves Point"; ot->name= "Set Curves Point";

@ -270,13 +270,6 @@ static void image_refresh(const bContext *C, ScrArea *sa)
if(sima->flag & SI_EDITTILE); if(sima->flag & SI_EDITTILE);
else sima->curtile= tf->tile; else sima->curtile= tf->tile;
if(ima) {
if(tf->mode & TF_TILES)
ima->tpageflag |= IMA_TILES;
else
ima->tpageflag &= ~IMA_TILES;
}
} }
} }
@ -286,8 +279,6 @@ static void image_refresh(const bContext *C, ScrArea *sa)
static void image_listener(ScrArea *sa, wmNotifier *wmn) static void image_listener(ScrArea *sa, wmNotifier *wmn)
{ {
SpaceImage *sima= sa->spacedata.first;
/* context changes */ /* context changes */
switch(wmn->category) { switch(wmn->category) {
case NC_SCENE: case NC_SCENE:
@ -301,7 +292,6 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
} }
break; break;
case NC_IMAGE: case NC_IMAGE:
if(!wmn->reference || wmn->reference == sima->image)
ED_area_tag_redraw(sa); ED_area_tag_redraw(sa);
break; break;
} }
@ -508,11 +498,17 @@ static void image_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
/* add handlers, stuff you only do once or on area/region changes */ /* add handlers, stuff you only do once or on area/region changes */
static void image_header_area_init(wmWindowManager *wm, ARegion *ar) static void image_header_area_init(wmWindowManager *wm, ARegion *ar)
{ {
#if 0
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy); UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy);
#else
ED_region_header_init(ar);
#endif
} }
static void image_header_area_draw(const bContext *C, ARegion *ar) static void image_header_area_draw(const bContext *C, ARegion *ar)
{ {
ED_region_header(C, ar);
#if 0
float col[3]; float col[3];
/* clear */ /* clear */
@ -531,6 +527,7 @@ static void image_header_area_draw(const bContext *C, ARegion *ar)
/* restore view matrix? */ /* restore view matrix? */
UI_view2d_view_restore(C); UI_view2d_view_restore(C);
#endif
} }
/**************************** spacetype *****************************/ /**************************** spacetype *****************************/
@ -616,11 +613,13 @@ void ED_space_image_set(bContext *C, SpaceImage *sima, Scene *scene, Object *obe
if(sima->image && sima->image->id.us==0) if(sima->image && sima->image->id.us==0)
sima->image->id.us= 1; sima->image->id.us= 1;
if(C) {
if(obedit) if(obedit)
WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_DATA, obedit); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_DATA, obedit);
ED_area_tag_redraw(CTX_wm_area(C)); ED_area_tag_redraw(CTX_wm_area(C));
} }
}
ImBuf *ED_space_image_buffer(SpaceImage *sima) ImBuf *ED_space_image_buffer(SpaceImage *sima)
{ {

@ -0,0 +1,54 @@
#
# $Id: Makefile 14 2002-10-13 15:57:19Z hans $
#
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program 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 2
# of the License, or (at your option) any later version.
#
# This program 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, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# The Original Code is Copyright (C) 2007 Blender Foundation
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): none yet.
#
# ***** END GPL LICENSE BLOCK *****
#
# Makes module object directory and bounces make to subdirectories.
LIBNAME = ed_logic
DIR = $(OCGDIR)/blender/$(LIBNAME)
include nan_compile.mk
CFLAGS += $(LEVEL_1_C_WARNINGS)
CPPFLAGS += -I$(NAN_GLEW)/include
CPPFLAGS += -I$(OPENGL_HEADERS)
# not very neat....
CPPFLAGS += -I../../windowmanager
CPPFLAGS += -I../../blenloader
CPPFLAGS += -I../../blenkernel
CPPFLAGS += -I../../blenlib
CPPFLAGS += -I../../makesdna
CPPFLAGS += -I../../makesrna
CPPFLAGS += -I../../imbuf
CPPFLAGS += -I../../python
CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
# own include
CPPFLAGS += -I../include

@ -0,0 +1,18 @@
#!/usr/bin/python
Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../makesrna'
defs = []
if env['WITH_BF_GAMEENGINE']:
defs.append('GAMEBLENDER=1')
if env['WITH_BF_SOLID']:
defs.append('USE_SUMO_SOLID')
env.BlenderLib ( 'bf_editors_space_game', sources, Split(incs), defs, libtype=['core'], priority=[120] )

@ -0,0 +1,147 @@
/**
* $Id: image_buttons.c 20913 2009-06-16 01:22:56Z blendix $
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2009 by Blender Foundation
* All rights reserved.
*
* ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
#include <stdio.h>
#include "DNA_object_types.h"
#include "DNA_node_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_arithb.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_mesh.h"
#include "BKE_node.h"
#include "BKE_screen.h"
#include "BKE_utildefines.h"
#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_util.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "RNA_access.h"
#include "WM_api.h"
#include "WM_types.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "logic_intern.h"
static void do_logic_panel_events(bContext *C, void *arg, int event)
{
switch(event) {
}
}
/* *** */
static void logic_panel_properties(const bContext *C, Panel *pa)
{
// SpaceLogic *slogic= (SpaceLogic*)CTX_wm_space_data(C);
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
uiBlockSetHandleFunc(block, do_logic_panel_events, NULL);
}
static void logic_panel_view_properties(const bContext *C, Panel *pa)
{
// SpaceLogic *slogic= (SpaceLogic*)CTX_wm_space_data(C);
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
uiBlockSetHandleFunc(block, do_logic_panel_events, NULL);
}
void logic_buttons_register(ARegionType *art)
{
PanelType *pt;
pt= MEM_callocN(sizeof(PanelType), "spacetype logic panel properties");
strcpy(pt->idname, "LOGIC_PT_properties");
strcpy(pt->label, "Logic Properties");
pt->draw= logic_panel_properties;
BLI_addtail(&art->paneltypes, pt);
pt= MEM_callocN(sizeof(PanelType), "spacetype logic view properties");
strcpy(pt->idname, "LOGIC_PT_view_properties");
strcpy(pt->label, "View Properties");
pt->draw= logic_panel_view_properties;
BLI_addtail(&art->paneltypes, pt);
}
static int logic_properties(bContext *C, wmOperator *op)
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= logic_has_buttons_region(sa);
if(ar) {
ar->flag ^= RGN_FLAG_HIDDEN;
ar->v2d.flag &= ~V2D_IS_INITIALISED; /* XXX should become hide/unhide api? */
ED_area_initialize(CTX_wm_manager(C), CTX_wm_window(C), sa);
ED_area_tag_redraw(sa);
}
return OPERATOR_FINISHED;
}
void LOGIC_OT_properties(wmOperatorType *ot)
{
ot->name= "Properties";
ot->idname= "LOGIC_OT_properties";
ot->exec= logic_properties;
ot->poll= ED_operator_logic_active;
/* flags */
ot->flag= 0;
}

@ -0,0 +1,126 @@
/**
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2009 Blender Foundation.
* All rights reserved.
*
*
* Contributor(s): Blender Foundation
*
* ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
#include <stdio.h>
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "BKE_main.h"
#include "ED_screen.h"
#include "ED_types.h"
#include "ED_util.h"
#include "WM_api.h"
#include "WM_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "logic_intern.h"
/* ************************ header area region *********************** */
static void do_logic_buttons(bContext *C, void *arg, int event)
{
// SpaceLogic *slogic= (SpaceLogic*)CTX_wm_space_data(C);
}
static uiBlock *logic_addmenu(bContext *C, ARegion *ar, void *arg_unused)
{
// SpaceLogic *slogic= (SpaceLogic*)CTX_wm_space_data(C);
uiBlock *block;
short yco= 0, menuwidth=120;
block= uiBeginBlock(C, ar, "logic_addmenu", UI_EMBOSSP);
// uiBlockSetButmFunc(block, do_logic_addmenu, NULL);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Nothing yet", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
uiTextBoundsBlock(block, 50);
uiBlockSetDirection(block, UI_TOP);
uiEndBlock(C, block);
return block;
}
void logic_header_buttons(const bContext *C, ARegion *ar)
{
ScrArea *sa= CTX_wm_area(C);
// SpaceLogic *slogic= (SpaceLogic*)CTX_wm_space_data(C);
uiBlock *block;
short xco, yco= 3;
block= uiBeginBlock(C, ar, "header logic", UI_EMBOSS);
uiBlockSetHandleFunc(block, do_logic_buttons, NULL);
xco= ED_area_header_standardbuttons(C, block, yco);
if((sa->flag & HEADER_NO_PULLDOWN)==0) {
int xmax;
xmax= GetButStringLength("View");
uiDefPulldownBut(block, logic_addmenu, NULL,
"View", xco, yco, xmax-3, 20, "");
xco+= xmax;
xmax= GetButStringLength("Select");
uiDefPulldownBut(block, logic_addmenu, NULL,
"Select", xco, yco, xmax-3, 20, "");
xco+= xmax;
xmax= GetButStringLength("Add");
uiDefPulldownBut(block, logic_addmenu, NULL,
"Add", xco, yco, xmax-3, 20, "");
xco+= xmax;
}
uiBlockSetEmboss(block, UI_EMBOSS);
UI_view2d_totRect_set(&ar->v2d, xco+XIC+100, (int)(ar->v2d.tot.ymax-ar->v2d.tot.ymin));
uiEndBlock(C, block);
uiDrawBlock(C, block);
}

@ -0,0 +1,58 @@
/**
* $Id:
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2009 Blender Foundation.
* All rights reserved.
*
*
* Contributor(s): Blender Foundation
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifndef ED_LOGIC_INTERN_H
#define ED_LOGIC_INTERN_H
/* internal exports only */
struct bContext;
struct ARegion;
struct ARegionType;
struct ScrArea;
struct SpaceLogic;
struct Object;
struct wmOperatorType;
struct Scene;
/* space_logic.c */
struct ARegion *logic_has_buttons_region(struct ScrArea *sa);
/* logic_header.c */
void logic_header_buttons(const struct bContext *C, struct ARegion *ar);
/* logic_ops.c */
/* logic_buttons.c */
void logic_buttons_register(struct ARegionType *art);
void LOGIC_OT_properties(struct wmOperatorType *ot);
/* logic_window.c */
void logic_buttons(struct bContext *C, struct ARegion *ar);
#endif /* ED_LOGIC_INTERN_H */

File diff suppressed because it is too large Load Diff

@ -0,0 +1,369 @@
/**
* $Id:
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2009 Blender Foundation.
* All rights reserved.
*
*
* Contributor(s): Blender Foundation
*
* ***** END GPL LICENSE BLOCK *****
*/
#include <string.h>
#include <stdio.h>
#include "DNA_image_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_arithb.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "BKE_utildefines.h"
#include "ED_space_api.h"
#include "ED_screen.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "RNA_access.h"
#include "WM_api.h"
#include "WM_types.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "logic_intern.h"
/* ******************** manage regions ********************* */
ARegion *logic_has_buttons_region(ScrArea *sa)
{
ARegion *ar, *arnew;
for(ar= sa->regionbase.first; ar; ar= ar->next)
if(ar->regiontype==RGN_TYPE_UI)
return ar;
/* add subdiv level; after header */
for(ar= sa->regionbase.first; ar; ar= ar->next)
if(ar->regiontype==RGN_TYPE_HEADER)
break;
/* is error! */
if(ar==NULL) return NULL;
arnew= MEM_callocN(sizeof(ARegion), "buttons for image");
BLI_insertlinkafter(&sa->regionbase, ar, arnew);
arnew->regiontype= RGN_TYPE_UI;
arnew->alignment= RGN_ALIGN_LEFT;
arnew->flag = RGN_FLAG_HIDDEN;
return arnew;
}
/* ******************** default callbacks for image space ***************** */
static SpaceLink *logic_new(const bContext *C)
{
ARegion *ar;
SpaceLogic *slogic;
slogic= MEM_callocN(sizeof(SpaceLogic), "initlogic");
slogic->spacetype= SPACE_LOGIC;
/* header */
ar= MEM_callocN(sizeof(ARegion), "header for logic");
BLI_addtail(&slogic->regionbase, ar);
ar->regiontype= RGN_TYPE_HEADER;
ar->alignment= RGN_ALIGN_BOTTOM;
/* buttons/list view */
ar= MEM_callocN(sizeof(ARegion), "buttons for logic");
BLI_addtail(&slogic->regionbase, ar);
ar->regiontype= RGN_TYPE_UI;
ar->alignment= RGN_ALIGN_LEFT;
/* main area */
ar= MEM_callocN(sizeof(ARegion), "main area for logic");
BLI_addtail(&slogic->regionbase, ar);
ar->regiontype= RGN_TYPE_WINDOW;
ar->v2d.tot.xmin= 0.0f;
ar->v2d.tot.ymin= 0.0f;
ar->v2d.tot.xmax= 1280;
ar->v2d.tot.ymax= 240.0f;
ar->v2d.cur.xmin= 0.0f;
ar->v2d.cur.ymin= 0.0f;
ar->v2d.cur.xmax= 1280.0f;
ar->v2d.cur.ymax= 240.0f;
ar->v2d.min[0]= 1.0f;
ar->v2d.min[1]= 1.0f;
ar->v2d.max[0]= 32000.0f;
ar->v2d.max[1]= 32000.0f;
ar->v2d.minzoom= 0.5f;
ar->v2d.maxzoom= 1.21f;
ar->v2d.scroll= (V2D_SCROLL_RIGHT|V2D_SCROLL_BOTTOM);
ar->v2d.keepzoom= V2D_KEEPZOOM|V2D_KEEPASPECT;
ar->v2d.keeptot= 0;
return (SpaceLink *)slogic;
}
/* not spacelink itself */
static void logic_free(SpaceLink *sl)
{
// Spacelogic *slogic= (SpaceLogic*) sl;
// if(slogic->gpd)
// XXX free_gpencil_data(slogic->gpd);
}
/* spacetype; init callback */
static void logic_init(struct wmWindowManager *wm, ScrArea *sa)
{
}
static SpaceLink *logic_duplicate(SpaceLink *sl)
{
SpaceLogic *slogicn= MEM_dupallocN(sl);
return (SpaceLink *)slogicn;
}
void logic_operatortypes(void)
{
WM_operatortype_append(LOGIC_OT_properties);
}
void logic_keymap(struct wmWindowManager *wm)
{
ListBase *keymap= WM_keymap_listbase(wm, "Logic Generic", SPACE_LOGIC, 0);
WM_keymap_add_item(keymap, "LOGIC_OT_properties", NKEY, KM_PRESS, 0, 0);
}
static void logic_refresh(const bContext *C, ScrArea *sa)
{
// SpaceLogic *slogic= (SpaceImage*)CTX_wm_space_data(C);
// Object *obedit= CTX_data_edit_object(C);
}
static void logic_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch(wmn->category) {
case NC_SCENE:
switch(wmn->data) {
case ND_FRAME:
ED_region_tag_redraw(ar);
break;
case ND_OB_ACTIVE:
ED_region_tag_redraw(ar);
break;
}
break;
case NC_OBJECT:
break;
}
}
static int logic_context(const bContext *C, const char *member, bContextDataResult *result)
{
// SpaceLogic *slogic= (SpaceLogic*)CTX_wm_space_data(C);
return 0;
}
/************************** main region ***************************/
/* add handlers, stuff you only do once or on area/region changes */
static void logic_main_area_init(wmWindowManager *wm, ARegion *ar)
{
ListBase *keymap;
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
/* own keymaps */
keymap= WM_keymap_listbase(wm, "Logic Generic", SPACE_LOGIC, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
}
static void logic_main_area_draw(const bContext *C, ARegion *ar)
{
/* draw entirely, view changes should be handled here */
// SpaceLogic *slogic= (SpaceLogic*)CTX_wm_space_data(C);
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
float col[3];
/* clear and setup matrix */
UI_GetThemeColor3fv(TH_BACK, col);
glClearColor(col[0], col[1], col[2], 0.0);
glClear(GL_COLOR_BUFFER_BIT);
UI_view2d_view_ortho(C, v2d);
logic_buttons((bContext *)C, ar);
/* reset view matrix */
UI_view2d_view_restore(C);
/* scrollers */
scrollers= UI_view2d_scrollers_calc(C, v2d, 10, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
UI_view2d_scrollers_draw(C, v2d, scrollers);
UI_view2d_scrollers_free(scrollers);
}
/* *********************** buttons region ************************ */
/* add handlers, stuff you only do once or on area/region changes */
static void logic_buttons_area_init(wmWindowManager *wm, ARegion *ar)
{
ListBase *keymap;
ED_region_panels_init(wm, ar);
keymap= WM_keymap_listbase(wm, "Logic Generic", SPACE_LOGIC, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
}
static void logic_buttons_area_draw(const bContext *C, ARegion *ar)
{
ED_region_panels(C, ar, 1, NULL);
}
/************************* header region **************************/
/* add handlers, stuff you only do once or on area/region changes */
static void logic_header_area_init(wmWindowManager *wm, ARegion *ar)
{
ED_region_header_init(ar);
}
static void logic_header_area_draw(const bContext *C, ARegion *ar)
{
float col[3];
/* clear */
if(ED_screen_area_active(C))
UI_GetThemeColor3fv(TH_HEADER, col);
else
UI_GetThemeColor3fv(TH_HEADERDESEL, col);
glClearColor(col[0], col[1], col[2], 0.0);
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
UI_view2d_view_ortho(C, &ar->v2d);
logic_header_buttons(C, ar);
/* restore view matrix? */
UI_view2d_view_restore(C);
}
/**************************** spacetype *****************************/
/* only called once, from space/spacetypes.c */
void ED_spacetype_logic(void)
{
SpaceType *st= MEM_callocN(sizeof(SpaceType), "spacetype logic");
ARegionType *art;
st->spaceid= SPACE_LOGIC;
st->new= logic_new;
st->free= logic_free;
st->init= logic_init;
st->duplicate= logic_duplicate;
st->operatortypes= logic_operatortypes;
st->keymap= logic_keymap;
st->refresh= logic_refresh;
st->context= logic_context;
/* regions: main window */
art= MEM_callocN(sizeof(ARegionType), "spacetype logic region");
art->regionid = RGN_TYPE_WINDOW;
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES|ED_KEYMAP_VIEW2D;
art->init= logic_main_area_init;
art->draw= logic_main_area_draw;
art->listener= logic_listener;
BLI_addhead(&st->regiontypes, art);
/* regions: listview/buttons */
art= MEM_callocN(sizeof(ARegionType), "spacetype logic region");
art->regionid = RGN_TYPE_UI;
art->minsizex= 220; // XXX
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES;
art->listener= logic_listener;
art->init= logic_buttons_area_init;
art->draw= logic_buttons_area_draw;
BLI_addhead(&st->regiontypes, art);
logic_buttons_register(art);
/* regions: header */
art= MEM_callocN(sizeof(ARegionType), "spacetype logic region");
art->regionid = RGN_TYPE_HEADER;
art->minsizey= HEADERY;
art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES;
art->init= logic_header_area_init;
art->draw= logic_header_area_draw;
BLI_addhead(&st->regiontypes, art);
BKE_spacetype_register(st);
}

@ -177,8 +177,8 @@ static int node_extend_select_invoke(bContext *C, wmOperator *op, wmEvent *event
/* operators */ /* operators */
static EnumPropertyItem prop_select_items[] = { static EnumPropertyItem prop_select_items[] = {
{NODE_SELECT_MOUSE, "NORMAL", "Normal Select", "Select using the mouse"}, {NODE_SELECT_MOUSE, "NORMAL", 0, "Normal Select", "Select using the mouse"},
{0, NULL, NULL, NULL}}; {0, NULL, 0, NULL, NULL}};
void NODE_OT_select_extend(wmOperatorType *ot) void NODE_OT_select_extend(wmOperatorType *ot)
{ {
@ -225,9 +225,9 @@ void NODE_OT_select(wmOperatorType *ot)
/* ****** Border Select ****** */ /* ****** Border Select ****** */
static EnumPropertyItem prop_select_types[] = { static EnumPropertyItem prop_select_types[] = {
{NODE_EXCLUSIVE, "EXCLUSIVE", "Exclusive", ""}, /* right mouse */ {NODE_EXCLUSIVE, "EXCLUSIVE", 0, "Exclusive", ""}, /* right mouse */
{NODE_EXTEND, "EXTEND", "Extend", ""}, /* left mouse */ {NODE_EXTEND, "EXTEND", 0, "Extend", ""}, /* left mouse */
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int node_borderselect_exec(bContext *C, wmOperator *op) static int node_borderselect_exec(bContext *C, wmOperator *op)

@ -63,15 +63,17 @@ static int run_pyfile_exec(bContext *C, wmOperator *op)
{ {
ARegion *ar= CTX_wm_region(C); ARegion *ar= CTX_wm_region(C);
char filename[512]; char filename[512];
RNA_string_get(op->ptr, "filename", filename); RNA_string_get(op->ptr, "filename", filename);
#ifndef DISABLE_PYTHON #ifndef DISABLE_PYTHON
BPY_run_python_script(C, filename, NULL); if(BPY_run_python_script(C, filename, NULL, op->reports)) {
#endif
ED_region_tag_redraw(ar); ED_region_tag_redraw(ar);
return OPERATOR_FINISHED; return OPERATOR_FINISHED;
} }
#endif
return OPERATOR_CANCELLED; /* FAIL */
}
void SCRIPT_OT_python_file_run(wmOperatorType *ot) void SCRIPT_OT_python_file_run(wmOperatorType *ot)
{ {

@ -741,7 +741,8 @@ static void draw_image_seq(Scene *scene, ARegion *ar, SpaceSeq *sseq)
static int recursive= 0; static int recursive= 0;
float zoom; float zoom;
float zoomx, zoomy; float zoomx, zoomy;
int render_size = 0; float render_size = 0.0;
float proxy_size = 100.0;
glClearColor(0.0, 0.0, 0.0, 0.0); glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
@ -749,6 +750,8 @@ static void draw_image_seq(Scene *scene, ARegion *ar, SpaceSeq *sseq)
render_size = sseq->render_size; render_size = sseq->render_size;
if (render_size == 0) { if (render_size == 0) {
render_size = scene->r.size; render_size = scene->r.size;
} else {
proxy_size = render_size;
} }
if (render_size < 0) { if (render_size < 0) {
return; return;
@ -767,13 +770,13 @@ static void draw_image_seq(Scene *scene, ARegion *ar, SpaceSeq *sseq)
else { else {
recursive= 1; recursive= 1;
if (special_seq_update) { if (special_seq_update) {
ibuf= give_ibuf_seq_direct(scene, rectx, recty, (scene->r.cfra), render_size, special_seq_update); ibuf= give_ibuf_seq_direct(scene, rectx, recty, (scene->r.cfra), proxy_size, special_seq_update);
} }
else if (!U.prefetchframes) { // XXX || (G.f & G_PLAYANIM) == 0) { else if (!U.prefetchframes) { // XXX || (G.f & G_PLAYANIM) == 0) {
ibuf= (ImBuf *)give_ibuf_seq(scene, rectx, recty, (scene->r.cfra), sseq->chanshown, render_size); ibuf= (ImBuf *)give_ibuf_seq(scene, rectx, recty, (scene->r.cfra), sseq->chanshown, proxy_size);
} }
else { else {
ibuf= (ImBuf *)give_ibuf_seq_threaded(scene, rectx, recty, (scene->r.cfra), sseq->chanshown, render_size); ibuf= (ImBuf *)give_ibuf_seq_threaded(scene, rectx, recty, (scene->r.cfra), sseq->chanshown, proxy_size);
} }
recursive= 0; recursive= 0;
@ -824,7 +827,7 @@ static void draw_image_seq(Scene *scene, ARegion *ar, SpaceSeq *sseq)
zoom= SEQ_ZOOM_FAC(sseq->zoom); zoom= SEQ_ZOOM_FAC(sseq->zoom);
if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) { if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
zoom /= render_size / 100.0; zoom /= proxy_size / 100.0;
zoomx = zoom * ((float)scene->r.xasp / (float)scene->r.yasp); zoomx = zoom * ((float)scene->r.xasp / (float)scene->r.yasp);
zoomy = zoom; zoomy = zoom;
} else { } else {
@ -960,8 +963,11 @@ void drawprefetchseqspace(Scene *scene, ARegion *ar, SpaceSeq *sseq)
{ {
int rectx, recty; int rectx, recty;
int render_size = sseq->render_size; int render_size = sseq->render_size;
int proxy_size = 100.0;
if (render_size == 0) { if (render_size == 0) {
render_size = scene->r.size; render_size = scene->r.size;
} else {
proxy_size = render_size;
} }
if (render_size < 0) { if (render_size < 0) {
return; return;
@ -973,7 +979,7 @@ void drawprefetchseqspace(Scene *scene, ARegion *ar, SpaceSeq *sseq)
if(sseq->mainb != SEQ_DRAW_SEQUENCE) { if(sseq->mainb != SEQ_DRAW_SEQUENCE) {
give_ibuf_prefetch_request( give_ibuf_prefetch_request(
rectx, recty, (scene->r.cfra), sseq->chanshown, rectx, recty, (scene->r.cfra), sseq->chanshown,
render_size); proxy_size);
} }
} }

@ -105,35 +105,35 @@ static int okee() {return 0;}
/* XXX */ /* XXX */
/* RNA Enums, used in multiple files */ /* RNA Enums, used in multiple files */
EnumPropertyItem sequencer_prop_effect_types[] = { EnumPropertyItem sequencer_prop_effect_types[] = {
{SEQ_CROSS, "CROSS", "Crossfade", "Crossfade effect strip type"}, {SEQ_CROSS, "CROSS", 0, "Crossfade", "Crossfade effect strip type"},
{SEQ_ADD, "ADD", "Add", "Add effect strip type"}, {SEQ_ADD, "ADD", 0, "Add", "Add effect strip type"},
{SEQ_SUB, "SUBTRACT", "Subtract", "Subtract effect strip type"}, {SEQ_SUB, "SUBTRACT", 0, "Subtract", "Subtract effect strip type"},
{SEQ_ALPHAOVER, "ALPHA_OVER", "Alpha Over", "Alpha Over effect strip type"}, {SEQ_ALPHAOVER, "ALPHA_OVER", 0, "Alpha Over", "Alpha Over effect strip type"},
{SEQ_ALPHAUNDER, "ALPHA_UNDER", "Alpha Under", "Alpha Under effect strip type"}, {SEQ_ALPHAUNDER, "ALPHA_UNDER", 0, "Alpha Under", "Alpha Under effect strip type"},
{SEQ_GAMCROSS, "GAMMA_CROSS", "Gamma Cross", "Gamma Cross effect strip type"}, {SEQ_GAMCROSS, "GAMMA_CROSS", 0, "Gamma Cross", "Gamma Cross effect strip type"},
{SEQ_MUL, "MULTIPLY", "Multiply", "Multiply effect strip type"}, {SEQ_MUL, "MULTIPLY", 0, "Multiply", "Multiply effect strip type"},
{SEQ_OVERDROP, "OVER_DROP", "Alpha Over Drop", "Alpha Over Drop effect strip type"}, {SEQ_OVERDROP, "OVER_DROP", 0, "Alpha Over Drop", "Alpha Over Drop effect strip type"},
{SEQ_PLUGIN, "PLUGIN", "Plugin", "Plugin effect strip type"}, {SEQ_PLUGIN, "PLUGIN", 0, "Plugin", "Plugin effect strip type"},
{SEQ_WIPE, "WIPE", "Wipe", "Wipe effect strip type"}, {SEQ_WIPE, "WIPE", 0, "Wipe", "Wipe effect strip type"},
{SEQ_GLOW, "GLOW", "Glow", "Glow effect strip type"}, {SEQ_GLOW, "GLOW", 0, "Glow", "Glow effect strip type"},
{SEQ_TRANSFORM, "TRANSFORM", "Transform", "Transform effect strip type"}, {SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", "Transform effect strip type"},
{SEQ_COLOR, "COLOR", "Color", "Color effect strip type"}, {SEQ_COLOR, "COLOR", 0, "Color", "Color effect strip type"},
{SEQ_SPEED, "SPEED", "Speed", "Color effect strip type"}, {SEQ_SPEED, "SPEED", 0, "Speed", "Color effect strip type"},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
/* mute operator */ /* mute operator */
EnumPropertyItem sequencer_prop_operate_types[] = { /* better name? */ EnumPropertyItem sequencer_prop_operate_types[] = { /* better name? */
{SEQ_SELECTED, "SELECTED", "Selected", ""}, {SEQ_SELECTED, "SELECTED", 0, "Selected", ""},
{SEQ_UNSELECTED, "UNSELECTED", "Unselected ", ""}, {SEQ_UNSELECTED, "UNSELECTED", 0, "Unselected ", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
EnumPropertyItem prop_side_types[] = { EnumPropertyItem prop_side_types[] = {
{SEQ_SIDE_LEFT, "LEFT", "Left", ""}, {SEQ_SIDE_LEFT, "LEFT", 0, "Left", ""},
{SEQ_SIDE_RIGHT, "RIGHT", "Right", ""}, {SEQ_SIDE_RIGHT, "RIGHT", 0, "Right", ""},
{SEQ_SIDE_BOTH, "BOTH", "Both", ""}, {SEQ_SIDE_BOTH, "BOTH", 0, "Both", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
typedef struct TransSeq { typedef struct TransSeq {
@ -1726,9 +1726,9 @@ void SEQUENCER_OT_refresh_all(struct wmOperatorType *ot)
/* cut operator */ /* cut operator */
static EnumPropertyItem prop_cut_types[] = { static EnumPropertyItem prop_cut_types[] = {
{SEQ_CUT_SOFT, "SOFT", "Soft", ""}, {SEQ_CUT_SOFT, "SOFT", 0, "Soft", ""},
{SEQ_CUT_HARD, "HARD", "Hard", ""}, {SEQ_CUT_HARD, "HARD", 0, "Hard", ""},
{0, NULL, NULL, NULL} {0, NULL, 0, NULL, NULL}
}; };
static int sequencer_cut_exec(bContext *C, wmOperator *op) static int sequencer_cut_exec(bContext *C, wmOperator *op)

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