SPErr OpenPSD(const char* name) { Auto_Desc action; Handle path = NULL; FullPathToAlias(name,path); SPErr error = sPSActionDescriptor->PutAlias(action.get(),keyNull,path); if(path) sPSHandle->Dispose(path); if(error) return error; Auto_Desc result(false); return sPSActionControl->Play(&result,eventOpen,action.get(),plugInDialogSilent); }
SPErr SetLayerHidden(const std::wstring& name,bool hidden) { Auto_Ref layer_ref; SPErr error = Utils::PutNameWString(layer_ref.get(),classLayer,name); if(error) return error; Auto_List layer_list; error = sPSActionList->PutReference(layer_list.get(),layer_ref.get()); if(error) return error; Auto_Desc action; error = sPSActionDescriptor->PutList(action.get(),keyNull,layer_list.get()); if(error) return error; Auto_Desc result(false); return sPSActionControl->Play(&result,(hidden) ? eventHide : eventShow,action.get(),plugInDialogSilent); }
SPErr SavePSD(const char* name) { Auto_Desc compatibility; SPErr error = sPSActionDescriptor->PutBoolean(compatibility.get(),keyMaximizeCompatibility,true); if(error) return error; Auto_Desc action; error = sPSActionDescriptor->PutObject(action.get(),keyAs,classPhotoshop35Format,compatibility.get()); if(error) return error; Handle path = NULL; FullPathToAlias(name,path); error = sPSActionDescriptor->PutAlias(action.get(),keyIn,path); if(path) sPSHandle->Dispose(path); if(error) return error; Auto_Desc result(false); return sPSActionControl->Play(&result,eventSave,action.get(),plugInDialogSilent); }
SPErr SetLayerText(const std::wstring& name,const std::wstring& text) { WikiParser parser; parser.parse(text); LayerInfo info; SPErr error = info.load(name); if(error) return error; Auto_Ref layer_ref; error = Utils::PutNameWString(layer_ref.get(),classTextLayer,name); if(error) return error; Auto_List text_style_list; for(size_t i = 0; i < parser.getNumTokens(); ++i) { Auto_Desc text_range; error = sPSActionDescriptor->PutInteger(text_range.get(),keyFrom,static_cast<int32>(parser.getTokenStart(i))); if(error) return error; error = sPSActionDescriptor->PutInteger(text_range.get(),keyTo,static_cast<int32>(parser.getTokenEnd(i))); if(error) return error; Auto_Desc text_style; error = sPSActionDescriptor->PutBoolean(text_style.get(),keyBold,parser.getTokenBold(i)); if(error) return error; error = sPSActionDescriptor->PutBoolean(text_style.get(),keyItalic,parser.getTokenItalic(i)); if(error) return error; error = info.saveTextStyle(text_style.get()); if(error) return error; error = sPSActionDescriptor->PutObject(text_range.get(),keyTextStyle,classTextStyle,text_style.get()); if(error) return error; error = sPSActionList->PutObject(text_style_list.get(),classTextStyleRange,text_range.get()); if(error) return error; } Auto_List paragraph_style_list; for(size_t i = 0; i < parser.getNumParagraphs(); ++i) { Auto_Desc paragraph_range; error = sPSActionDescriptor->PutInteger(paragraph_range.get(),keyFrom,static_cast<int32>(parser.getParagraphStart(i))); if(error) return error; error = sPSActionDescriptor->PutInteger(paragraph_range.get(),keyTo,static_cast<int32>(parser.getParagraphEnd(i))); if(error) return error; Auto_Desc paragraph_style; error = info.saveParagraphStyle(paragraph_style.get()); if(error) return error; error = sPSActionDescriptor->PutObject(paragraph_range.get(),keyParagraphStyle,keyParagraphStyle,paragraph_style.get()); if(error) return error; error = sPSActionList->PutObject(paragraph_style_list.get(),keyParagraphStyleRange,paragraph_range.get()); if(error) return error; } Auto_Desc layer_text; error = Utils::PutWString(layer_text.get(),keyText,parser.getProcessedString()); if(error) return error; if(parser.getNumTokens()) { error = sPSActionDescriptor->PutList(layer_text.get(),keyTextStyleRange,text_style_list.get()); if(error) return error; } if(parser.getNumParagraphs()) { error = sPSActionDescriptor->PutList(layer_text.get(),keyParagraphStyleRange,paragraph_style_list.get()); if(error) return error; } Auto_Desc action; error = sPSActionDescriptor->PutReference(action.get(),keyNull,layer_ref.get()); if(error) return error; error = sPSActionDescriptor->PutObject(action.get(),keyTo,classTextLayer,layer_text.get()); if(error) return error; Auto_Desc result(false); return sPSActionControl->Play(&result,eventSet,action.get(),plugInDialogSilent); }
//------------------------------------------------------------------------------- // // PropetizerData::WriteScriptParameters // // Write out what happened. // //------------------------------------------------------------------------------- void PropetizerData::WriteScriptParameters(void) { if (gFilterRecord->descriptorParameters != NULL) { Auto_Desc actionDescriptor; if (fBits.test(iNudgeH)) sPSActionDescriptor->PutFloat(actionDescriptor.get(), keyMyNudgeH, fBigNudgeH); if (fBits.test(iNudgeV)) sPSActionDescriptor->PutFloat(actionDescriptor.get(), keyMyNudgeV, fBigNudgeV); if (fBits.test(iHorizontal)) sPSActionDescriptor->PutFloat(actionDescriptor.get(), keyMyHorizontal, fRulerOriginH); if (fBits.test(iVertical)) sPSActionDescriptor->PutFloat(actionDescriptor.get(), keyMyVertical, fRulerOriginV); if (fBits.test(iGridMajor)) sPSActionDescriptor->PutFloat(actionDescriptor.get(), keyMyGridMajor, fGridMajor); if (fBits.test(iGridMinor)) sPSActionDescriptor->PutFloat(actionDescriptor.get(), keyMyGridMinor, fGridMinor); if (fBits.test(iWatch)) sPSActionDescriptor->PutInteger(actionDescriptor.get(), keyMyWatch, fWatchSuspension); if (fBits.test(iCopyright)) sPSActionDescriptor->PutBoolean(actionDescriptor.get(), keyMyCopyright, true); if (fBits.test(iURL)) sPSActionDescriptor->PutString(actionDescriptor.get(), keyMyURL, const_cast<char*>(fURL.c_str())); if (fBits.test(iWater)) sPSActionDescriptor->PutBoolean(actionDescriptor.get(), keyMyWater, true); if (fBits.test(iSliceID)) sPSActionDescriptor->PutInteger(actionDescriptor.get(), keyMySliceID, fSliceID); if (fBits.test(iSliceIndex)) sPSActionDescriptor->PutInteger(actionDescriptor.get(), keyMySliceIndex, fSliceIndex); if (fBits.test(iXMP)) sPSActionDescriptor->PutString(actionDescriptor.get(), keyMyXMP, const_cast<char*>(fXMP.c_str())); if (gFilterRecord->descriptorParameters->descriptor != NULL) { sPSHandle->Dispose(gFilterRecord->descriptorParameters->descriptor); gFilterRecord->descriptorParameters->descriptor = NULL; } sPSActionDescriptor->AsHandle(actionDescriptor.get(), &gFilterRecord->descriptorParameters->descriptor); gFilterRecord->descriptorParameters->recordInfo = plugInDialogOptional; } }