April 25, 2024, 04:28:35 PM

News:

Own IWBasic 2.x ? -----> Get your free upgrade to 3.x now.........


IWB+ Progress Updates

Started by LarryMc, October 06, 2010, 04:36:12 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

LarryMc

Well, a lot has happened since the last progress update.

As you know from my other post I didn't work on the new designer for a while.
For the last few days I had been looking at my code trying to figure out where I left off, where I was headed, and why I was doing things the way I was doing them.  This old brain don't work like it use to.

So, today I actually wrote some code that has to do with the scintilla editor windows.

Will elaborate more when I get enough of the new coding done.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

With some ideas from Sapero (even though I decided not to use his specific suggestions - too much of a rewrite from what I can understand) I have finally established the code structure where I will have multiple code windows available for viewing under the code tab and using a tab control at the bottom of the window to select which to actually view.

This will allow the user to open non-project files to copy/look at code they want to use in the project.

This will also allow the find-in-files tab to display non-project file(s) and open them in the Designer code tab.

Since I am not using MDI windows the user will not be able to look at 2 files at the same time (like can be done in the IWBasic IDE).

Also, if the user closes the designer while multiple files (project and non-project) are open AND has the "Load Last files" option selected and the "load last project" set then all the files will be opened when the Designer is next opened.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Spent a bunch of time this weekend trying to come up with a new/semi-new set of toolbar/menu icons.
I'm not very artistic but am pretty happy with what I got so far.

Coverting the structure over to opening multiple files instead of only one is slow going.  I'm trying to stay out of the mode of fixing one thing and breaking three others. -- Not totally successful in that respect.

The new version currently has 12,500 lines of code (some pulled in from the 1st version and some new).

LarryMc

LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

In the code editor tab I have the subroutine window working that contains a list of all the subroutines in the project regardless of which source file they are in.
Clicking one of the subroutines will open the file (if is not all ready open); select the tab that contains the file; and scrolls to the selected subroutine.

The font parameters for the subroutine list is set with the same preferences used for the code window.

Attached are 3 screen shots;
one showing the look of the new dropdown menus
one showing the new layout of the form editor tab and
one showing the layout of the code editor tab

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Ran into a little stumbling block.

The new version allows multiple source files to be open at one time.  This forces me to change how modifications are saved.

