dcsimg
Results 1 to 9 of 9

Thread: [VB6] Rocketdock Settings Enhancement

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    [VB6] Rocketdock Settings Enhancement

    Excuse if this is in the wrong place, it has some graphics elements so it may fit here.



    I use Rocketdock on all my Windows machines as I find the convenience of the MAC-style dock and the ability to customise is a real boon. Rocketdock was written by Punk Labs (skunkie et al) and was originally written for XP but was never overhauled for NT6 usage. It is no longer supported but it is still probably the best in its class. Rocketdock still functions as it should on Win7/10 but as time went on a few minor bugs crept in that decreased its usability. Nevertheless it is still an enhancement for Win 10 &c as that o/s has a fairly awful GUI and start menu IMHO.

    One of the bugs is the time that RD takes to respond to an icon right click. It appears to have to trawl through each of the dock entries and parse the data before it can display the settings screen. I believe it is also reading the stored library of .ICO files so it can display a graphical selection of thumbnails for the user to choose. The bigger the ICO folder the longer it takes.

    As a result a right click can take 20-30 secs on a typical core2duo with an SSD and even on newer, faster systems there is a many-second delay.

    So, I decided to write a VB6 replacement for this one bit of buggy functionality. Firstly, it is the only language where I stand a hope in hell's chance of doing it and secondly, because I am increasingly realising there is a mass of amazing code that can do anything using VB6.

    This is the original settings screen



    and this is my current replacement


    It has been enhanced so that it loads the portable settings.ini file quickly, it also reads the registry if that is where the user has chosen to store the dock data.

    It improves upon the original in certain areas: It indicates by number which Rocketdock item is currently selected; the user can delete unwanted icons directly from the file display; the ICO file previewed can be resized; you can flip to the next Rocketdock item without having to leave the settings screen; the start path is now selectable using a common dialog box; there are tooltips for all controls (before there were none), there is a help facility; the "get more" button takes you to a useful location where there are a lot more icons for the user to download; the whole thing runs faster. One final improvement is that the dock is only disabled when the native settings screen is used, that does not happen when using mine, ie. Rocketdock is still usable when my utility is running.

    The only difference so far is that the file viewer top right, only displays the icon names and is not yet capable of displaying as thumbnails. I don't know how to do that yet, I am thinking of creating an array of objects that will use LaVolpe's graphical code to simulate a fileviewer in thumbnail mode. If you have any suggestions on how to achieve this I'd willingly take any suggestion.

    I used LaVolpe's code for the previews as it was the easiest to integrate into my design. It can display all the icon types that Rocketdock might possibly encounter.

    So far the new settings screen is very quick to open and do its stuff, certainly much faster than Rocketdock's settings screen.

    I didn't intend to replace Rocketdock altogether, it just bothered me that I'd have to wait 30 seconds to change a simple icon. When I have this covered I'll think about the next thing I can improve.

    I realise it might make no sense to recreate the whole of Rocketdock using VB6. Comments please!
    Last edited by yereverluvinuncleber; Jun 8th, 2019 at 10:15 AM. Reason: typos corrected, added info. Added Rocketdock image, added an improvement

  2. #2

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement

    Making good progress:



    I've managed to simulate a thumbnail view of just 12 of the icons, each downward click on the vertical scrollbar loads another twelve images onto the picturebox array. The loading of just 12 images takes no time at all, much more efficient than loading the whole 836 icons as did the old Rockerdock screen (836 being just one library of steampunk icons from one source), there do exist steampunk libraries of over 3,000 icons.

    I haven't yet figure out how to rescale PNGs loaded with lavolpe's loadpicture method but everything else seems to work. I haven't fully implemented the reading and writing of the registry locations yet but that is close to working. It does the job just as it should if a settings.ini is specified as the output.

    PS. Those are all my very own steampunk icons.
    Last edited by yereverluvinuncleber; May 20th, 2019 at 04:07 AM. Reason: icons

  3. #3

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement

    Reading and writing the registry works fine now.



    Created a help screen called by button and right-click menu.

    The main trouble with this new utility is that it cannot replace Rocketdock's own icon settings screen. It can't be integrated into Rocketdock as a replacement for the current right-click. It can however be called as one of the icons in the dock.

    I also have an idea to add a mini version of the dock as a hideable element right in the middle of the tool. This would be a map of the dock and then I can emulate the functionality of Rocketdock and make selection and configuration of an icon much easier.


    Just a mock-up.
    Last edited by yereverluvinuncleber; Jun 8th, 2019 at 03:23 AM. Reason: new image

  4. #4

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement

    The Rocketdock map has been completed, it works as intended and it scrolls left/right by simply sliding all the picture boxes right or left. The picture boxes are created dynamically according to the number of icons found in the Rocketdock settings.

    There is a slider for the map, quite necessary when your dock has 70 or more items. The map is hideable so that you can restore the look and feel of the old Rocketdock settings screen.

    I have added right click menus, 'about' and 'licence' screens.

    I discovered that when I made changes to the settings.ini or the registry then Rocketdock overwrote those changes as soon as it exited. Instead, I have made all the icon changes to an intermediate settings file and only then used that to replace rocketdock's settings once I have killed the rocketdock process. It is then restarted automatically to show the resulting changes in the dock. There is a new save & restart button to implement this. Much more complicated than I expected.


    My first build of the Rocketdock map. The icon map is still having trouble resizing PNG images, I will fix that at the end. It works find for .ICOs.
    Last edited by yereverluvinuncleber; Jun 8th, 2019 at 03:25 AM. Reason: added image

  5. #5

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement

    I have implemented a backup system that allows the utility to take and store multiple settings files in the form of:

    settings.ini;1
    settings.ini;2
    settings.ini;3

    Each backup causes an increment of the version number (a la VMS) so you can go back to a previous backup of the dock any time you want by simply renaming one of the backup settings files to the current version. A backup occurs automatically each time the utility is operated and there is a new backup request button so that you can take a manual backup if you so wish.

    The treeview now works as intended allowing you to select a sub-folder holding icon collections

    The tool now also pops up the licence screen when it is run for the first time and it remembers any tool-specific settings.

    I have now added the "add item" right click menu allowing the tool to add new icons to the map and thence to Rocketdock after a restart.

    The delete item is next...
    Last edited by yereverluvinuncleber; May 29th, 2019 at 12:07 PM. Reason: progress!

  6. #6

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement

    o Deletion of an icon from the map has now been implemented.
    o The program can now extract icons embedded within a DLL or an executable.
    o Added a "working" indicator on the initial creation of the map.
    o Add the ability to save copies of the settings files used.
    o Read the user-configured folder on startup and automatically set it in the treeview.
    o Changed the underlying image display code to allow the utility to handle image sizes.


    An image of the utility working on the desktop.

    Still using Lavolpe's code but this time using the code from Lavolpe's prj32bppSuite. It is slightly more CPU-heavy than the earlier version but it works. It also has a problem with dealing with certain ICO types that cause it to display the ICO with lines in the mask leaving black striations. It only occurs with ICO files so some debugging to do.

    It also crashes the IDE when the above bug occurs, causing the vertical scrollbar to freeze and then some short time after that the IDE will close unexpectedly.
    Last edited by yereverluvinuncleber; Jun 8th, 2019 at 04:07 AM. Reason: Updating.

  7. #7

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement


    Here is an animated GIF of the utility in operation, forgive the low quality capture. It gives an idea of the way it operates.

  8. #8

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement

    I've been in contact with Skunkie from Punklabs, one of the original developers of Rocketdock who I've known through the internet for a few years now. I didn't want to show her anything until there was something that worked in general. She was pleased to see the development of the new utility and said she was pleasantly impressed. It is always good to get the blessing of the developer of the original tool even though I am writing it from scratch and the only similarity is the look and feel.

  9. #9

    Thread Starter
    Lively Member
    Join Date
    Feb 2014
    Posts
    112

    Re: [VB6] Rocketdock Settings Enhancement

    I've added the ability to move an icon in the Icon Map. A simple right click brings the option to 'move item to the left' or to the right. I have prepared some code to allow a specific icon on the map to be dragged left or right to a new location but the way that the cursor currently picks up the icon feels 'wrong' and imprecise so I will revisit that later.



    I've added another built-in icon folder to the treeview for the user to select if he or she so wishes and the delete folder button now removes a treeview parent node, another Rocketdock bug fixed, on the original RD settings tool it did nothing at all.

    Last edited by yereverluvinuncleber; Yesterday at 04:43 AM. Reason: added images

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Featured


Click Here to Expand Forum to Full Width