Page 10 of 18

Re: FarNet — .NET Far API and .NET module manager

Posted: Mon 26 Jul, 2010 11:28
by NightRoman

Latest post of the previous page:

= 4.3.25 =

*) IEditor
-- Very good news: workaround methods BeginAccess/EndAccess for faster line
iterations are not needed anymore (Far 2.1623+) and removed. Breaking change,
modules using them should be updated.
-- If EditorKit module is used then it has to be rebuilt.

*) Documentation
-- It is adapted for and built by the latest Sandcastle. Documentation style is
changed from "Prototype" to "VS2005" because "Prototype" is declared obsolete.
("VS2005" style is better, basically)

Re: FarNet — .NET Far API and .NET module manager

Posted: Wed 04 Aug, 2010 11:01
by NightRoman

= 4.3.26 =

*) New utility library FarNet.Tools.dll (and its FarNet.Tools.xml)
It will contain tools that are not FarNet API or Far Manager API but extra
FarNet utilities designed for all modules. If a module uses these tools then
FarNet.Tools.dll should be added to its references together with FarNet.dll.
-- moved SubsetForm from FarNet to FarNet.Tools;
-- added new utility form ProgressForm; examples: Test-ProgressForm-.ps1 in
PowerShellFar and the separately distributed module FolderChart.

*) Utility forms moved from FarNet to FarNet.Tools
-- removed IFar.CreateSubsetForm() method;
-- removed interfaces IForm and ISubsetForm.

*) Documentation
-- Added documentation of new FarNet.Tools types.
-- Improved index panel: added sub-indexes for types, joined indexes for
members with same names + full names view in the "Topics found" dialog.

Re: FarNet — .NET Far API and .NET module manager

Posted: Mon 16 Aug, 2010 17:56
by NightRoman

= 4.3.27 =

*) FarNet.Tools.ProgressForm
-- New helper method SetProgressInt64() for long integer values.
-- New method Invoke() invokes the specified job action delegate in a new
thread. This is a simple scenario with optional job thread abortion.
-- New features were tried/tested in the MultiHasher module and will be
proposed to the author. Watch the MultiHasher announcements.

Re: FarNet — .NET Far API and .NET module manager

Posted: Fri 20 Aug, 2010 12:40
by NightRoman

= 4.3.28 =

*) IEdit, IComboBox
Added property IsTouched (~ DM_EDITUNCHANGEDFLAG).

*) New interface IEditable
IEdit and IComboBox now share the same base interface IEditable.
(It's unlikely breaking, but probability is not zero)

Re: FarNet — .NET Far API and .NET module manager

Posted: Fri 27 Aug, 2010 14:09
by NightRoman

= 4.3.29 =

*) Far.Net.UI
New method SetProgressFlash() (Far 2.0.1660, ACTL_PROGRESSNOTIFY).

*) FarNet.Tools.ProgressForm
The progress form calls SetProgressFlash() after show. As a result, such
modules as FolderChart, MultiHasher have this new feature automatically.
NB: the toolbar icon flashes only if the window is not active.

*) IDialog
Fixed work of the TypeId property for native Far dialogs.

Re: FarNet — .NET Far API and .NET module manager

Posted: Sun 12 Sep, 2010 12:35
by NightRoman

= 4.3.30 =

*) IEditor
-- New property Bookmark gets the bookmark operator.
-- Method Bookmarks() moved to the IEditorBookmark.

*) New interface IEditorBookmark
Operates on the standard and stack (new!) editor bookmarks.

*) Exceptions on Far call failures
InvalidOperationException is used for internal issues, e.g. Far call failures,
instead of OperationCanceledException. Modules may be affected if they used to
catch/check OperationCanceledException.

NB: for correct work with bookmarks use Far 2.0.1667+

Re: FarNet — .NET Far API and .NET module manager

Posted: Wed 01 Dec, 2010 17:53
by NightRoman

= 4.3.31 =

*) UI: new .NET menu items
Added two new menu items "Editors..." and "Viewers..." that show the editor or
viewer list sorted by recent activity. This is experimental but it looks like a
useful addition to the native Far menu Screens.