This has blown my previous "save scheme" (which wasn't simple) out of the water.

The problem area is in the syncing of changes the program automatically makes in the code when the forms and/or messaging handlers and changes made by the user directly. Add to that the fact that the new version allows the user to open non-project source files and the need to save changes on an individual file basis instead of the collective way it is done in the current version of the designer.

If I made all changes permanent when they are made the solution becomes pretty simple.
But that is not the way things normally work.

Anyone have any thoughts?

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Resolved my issues with managing the changes to multiple files of different types.
Took a lot of rework to my existing code.

For those that are interested, I've made a little crude movie of what it is looking like (in use) right now.

Click the link; open the zip; run the exe.
preview1.zip

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

As I had mentioned earlier, VD2 will not use the registry.  I had been using my CXmlLM class to put everything in xml files.

What I discovered is that I don't need the sophitcated structure capabilities of XML to do what I need (along with the extra navigation code).

So, I have converted over to the INI file format.  I created 4 very small routines to read/write numbers/strings.  Makes it very easy to code.  On average it reduces my xml code requirements by about 800%. Also retains the ability to view the configuration contents with a text editor (which some may ultimately find useful in the finished product).

This will also speed up my coding of the "meat" of the new version of the designer.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Been focusing on the ini files and preference GUI for the last couple of days.
One thing that I had added in my todo list was to add a separate menu item to just do a compile of the resource file.

The way EB/IWB acts now is that it recompiles the rc file first and then continues on compiling the rest of the source files even if there was an error in the rc compile.  And it won't relink with that or any other fatal compile error.
With all the separate source files in the Designer it does take a while to go through them all.
A pain when trying to debug errors in a resource file.

In the finished product if there is an error in the resource compiler the error message will be display with a hot link to the bad line the way errors in source files work.  Clicking on the hotlink will open the rc file in the code editor so it can be fixed directly.

LarryMc

LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Just about through with the editor preferences dialog.
It will have everything that the current Edit Options has in IWB/EB plus:

the option to have keywords as typed/all uppercase/all lowercase (like in the current designer)
a button to set the color of non project source files the user opens
a button to copy the setup from IWBasic  entries (if it is installed)
a button to copy the setup from EBasic  entries (if it is installed)
If they are not installed the corresponding button will be disabled.

Again, the designer itself doesn't use the registry to store its entries.

Screenshot attached.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Finished with editor preferences.

Default control parameters (w, h, fg, bg, font) restructured to use ini file instead of registry.
This new structure (internal) will facilitate the user being able to add and configure 22 custom controls at runtime.
22 is an arbitrary number that fits into my GUI nicely.

On my todo list is add the ability to save multiple copies of the control parameters so that they can be varied between different projects the user may be working on.

Attached is a screenshoot of the default basic control dialog.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Now there is a separate compile function just for resource files.
That way the user can compile a project's rc file immediately after editing the file without having to recompile the whole project.
If there are any errors the user can double click the error line msg in the compile output window and the code editor will open , open the rc file, and highlite the line containing the error.

The existing button that compiles everything and links to an executable will still be available.
Version 2.0 is now up to 15,600+ lines of code.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Designer 2.0 will not use the iwb or eb help folder to store help files.
Same as for not using bin folder to store addon tool files

Now, when you switch designer between IWB and EB the designer help file menu will pickup the help files from the selected compiler and add them to the designer's help file + the help files that have been added to the designer via the Help Menu Editor.

The Tool Menu Editor will now add the tool configuration files to the Designer's tool folder and will no longer clutter either the IWB or EB bin folder.

Adding menu items to the Tools or Help menus will no longer require a restart to pickup the new additions.
16,600+ lines of code
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Added menu option to remove tools and remove help items. (Not yet coded)

Currently working on Find in File function.

Will be a dedicated tab window in the designer.
results window will hold results of multiple searches
user will be able to select lines to be removed from results while retaining others
user will be able to clear all results with one button click
double clicking a result will take user to code window and specific line in file

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Just finished the FindInFile feature.

As it turns out I REALLY like the way it works.
Especially the fact that the output list can contain the results of mutiple searches.

16,900+ lines of code

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

With some code provided by Sapero as the basis I've started working on the debug functionality.

I'm breaking new ground for myself here so I don't know exactly what I'll wind up with right now.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

after spending the last day and a half looking into thr dglhelp.dll api's I have determined the complexities are enough for me to put it on the shelf for now. 
There are plenty of things left to do on ver 2.0 that I know how to code(and want to have completed for the release of ver 2.0).
My time will be better spent working on them.
And besides, the user will always be able to use the debugger in the IWB IDE.
So, the designer's version of the debugger will probably wind up as a free revision upgrade to 2.0.

So, right now my next coding task will be that of making the adjustment when a project is moved to a new folder.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Just finished the code to check if a project has been moved to a new folder and, if so, making the necessary adjustments.

I needed that functionality for the next step which is the Backup/Restore menu options.
An entire project folder with all files/sub folders can be backed up into a single compressed file.
The user will be able to restore the project to any empty folder of their choosing at a later date.

This feature is to allow (and encourage) the user to make regular backups during a projects development in case of a crash.

So, now I'm working on backup/restore.

17,100+ lines of IWB code.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Just finished the backup\restore functions.
When the user selects the backup option for the current project
dialog opens with default backup name which is project name +date
i.e. t21-2010-12-29

the default backup folder is shown - the user can use it or change it - it is stored in the ini file.
when ok is selected some verification is done - a sequence number is added to the backup name so multiple backups can be made on the same project on the same day.
the backup is made with a vdz extension.

When restore is selected a dialog appears
the user has to select a project vdz file to restore (the open file dialog defaults to the last folder a backup was stored in)
the user has to select a destination folder for the project
the folder request dialog defaults to the PARENT of the last restore destination folder (this is because a project requires an empty folder to start.

The user selects/creates an empty folder and then clicks OK
The project is restored including all nested sub-folders and files.

==========================================
Now starting on EXPORT function
This function will create a new copy of the current project and strip all the protected area markers ( '@@ along with any associated comments) from all the files.
The exported copy can be used to share code with others without the designer overhead. The resulting files can be recompiled in the IWB IDE but not in the designer.  The original project files will remain unchanged.


17,400+ lines of IWB code.

LarryMc

LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Just finished the coding of the EXPORT function

Attached are before and after main source files.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Added an embedded color picker.
Must be noted it is based upon an original idea of Graham Sutton's.

Use sliders to adjust color bars above sliders.
The center  shows combination of fg/bg colors.
click button to copy color (fg or bg) to clipboard in either format shown on buttons.
dbl-click colored bars above sliders to open system color dialog and select colors from there.

17,800+ lines of IWB code.

LarryMc


LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Completed the Help Menu item and Tools Menu item editors.

Adding a menu item to those two menus works pretty much as it did before.

However there is an option for each editor to remove a current menu item.
(Before you had to open windows explorer and do it manually)

18,000+ lines of IWB code.
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

Doc

Quote from: Larry McCaughn on January 05, 2011, 01:05:09 PM
Completed the Help Menu item and Tools Menu item editors.

Adding a menu item to those two menus works pretty much as it did before.

However there is an option for each editor to remove a current menu item.
(Before you had to open windows explorer and do it manually)

18,000+ lines of IWB code.


The whole thing is looking good Larry!
...you sir, are one very prolific code slinger.

-Doc-

LarryMc

Completed the incorporation of the menu editor as a dialog.
Works like previous version with the added ability to import menus into project from other projects.

This feature will allow user to build one or more skeleton menus to be used in multiple projects.

19,100+ lines of IWB code.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

Completed the incorporation of the resource editor as a dialog.
Works like previous version .

20,200+ lines of IWB code.

LarryMc

LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library

LarryMc

For those that care:
Just wanted to note that I haven't worked at all on the designer for the last few days.
I've been spending my time working on help files for IWBasic 2.0.  Seems the previous owner did not furnish the ACTUAL files to recreate the help files.  Reverse engineering and reconstructing is a little bit time consuming.

As soon as I'm through helping LarryS with this I will be back on my Designer.

LarryMc
LarryMc
Larry McCaughn :)
Author of IWB+, Custom Button Designer library, Custom Chart Designer library, Snippet Manager, IWGrid control library, LM_Image control library