Table of Contents

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;