===== PhotoVision 2+ Plugins ===== Plugins is an extension to use third party app from PhotoVision. ==== Basic Configuration ==== Plugins\[plugin_name].ini All settings is stored in PhotoVision global config file Example: MSPaint.ini {File} - selected file [Config] ;Plugin Name on PhotoVision plugins list DisplayName=Microsoft Paint ;Name without extension InternalName=MsPaint ;for future use SupportedFiles=.BMP,.DIB,.JPG,.JPEG,.JPE,.JFIF,.GIF,.TIF,.TIFF,.PNG,.ICO,.HEIC,.WEBP ;0 - none, ;1 - pascal script ;2 - python [not implemented, for future use] ;3 - exe [not implemented, for future use] GUI=1 GUI_File=MSPaint.pas ; open with ; hdr [not implemented, for future use] ; batch ; command bar EngineType=1,0,0,1 ;Open with dialog Window, file menu [OpenWith] 1_Caption=Microsoft Paint ;2_Caption=Microsoft Paint ;3_Caption=Microsoft Paint ;4_Caption=Microsoft Paint ;5_Caption=Microsoft Paint 1_Exec=mspaint.exe ;2_Exec=mspaint.exe ;3_Exec=mspaint.exe ;4_Exec=mspaint.exe ;5_Exec=mspaint.exe 1_Params={FileName} ;5_Params= [CommandBar] 1_Caption=Paint (mspaint.exe) 1_Exec=mspaint.exe 1_UseCMD=0 ;See Translation section on PhotoVision documentation [Translation_PLK] ;Path ID_000=Ścieżka ;Version ID_001=Wersja: ;Find ID_002=Znajdź ==== Pascal Script UI ==== PascalScript functions and constants: //Constants CfgFile // Path to PhotoVision configuration file CfgDir // Path to configuration file directory ExifToolPath // Path to ExifTool CfgPanel //Dialogs procedure ShowMessage(const aMsg:string); //Strings function StrReplace(const S:string; Const OldPattern:string; const NewPattern:string) :string; function AnsiContainsStr(const AText: string;const ASubText: string ):Boolean; //Plugin GUI procedure PVP_SetTitle(ACaption: string); function PVP_CreateGroupBox(ACaption, AName: string; ATop, ALeft, AWidth, AHeight: Integer; AParent: TWinControl):TWinControl; function PVP_CreateLabel(ACaption: string; ATop, ALeft: Integer; AParent: TWinControl):TLabel; procedure PVP_CreateButton(ACaption: string;AId: Integer; AFlat: Boolean; ATop, ALeft, AWidth, AHeight: Integer; AParent: TWinControl); //INI functions function GetIniString(const Section, Key, Default, Filename: String): String; procedure SetIniString(const Section, Key, Value, Filename: String); function GetIniInt(const Section, Key: String; const Default: Integer; const Filename: String): Integer; SetIniInt(const Section, Key: String; const Value: Integer; const Filename: String); function GetIniBool(const Section, Key: string; const Default: boolean; const Filename: String): boolean; //Registry function RegQueryStringValue(const RootKey: cardinal; const SubKeyName, ValueName: String; var ResultStr: String): Boolean; function RegQueryStringValueSearchKey(const RootKey: cardinal; const SubKeyName, KeyToSearch, ValueName: String; var ResultStr: String): Boolean; //File function FileExists(const FileName: string):boolean; function ExtractFilePath ( const FullFileName : String ) : String; function GetAppDirectory():String; //File Win32/64 function GetFileVersion(const FileName: string): String; function GetSystemFolder:string; //UI function TranslatePluginUI(const default_text:string;const id: string;const TranslateFile: String):string; function SetScaledSize(AValue:integer):integer;