*) Editor & Viewer
-- New methods Activate() to make the instance window active.
-- Improved internal management of editor and viewer lists. Useful side effect:
IFar methods Editors() and Viewers() return instances sorted by last activity.

*) IEditor
-- New properties KeyCount, TimeOfOpen, TimeOfSave (for statistics, AI, etc.)
-- Changed Save(): it saves only on changes. This is shorter than often used
"if (!editor.IsSaved) Save();" and helps to avoid misuse of the IsModified.
-- New method Save(bool) allows to save even not changed file.

NB: change of Save() is unlikely breaking but you may want to review your calls
and remove not needed checks.

*) IViewer
-- New property TimeOfOpen (similar to IEditor).

Re: FarNet — .NET Far API and .NET module manager

Posted: Sun 12 Dec, 2010 15:47
by NightRoman

= 4.3.32 =

*) .NET menu
-- All panel menu commands and items moved to the new submenu "Panels...".
-- Added the submenu "Console...". There are two commands there: decrease and
increase console font size. This menu is available in all menus F11\.NET

Example mouse macros for the Common area:
-- CtrlMsWheelDown (FarNet: Decrease font size):
F11 $If (Menu.Select(".NET", 2) > 0) Enter c d $End
-- CtrlMsWheelUp (FarNet: Increase font size):
F11 $If (Menu.Select(".NET", 2) > 0) Enter c i $End

-- increasing fonts too much leads to appearance of the console scroll bars;
-- some fonts are not suitable for this kind of interactive resizing.

*) IEditor
-- SetText() now drops selection, if any; this way looks more intuitive.
-- Fixed GetSelectedText() for column kind of selection.

*) MouseInfo
-- New property Value (wheel value for the MouseWheel event). Note: MouseWheel
event works in Far 2.0.1756+

*) IListMenu
Fixed the permanent filter.

Re: FarNet — .NET Far API and .NET module manager

Posted: Tue 14 Dec, 2010 08:52
by NightRoman

= 4.3.33 =

*) Menu Console...
Commands Decrease/Increase font size: this feature works only in Windows Vista
and above. But it should not make problems in XP.

*) MouseWheel event in editor
It turns out this event is not yet supported by Far API. The issue is being
investigated, the event is not removed from FarNet but it does not work.

Re: FarNet — .NET Far API and .NET module manager

Posted: Sun 02 Jan, 2011 14:20
by NightRoman

= 4.3.34 =

*) x64: Fixed crashes in dialogs. Thanks to signatov2000.

*) IEditor.KeyCount
It is mostly designed for the Vessel module, not for public use. Most of not
significant keys are excluded (navigation, Ctrl and Alt combinations, etc.)

Re: FarNet — .NET Far API and .NET module manager

Posted: Sat 08 Jan, 2011 06:49
by NightRoman

= 4.3.35 =

*) IEditor.KeyCount
Corrected to count actual changes. (Reminder: it is not for public use)

Re: FarNet — .NET Far API and .NET module manager

Posted: Sun 16 Jan, 2011 18:57
by NightRoman

= 4.3.36 =

*) IEditor
Added yet missed property IsVirtualSpace (EOPT_CURSORBEYONDEOL in Far API).

*) IAnyPanel
New method SelectedIndexes().

*) Shelve/Unshelve FarNet panels
These actions use SelectedIndexes() and keep/restore selection by indexes, not
names. This is more effective and allows to restore selection with same names
(rare but still possible use case, e.g. process list). NB: Push/Pop of native
panels still use names because indexes might change if files changed.

Re: FarNet — .NET Far API and .NET module manager

Posted: Sun 23 Jan, 2011 15:22
by NightRoman

= 4.3.37 =

If a FarNet module provides commands invoked by prefixes then these commands
can be called from macros by callplugin(). The first argument is the FarNet
system ID: 0xcd. The second argument is the module prefix and command.

Example (RightControl and PowerShellFar commands):

callplugin(0xcd, "RightControl:step-left")
callplugin(0xcd, ">: Menu-Favorites-.ps1")

Mnemonic for 0xcd: eXecute CommanD

*) Search in FarNet panels
Search by name pattern and F3/CtrlQ on folders work. Note that module panels
should do this properly. E.g. built-in PSF panels do not support this, yet.

*) IEditor, IPanel, IDialog
Property object Data {get;set;} is replaced with Hashtable Data {get;}. This
change allows more than one user to attach data without conflicts. Table keys
should be unique, indeed (e.g. a unique reference, Guid, etc.).

*) IFar
Removed the Run method. Use more effective way: GetModuleCommand + Invoke.

*) ModuleCommandEventArgs
New property IsMacro tells that a command is invoked via callplugin().
New property Ignore to tell it is not done (e.g. to use another way).

Re: FarNet — .NET Far API and .NET module manager

Posted: Sat 29 Jan, 2011 08:01
by NightRoman

= 4.3.38 =

*** Use Far 2.0.1802+ ***

*) IFar.Message
New option Draw to draw message-like boxes.

*) IFar.UI (IUserInterface)
New method Draw(): actually draws the job done by DrawColor & DrawPalette
(it's more natuaral than also working DrawXXX(.., null)).

*) New interface FarNet.Tools.IProgress.

*) New class FarNet.Tools.ProgressBox : IProgress
Draws a simple message box with progress information.
PSF script Test-ProgressForm-.ps1 shows how to use it.

*) ProgressForm implements IProgress
- SetProgressValue() now works with double's, not int's.

Modules with ProgressForm:
- Multihasher should work fine;
- FolderChart has to be updated;
- Rebuild other (personal) modules.

*) ProgressBox & ProgressForm
Support of multiline text (see LineCount).

Re: FarNet — .NET Far API and .NET module manager

Posted: Sun 30 Jan, 2011 13:09
by NightRoman

= 4.3.39 =

*) API documentation FarNetAccord.chm
Used the patch for the help builder. There are many fixes. The most important
perhaps is the fix of missing enum value descriptions.

*) ProgressForm
- Removed obsolete SetProgressInt64(). Use SetProgressValue().
- If you use the MultiHasher module: take 0.2.1 or later.

*) IAnyPanel
New property bool CaseSensitiveSort { get; set; }

*) PanelSortMode
New value ChangeTime (~ SM_CHTIME).

*) Revision of the PanelSortMode enum and related panel properties
Added all the same values with the 'Reversed' suffix, e.g. added 'NameReversed'
for 'Name', etc. Thus, all *SortMode properties in panels now get/set the sort
mode and direction in one shot. This approach seems to be easy, intuitive, and
helps to avoid some mistakes. This change is breaking if a module uses removed
*ReverseSortOrder properties.

Re: FarNet — .NET Far API and .NET module manager

Posted: Thu 03 Feb, 2011 07:35
by NightRoman

= 4.3.40 =

*** Use Far 2.0.1807 ***

*) CallPlugin(0xcd, ..) properly opens modal UI and even panels!
CallPlugin supports asynchronous commands (steps and jobs). Asynchronous
commands are suitable for opening dialogs, modal editor/viewers, and even
panels. See Readme.txt for the details, examples, and a known issue, too.

*) IFar
New property MacroArea.

*) ModuleCommandEventArgs
New property MacroArea (instead of IsMacro).

*) IDialog
New property KeepWindowTitle (Far 2.0.1805). As a result, ProgressForm is now
able to show progress information in the console title, as ProgressBox does.

*) Housekeeping (BREAKING if a module is affected)
- Renamed FarMacroState to MacroState ("Far" is rather useless in here);
- PostKeys(, bool), PostText(, bool), PostKeySequence(, bool) - inverted the
second parameter: disableOutput -> enableOutput for consistency with PostMacro,
and Macro.EnableOutput. Also, this follows the rule of "default false". The
change is not breaking but may cause unwanted effects. Review these calls.

- Fixed a minor issue in Macro.EnableOutput.
- Fixed a multithreading issue in ProgressForm.
- Fixed an error message on closing a module panel which is opened over a
native plugin panel.