negerns
programming in the dark
Negerns ACE for D Release 0.3.0 31 Mar 5:44 pm

Version 0.3.0 has just been released and is available for download. This release is mostly bug fixes. There is one enhancements in this release:

Select All item in Find results

Users can now select find result item(s) and perform an operation on those items. There is no longer a need to have separate functions like copy all, bookmark all, unbookmark all. This enhancement will also make it easier to add more functionality that works on find results items.

The bug fixes can be found in the release notes.

wxWidgets 2.9.4 Project Dependencies 12 Feb 7:47 am

Alphabetical list of projects. Items with an asterisk are standalone projects.

  advance         (base, core)
  aui             (base, core, advance)
  base            (expat, regex, zlib)
  core            (base, jpeg, png, tiff)
* expat
  gl              (base, core)
  html            (base, core)
* jpeg
  media           (base, core)
  net             (base)
* png
  propertygrid    (base, core, advance)
  qa              (base, core, xml)
* regex
  ribbon          (base, core, advance)
  richtext        (base, core, advance, xml, html)
* scintilla
  stc             (base, core, scintilla)
* tiff
  xml             (base)
  xrc             (base, core, advance, xml, html)
  webview         (base, core)
* zlib

Solution and Project files Download

Download the Visual Studio 2010 solution and project files here. Configuration settings for static and dynamic libraries for debug and release versions have been built without warnings. Please note that I have done the following changes as an experiment for my project:

  • Renamed library output files;
  • Changed the target and intermediate directories;
  • removed references to library files in the Linker configuration that, when removed, did not cause any build warnings or errors.
Building wxWidgets 2.9.4 using Visual Studio 2010 11 Feb 12:11 am

Compiling wxWidgets 2.9.4 using Microsoft Visual Studio 2010 is not as straight forward as I thought. My initial compilation produced errors that I was not familiar with like cmd.exe failing.

  • wxWidgets 2.9.4 (revision 87a1db last committed by Vadim Zeitlin on 02/09/2013 07:11 PM)
  • Microsoft Visual Studio 2010 SP1
  • Windows 7 Home Premium SP1 64-bit

Setup.h could not be found

The setup.h file is not in \include\wx\msw but there is a setup0.h file. I created setup.h from setup0.h.

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1151,5): warning MSB8012: TargetPath(D:\projects\ais\app\wx\build\msw\..\..\lib\vc_lib\base.lib) does not match the Library's OutputFile property value (D:\projects\ais\app\wx\build\msw\wxbase29ud.lib). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1153,5): warning MSB8012: TargetName(base) does not match the Library's OutputFile property value (wxbase29ud). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).

Mismatched Output Filename Warnings

I did the following:

  • Each project Target Name property was changed to be consistent with the output filename.
  • Change the Librarian | General | Output File property to $(TargetDir)$(TargetFileName).
  • Optional: The following property is not included in any of the errors and warnings, I just can’t let it pass. Change C/C++ | Output Files | Program Database File Name to $(TargetDir)$(TargetName).pdb.

Solution and Project files Download

Download the solution and project files here. Configuration settings for static and dynamic libraries for debug and release versions have been built without warnings. Please note that I have done the following changes as an experiment for my project:

  • Renamed library output files;
  • Changed the target and intermediate directories;
  • removed references to library files in the Linker configuration that, when removed, did not cause any build warnings or errors.
Negerns ACE for D Release 0.2.0 23 Sep 2:48 am

Version 0.2.0 has just been released and is available for download. This release was focused on bug fixes and enhancement of existing features. There are a few small notable enhancements in this release:

Faster Find Routine

Although there are no benchmark figures for this, the results during testing were significant. The routine executes 200 percent faster than the previous version. I urge you to get a feel of this new enhancement and you will not be disappointed.

Auto Hide Pane

This feature is a bit incomplete for now. It is only available for the results pane which is displayed at the bottom of the window. But it is a welcome enhancement.

Copy/Bookmark Find Results

This feature was implemented out of necessity when I was doing some text editing. It might not be frequently used but it sure is going to be helpful.

Save Bookmarks in Session Files

Bookmarks are now saved in session files. Bookmarks are automatically loaded and set when opening a session file. It also saves where the caret was when you saved the session.

Other small enhancements and bug fixes is in the release notes.

Auto Hide wxAUI Pane 18 Sep 9:58 pm

This is a hack to implement auto hide/popup of a wxAUI Pane. It is a test whether such functionality could be implemented because I was getting a bit tired of manually hiding/showing panes and it seems an inevitable feature in my editor project when used in a limited desktop space.

So, what do I want?

image

  • A pane that automatically minimizes when focus is moved to the main control
  • A means to bring up the pane again by hovering the mouse over some control

What do I have?

  • I have a pane at the bottom of my main window
  • The pane has a wxAuiNotebook with three tab pages
  • The bottom pane can be shown/hidden

Hide the pane

Setting the focus on the main control (editor control), simply calls the hide functionality of the bottom pane.

image

Now, I want something that the mouse can hover and bring up the bottom pane. The previous implementation left nothing where the mouse could hover. A toolbar-like control could be used here but I opt for the wxAuiNotebook control to do it. I resized the bottom pane to a minimum, just enough to show the tab pages of the wxAuiNotebook control.

Show the pane

The wxAuiNotebook control tab page tooltip is set using wxAuiNotebook::SetPageToolTip(). The tab tooltip appears when the mouse hovers on the tab page. This is the functionality I needed which was already implemented.

I replaced the wxAuiNotebook code that displays the tooltips with the following:

int new_selection = GetIdxFromWindow(wnd);
if ((new_selection != GetActivePage() || wxDynamicCast(GetParent(), wxAuiNotebook)))
{
    wxAuiNotebookEvent e(wxEVT_COMMAND_AUINOTEBOOK_UNHIDE, m_windowId);
    e.SetSelection(new_selection);
    e.SetOldSelection(GetActivePage());
    e.SetEventObject(this);
    GetEventHandler()->ProcessEvent(e);
}

You will notice that the code above is the same code from wxAuiTabCtrl::OnLeftDown(). I used that code because I want to bring up the tab page where the mouse is hovering. Instead of the page changing event, I created a new event wxEVT_COMMAND_AUINOTEBOOK_UNHIDE that is triggered. The client catches this event, changes tab selection and shows the pane.

notebook->Bind(wxEVT_COMMAND_AUINOTEBOOK_UNHIDE, &ResultsManager::OnUnhide, this);
...
void ResultsManager::OnUnhide(wxAuiNotebookEvent& e)
{
    int n = e.GetSelection();
    notebook->SetSelection(n);  // Change the page and
    Show();                     // display the pane
}
Negerns ACE for D Initial Release 22 Aug 2:05 am

Negerns is a code editor for the D programming language and aims to be an Integrated Development Environment (IDE) for D.

Aside from the basic editing features, it has included a more advance editing features that one might find useful from time to time.

Insert Prefix/Suffix Text

  • Allows insertion of text at the start and/or at the end of a line.
  • Allows insertion of text at specific columns from the start and/or from the end of a line.

Join/Split Lines

  • Allows a line to be split using a delimiter.
  • Allows multiple lines to be joined and separated using a delimiter.

Word/Line Sorting

  • Can sort words or lines ascending or descending.

File System View

  • Simple file system viewer.

Favorites

  • Maintains a list of your favorite folders and files.

Simple Task Manager

  • Maintains task items with category, priority and status.


All original content is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License except that which is quoted from elsewhere or attributed to others. In short, you may reproduce, reblog, and modify my content, but you must provide proper attribution.

Creative Commons License

Theme designed by negerns.