1. Open CONTROL PANEL, REGIONAL SETTINGS
2. Change THOUSANDS SEPARATOR TO "."
(THOUSANDS SEPARATION is ON or OFF, IS OK!!!)
3. Delete FILENOTE.INI
4. Restart Your Commy!
PlgSetLeftPaneActive:
PlgSetRightPaneActive:
PlgIsPaneLeft%: REM Return KTrue% if yes or 0 if not
PlgIsPaneSingle%: REM Return KTrue% if yes or 0 if not
PlgInvertMarkedActive:
PlgInvertMarkedPassive:
PlgSkinInstall%:(aSkin$)
PlgSortActive:(sortmod%, aReverse%)
PlgSortPassive:(sortmod%, aReverse%)
sortmod%= 1 ByName, 2 BySize, 3 ByDate
aReverse%= KTrue% descending, KFalse% ascending
Thanks WoGo for suggesting new functions:
PlgSetLeftPaneActive:
PlgSetRightPaneActive:
PlgIsPaneLeft%:
1) Open file "Plugin_Template.opl"
2) Go to procedure PlgRun:
3) Put this line there:
TRAP DELETE "c:\system\data\opera\cache4\*.*"
4) Translate file - go to menu item "Translate".
A file called "Plugin_Template.opo" will be created. Move it to "C:\System\Apps\FileNote\Plugins\" folder and rename to anything you like.
It must have extension .opo!
Press Chr+P from FileNote or use menu item "Plugins" and run your plugin!
All junk files in your cache4\ folder will be deleted.
I think there are no folders there, because they will not be deleted with supplied command. In that case, let me know and we will use some of FNMacroLib functions
Followed as per the above instructions but couldn't delete the files. I will figure out where did i do wrong. Anyway the delete plugin you'd sent me worked flawlesssly. It's superfast mini deletion mini tool at work Thank you very much. OPL rocks
BTW, fyi, the earlier @mailbox issue is solved. I dont know how it happened but it's functioning normally now.
Since powerdesk,idesk have their own restart function, the only viable option to have it under FN is a Plugin to the standalone Rebooter unless our suave Edo plans to write another reboot tool
>>> FileNote Macro Library - v. 1.2 <<<
================================
[Read history at the bottom of file!]
Macro library file "FNMacro.lib" must be placed in FileNote
instalation folder - "C:\System\Apps\FileNote\"
It contains a number of functions that can be used in the plugins.
Plugin is simply translated OPL program which can be created using
"Program" editor.
These translated *.opo files must be stored in a
"C:\System\Apps\FileNote\Plugins\" folder.
The plugin source code must contain 2 procedures:
PlgAbout: should display an about dialog, with plugin name,
copyright information and a brief description of what plugin does.
PlgRun: is the main procedure of the plugin and it carries out the
plugin function.
A special plugin template is also provided, as well as a demo plugin.
If a plugin with name "Autostart.opo" is found in plugins folder, it
will be automatically run upon start of FileNote.
Macro library functions enable use of various FileNote browser
functions and also provide an easy access to filesystem.
Any OPL commands can be used in writing plugins, and even more
procedures could be added. The efficiency and functionality of
plugins is limited only with users knowledge of OPL.
What is important, a user with only basic knowledge of OPL should
be able to create simple and useful plugins.
It is most recommended to have a look into demo plugin, where some
simple macro functions are demonstrated.
Let's hope that with time there will be more user written plugins, from
which the OPL novices could learn.
Long live OPL :-)
Run syntax:
==========
PlgDirPathActive$:
Return full path of active pane folder
PlgDirPathPassive$:
Return full path of passive pane folder
PlgDirFullNameActive$:
Return full filename of file/folder under cursor in active pane
PlgDirFullNamePassive$:
Return full filename of file/folder under cursor in passive pane
PlgDirCountActive%:
Return total nymber of items (incl. ".." if pane is not root) in active pane
PlgDirCountPassive%:
Return total nymber of items (incl. ".." if pane is not root) in passive pane
PlgIsDirActive%:
Return 1 if pane is folder (".." as first line), 0 if root
(so total no. of files/dirs is PlgDirCountActive%: - PlgIsDirActive%: )
PlgIsDirPassive%:
(as above, but used for passive pane)
PlgDirCountDirsActive%:
Return total number of directories in active pane
PlgDirCountDirsPassive%:
Return total number of directories in passive pane
PlgDirCountMarkedActive%:
Return total number of marked items in active pane
PlgDirCountMarkedPassive%:
Return total number of marked items in passive pane
PlgDirNameActive$:
Return name with extension ("name.ext") of file under cursor in active pane
(folder contains backslash ("\") - (like "Documents\")
PlgDirNamePassive$:
(same as above - for passive pane)
PlgDirFullNameActiveAt$:(aPos%)
Returns fullpath and filename of file at position aPos% in active pane
aPos% is absolute - may contain ".." as first line
(folder contains backslash ("\") at the end - (like "C:\Documents\")
PlgDirFullNamePassiveAt$:(aPos%)
(as above - for passive pane)
PlgDirNameActiveAt$:(aPos%)
Returns name with extension ("name.ext") of file at position aPos% in active pane
aPos% is absolute - may contain ".." as first line
(folder contains backslash ("\") at the end - (like "Documents\")
PlgDirNamePassiveAt$:(Pos%)
(as above - for passive pane)
PlgDirUIDActive&:(uid%)
Return uid% (1,2,3) of file under cursor in active pane
(returns -1 if it is not a file or is opened)
PlgDirUIDPassive&:
(as above - for passive pane)
PlgDirUIDAt&:(aPos%,uid%)
Return uid% (1,2,3) of file at position aPos% in active pane
aPos% is absolute - may contain ".." as first line
(returns -1 if it is not a file or is opened)
PlgDirUIDPassiveAt&:(Pos%)
(as above - for passive pane)
PlgDirActiveGoto%:(aPos%)
Go to and place cursor on file at position aPos% in active pane
aPos% is absolute - may contain ".." as first line
Returns 0 if aPos% doesn't exist, otherwise it returns aPos%
PlgDirPassiveGoto%:(aPos%)
(as above - for passive pane)
PlgDirActiveFind%:(aFile$, aPos%, sensitive%)
If aFile$ (may be a partial string) is found in active pane, place cursor on it.
Search from position aPos% (starting from 1)
sensitive% - 0 or 1
Return aPos% if found or 0 if not found
PlgDirPassiveFind%:(aFile$,aPos%,sensitive%)
(as above - for passive pane)
PlgSetPaneMode:(mode%)
Set browser mode to 1 or 2 pane (mode%= 1,2)
PlgSetLeftPaneActive:
PlgSetRightPaneActive:
PlgIsPaneLeft%:
Return KTrue% if positive, 0 if not
PlgIsPaneSingle%:
Return KTrue% if positive, 0 if not
PlgSetDirActive%:(aDir$)
Set active pane to aDir$ (must be fullpath and include backslash ("\") at end)
Returns KTRUE if folder/disk doesn't exist
Cursor is positioned at first line, by deafult
PlgSetDirPassive%:(aDir$)
(as above - for passive pane)
PlgMarkActive%:(aSpec$)
Mark all items in active pane that match aSpec$ (wildcards allowed)
Multiple patterns must be separated with semicolon (";") like *.doc;*.zip
Return number of marked items
PlgMarkPassive%:(aSpec$)
(as above - for passive pane)
PlgFilterActive%:(aSpec$)
Mark all items in active pane that match aSpec$ (wildcards allowed)
Multiple patterns must be separated with semicolon (";") like *.doc;*.zip
Return number of filtered items
(hint - it will filter all marked items)
PlgFilterPassive%:(aSpec$)
(as above - for passive pane)
PlgMarkUnMarkActiveAt%:(aPos%)
Mark or unmark item at position a Pos% in active pane
Returns KTRUE if aPos% doesn't exist
PlgMarkUnMarkPassiveAt%:(aPos%)
(as above - for passive pane)
PlgUnmarkAllActive:
Unmark all items in active pane
PlgUnmarkAllPassive:
Unmark all items in passive pane
PlgMarkedDelete%:
Delete all marked items (folders included) in active pane
Return 0 if success, -1 if any error
PlgMarkedCopy%:(aAsk%,aRestoreFld%)
Copy all marked items (folders included) from active to passive pane
aAsk%=0,1 (0 for "smart rename", 1 for "ask to replace")
Return 0 if success, -1 if any error
PlgMultiRename%:(aPrefix$,aSuffix$,aName%,aExt%,aCase%,aDate%,aDatePos%,aCounter%,aCounterPos%,aMove%)
Multi rename all marked items in active pane (and move to passive pane if aMove%=1)
aPrefix$
aSuffix$
aName%=0,1 (0 - On, 1 - Off)
aExt%=0,1 (0 - On, 1 - Off)
aCase%= 1 - unchanged, 2 - All lower, 3 - All UPPER, 4 - First letter upper, 5 - First of Each Word Upper
aDate%=0,1 (0 - Off, 1 - ON)
aDatePos%=1 - after name, 2 - after ext., 3 - after prefix, 4 - after suffix
aCounter%= 0,1 (0 - Off, 1 - ON)
aCounterPos%=1 - after name, 2 - after ext., 3 - after prefix, 4 - after suffix
aMove%= 0,1 (0 - No, 1 - Yes)
PlgHexview:(aFile$)
Hex view file aFile$
PlgTextview:(aFile$)
Text view file aFile$
PlgMBMview:(aFile$)
MBM view aFile$
PlgAddToLog:(aString$)
Add aString$ to Activity log
PlgPaneMatch:
Match left and right pane
PlgPaneSwap:
Swap panes
PlgPaneFocusChange:
Make opposite pane active
PlgFileUp:
Go one line up in active pane
PlgFileDown:
Go one line down in active pane
PlgFileFirst:
Go to first line in active pane
it may be ".." if active pane is a folder (not root)
PlgFileLast:
Go to last line in active pane
PlgFilePageUp:
Go one page up in active pane
PlgFilePageDown:
Go one page down in active pane
PlgFilePageHome:
Go to first line on page in active pane
PlgFilePageEnd:
Go to last line on page in active pane
PlgDirUp:
Go one folder up
PlgSkinInstall%:(aSkin$)
Return 0 if aSkin$ does not exist, KTrue% if positive
PlgBrowserResize:(aWidth%,aHeight%)
Resize browser to values aWidth%,aHeight%
PlgBrowserPosition:(aPos%)
Position browser to aPos%
Top right=1, Bottom right=2, Bottom left=3, Top left=4, Center screen=5
PlgProgressBar:(item%,total%)
Raise FN progress bar.
item% = current item in a loop
total%= total number of elements in a loop
This function must be placed before 1st element (item%=0)
PlgProgressBar:(0,0) will destroy progress bar, after loop is finished.
It must be placed after loop is closed
PlgPause:(secs%)
Pause for secs% (in seconds)
Smart pause so that no event can "eat" it.
Also smaller values than second can be used (1/2, 1/4 etc...)
REM General functions
Browser is not updated automatically upon execution of the following 4 functions.
PlgUpdatePane?: should be used at the end of your code.
PlgRename%:(aFile$, aDest$)
Rename aFile$ to aDest$
aFile$ can be either file or folder (with or without backslash "\" at the end).
Return 0 if success, -1 if any error
PlgCopyFile%:(aFile$, aDest$, smart%)
Copy aFile$ to destination folder aDest$ (must contain backslash "\" at the end)
smart%=0 - overwrite, 1 - smart rename file if it exists in destination folder
Return 0 if success, -1 if any error
PlgCopyDir%:(aDir$, aDest$, smart%)
Copy folder aDir$ to destination folder aDest$
Both aDir$ and aDest$ must contain backslash "\" at the end
smart%=0 - overwrite, 1 - smart rename file if it exists in destination folder
Return 0 if success, -1 if any error
PlgDelete%:(aFile$)
Delete aFile$ (may be file or folder - fullpath must be used)
Folder must contain backslash ("\") at the end
Return 0 if success, -1 if any error
PlgParseDrive$:(aFile$)
Return drive component of file/folder a File$ - "C:", "D:" etc...
PlgParseFilePath$:(aFile$)
Return full path of file aFile$ - "C:\Docs\MyDocs\" etc...
PlgParseExt$:(aFile$)
Return extension component of aFile$ with dot(.) - ".doc" etc...
PlgParsePopDir$:(aDir$)
Return parent (pop) folder of aDir$
(returns "C:\Docs\" for aDir$ "C:\Docs\MyDocs\", etc...)
PlgParseNameAndExt$:(aFile$)
Return name and extension of aFile$ - "name.doc" etc...
PlgParseName$:(aFile$)
Return only file's name without extension - "name" etc...
PlgParseDirName$:(aDir$)
Return only name of folder aDir$ with backslash ("\") - "MyDocs\" etc...
----- NOT IN USE ----------
PlgArrayCreate&:
PlgArrayFree:(array&)
PlgArrayAdd:(array&,item$)
PlgArrayItemAt$:(array&,Pos%)
PlgArrayItemCount%:(array&)
PlgArrayFind%:(string$)
----------------------------------
HISTORY:
1.2
Removed PlgDirFirst: function (because it is same as PlgFileFirst: function)
Removed PlgDirGoto%:(aPos%) and replaced with:
PlgDirActiveGoto%:(aPos%)
PlgDirPassiveGoto%:(aPos%)
Some old functions are more explained.
All file management functions now return 0 if success, else -1
These are:
PlgRename%:(aFile$, aDest$)
PlgCopyFile%:(aFile$, aDest$, smart%)
PlgCopyDir%:(aDir$, aDest$, smart%)
PlgDelete%:(aFile$)
PlgMarkedDelete%:
PlgMarkedCopy%:(aAsk%,aRestoreFld%)
FileNote 2.05 Beta 01 is out with mailing list members
Main points:
1) Improved Macro panel/table
It consists of 3 pages (3x27 slots)
You can assign shortcuts to FN plugins, documents and programs.
You can run shortcuts either by pressing a letter slot or with ENTER on a shortut itself.
Pages are toggled with TAB, or pressing keys 1,2,3 or by navigating with
keys (up, down, left, right).
Try menu as well. Remind you that you can start Macro table with dot(.) and Chr(Alt)+P or from the menu (Extras item).
2)Supplied few simple plugins from WoGo (min,max,FNdirs,Opldirs) and zul (Opera_Junk_Trasher)
These are OPL files that should be translated first!
Thank you guys
I hope there would be some more plugins from other users:)
Also provided updated Plugin_Demo ver. 03.
1) Macro panel can contain max. 4 tabs (pages).
User can set visible (Ctrl+P) either 1, 2, 3 or all 4 tabs at once.
There is a total of 108 slots (4 tabs x 27 slots) - enough, I hope
2) Built in a Plugin Error Handler which takes care of any mistakes
a user can make in his plugin code. In case of an error, it will be trapped and
a detailed error dialog raised. All error data are automatically written to Activity log,
so that user can easily check the error and fix the code.
Still, experienced OPL users are recommended to install their own error handling code when writing plugins.
Even then, if by any chance an error is not trapped by user's own code, it will be handled by Plugin Error Handler instead.
Hi all,
Thanks to Edo and WoGo for the bundled plugins. The skin install opl file was an excellent "handhold" guide for me. As such, i created my own skin install plugins namely my fav-sunflower and of course the default skin.
Below is my sample of the 04 renamed tabs
And the randomly created program tabs. Java apps need a lot of mucking around to get the uids.
And the randomly created program tabs. Java apps need a lot of mucking around to get the uids.
Not that difficult, zul
You can check app uid with Ctrl+P (Properties) from Browser or with Ctrl+A (on selected shortcut) from the panel itself when the shortcut is already set.
You can identify Java app just by running the shortcut, and then renaming it.
In short, FN takes use only of standard (Symbian) OPX libraries in order to avoid any eventual troubles (compatibility issues) with third party OPX's like AppInfo.OPX, which can get the real caption of the programs.
View+ extracts the correct app captions from the AIF files directly, but I am not in mood to waste time hacking AIF files on communicator. It doesn't mean I wan't do it later
Rgds
Edo
Last edited by Edo on Sun Dec 17, 2006 8:54 am; edited 1 time in total
Edo,
Info noted with thanks. I understand of your original philosophy in using Symbian's only OPX libraries. My point of contention is this: In order for FN to reach a larger userbase when it is public released, the "user experience" is very important. For ER5 users who have used macro5, they will find FN right at home. For beginner to intermediate level of users it may take sometime to acquaint with FN's macros. Not to worry, I think i'll prepare a an extended preview on this soon
Keep coding. You have taken macro5 on series 80 to a different level..
1) Added new menu item - Hotkeys.
User can set global hotkey for FN and separately for Macros (panel).
With FN hotkey just wanted to make FN independable on some other applications that provide hotkeys (from where FN can be brought to foreground).
With Macros hotkey user can get macros panel alone on top of any running application and execute (run) any documents/programs/plugins by
pressing a shortcut assigned letter. Of course it doesn't make much sense to run plugins relating directly to FN browser
2) Removed previous shortcuts that used Chr:
Removed Chr+P (superfluous now) - user can use dot (.) to get macros (panel).
Replaced Chr+M with Shift+Ctrl+Y (get total folder size of all visible directories in browser active pane).
Replaced Chr+O with Shift+Ctrl+K (use of OPL decompiler).
3) Replaced Ctrl+P with Ctrl+T in macros panel (set visible tabs).
4) Corrected FN Macro Library text file (two functions description).
Shockingly tempting view . So wicked look!
The cool eye aif icon was on Desk temporarily and then disappeared after subsequent revisions. Can please you tell me/us, how do i restore it and minimised tab as in your screenshots? .Thanks.
These plugin stuffs are very addictive.
btw, since you cant' access system file via opl in order to create archive within FN, can't plugin do it? what about plugin to send file via BT/sms/mms? If these features are possible, then FN is the "only" one i need .
Best regards.
zul
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum