PureIconManager version 2.00 beta 2

Developed or developing a new product in PureBasic? Tell the world about it.
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

PureIconManager version 2.00 beta 2

Post by Denis »

PureIconManager 2.00 beta 2, 29th july 2014

Here is an upgrade for PIM, 2 versions :

32 bit here
64 bit here

Zip file content : Executable + chm French help file.
To use chm from PIM, put booth files in the same folder.

PIM does not write register!

Only 3 files could be created on HD :
PureIconManager.prefs (preferences file) always created.
PureIconManager_Liste_Conversion.log (list of files to convert – batch conversion) created if batch conversion is used.
PureIconManager_Erreurs_Conversion.log (list of files errors conversion – batch conversion) created if batch conversion is used.
Use preference button to open folder where those files are stored.

Compilation : PB 5.30

- Change : Added new buttons on Toolbars (language change, display mode for files etc.)
- Added : Batch conversion (be carefull, with big folder to convert, PIM will crash on memory leak with Istorage object/Istream).
- Added : Creation of icl NE file (16 bit) witch is a common format.
- Added : Deleting Icons is now possible for all formats.
- Added : Copy/paste for folder name, to display it (copy). You can copy folder name inside windows explorer.
- Added : Favoris management (files or folders) to display quickly a selectet item.
- Added : PIM icon on icon group when the group has at least 1 packed icon (Vista format = png).
- Added : Help file but only in french.
Except gadgets and menus, almost all are stored as resource.

Image


Image




PIM 1.00 beta 2, 29th December 2009

There is a new update here

older versions are unavailable now.

- Change : ExplorerTreeGadget keep focus when a folder is selected with the mouse (instead to give it to ExplorerListGadget).
- Fixed : a redrawing problem with nxgadget.
- Fixed : diplaying format icon for Vista low deep icon.
- Added : checkboxes to select defaut language (automatic, french, english).
- Added : only one instance of PIM could running (no choice).
- Added : Now Toolbar button 'Save' is running (popumenu with arrow).

For infos: Nothink is wrinting to register, only a pref file (Folder$ = GetEnvironmentVariable("APPDATA") with directory "PureIconManger" added, file : PureIconManger.prefs).
I forgot to indicate that selection of icons can be done with Key CTRL pushed (Keep it pushed) and with the mouse multi selection is possible, contiguous or noncontiguous.


TodoLIst :
- Deleting operations (i still have problems with exe/dll)
- Reduce size of ico files using netmaestro procedures adapted to PIM (http://www.purebasic.fr/english/viewtop ... 12&t=39485)
- Use of stream for internal conversion of PE/NE format instead memory allocation.
- Support of compressed exe files.
- Automatic conversion of files (still written but i have to check more my code).
- To simplify the code.
- To write functions in assembler for speed (only few witch are using a lot)
- A lot of minor changes...


PIM First beta, 18th December 2009

So, i'm working on this project for almost 2 years with some stops and restarts ...

I give explanations here because i've done no help doc for now.

For french peoples, same tread in french on french forum here :
http://www.purebasic.fr/french/viewtopi ... =8&t=10027


PureIconManager is not an icons editor (you can't edit an icon and modify it). It allows you to display icons and make of them partial/complete safeguards in the format of your choice.

I will use PIM wich stand for PureIconManager.

PIM is free for now, you can use it at your own risks but when you extract icons, there is no really risks.

Dowload file is here

OS : XP SP1 and over

Administrator right: As you can create files everywhere (not really but almost), you must be log with administrator rights.

Limites :
Some events aren't catched, as WM_THEMECHANGED, languages change. Since Vista, it is not always possible to delete items resource in a file (as icons in PE file) due to the limits of .ln and .mui files, see remarks here :
http://msdn.microsoft.com/en-us/library ... S.85).aspx )


There is almost no infos for icons, here is some sites i've visited (my basis work for NE format)

http://www.codeproject.com/KB/cs/IconLib.aspx

The only Microsoft infos avalaible (download exe file and extract it)
http://msdn.microsoft.com/en-us/library/ms997538.aspx


PE format
http://benoit.papillault.free.fr/c/disc2/exefmt.txt
http://www.itee.uq.edu.au/~csmweb/decom ... w_exe.html

XP icon in french
http://msdn.microsoft.com/fr-fr/library/ms997636.aspx


PureIconManager v1.00 beta 1 allows :
to visualize icons in ico files, PE file format (Windows 32 bits) exe, dll, icl, cpl, ocx, scr, NE format (old Windows 16 bits format) exe, icl et dll (I have to check my code for NE dll).

PureIconManager v1.00 beta is written for all square icons (honestly, i don't know what will arrive with no square icons but it will probably have troubles, it's on my Todo List) from monochrome til Vista compressed; i still have problemes with some of compressed Vista icons without alpha layer. Groups names are supported for Icl files if they exist.


The main windows is in four parts you can sizing with splitterGadget from Srod (See the link on his opensource lib in About windows of PIM). Excellente lib, good written, tests correctly done, never crashed!

- At the top, on left, there is an ExplorerTreegadget wich allows you to select current folder.

- At the top, on right, there is an ExploreListGadget wich only displays files according types filter (combobox above ExplorerTreegadget) as soon as we change current folder with ExplorerTreegadget or recents combobox (above ExploreListGadget).

- At the bottom, on left, there is a ListiconGadget wich displays icons groups. All icons formats files except .ico have (if file follows Microsoft rules) icons groups and each group has one or more icons. To be homogeneous, i've treadet .ico as if it they have groups, in fact, each icon is a group. The icon wich represents the group is on of the icons of the group because groups doesn't have icons strictly speaking. I use my own rules to display this icon wich "represents the group".
For now, its size is 48 x 48 pixels.
If a group names exists, it will be displayed under the icon group, else the position in the list will be displayed preceded by #
Above of this ListiconGadget, there is a Rebar wich displays selected group number as well as total number of icons of those selected groups.

- At the bottom, on right, there is a ScrollAreaGadget wich displays all selected icons group or if several groups are selected, displayed icons will be those of first selected group.

Keyboard shortcuts:
CTRL A to select/unselect icons groups (ListiconGadget of groups) or icons (ScrollAreaGadget) depending of the focused gadget.

CTRL T to toggle current selection of icons groups (ListiconGadget of groups) or icons (ScrollAreaGadget) depending of the focused gadget.

For CTRL A and CTRL T, you have to release both keys before to redo action (there is still displaying troubles with ScrollAreaGadget due to my code).

Escape to unselect icons group (ListiconGadget of groups) or icons (ScrollAreaGadget) depending of the focused gadget.

DEL key do nothing for now.

For ListiconGadget of groups or ScrollAreaGadget, it is possible to select with Shift key (right or left) kept pressed and at the same time using up/down arrows keys (ScrollAreaGadget) and up/down/right/left arrows keys for ListiconGadget. For ScrollArea, the rules is based first on the focused image (in fact, it is a un pseudo focus i've created).

For ScrollArea, you can move from an image to another one (the current one is selected and focused) using up/down arrows keys but at least, one image must be selected first.

Keybaord and mouse together :
Multi selection is possible in ListiconGadget and ScrollAreaGadget but at least, one image must be selected first, then you must kept Shift key (right or left) pressed and using a left mouse clic on an image to have multi selection.

I've coded all this for ScrollAreaGadget.

In scrollArea, one image could have pseudo focus, if so it will be surrounded by a dotted rectangle.

Saving icons :
With ListiconGadget or ScrollAreaGadget, there is the same popupmenu but with different colors) wich allows to all select/unselect or toogle selection.

To save icons, group(s) must be selected and listicon must be focused (selected items are in blue(but it depends of themes) or ScrollAreaGadget icon(s) must be selected, then a mouse right clic and popupmenu appears.

Selection must be save as ico, dll PE (32 bit) or Icl PE (32 bits) with choice to decompress or not Vista compressed icons.


Created dll have no executable code, so it's an empty dll with icons. This is the same for Icl files but in that case, Icl could have groups names, PIM manages groups names without problems (reading and wrinting operations).

Deleting icons :
For ico files, no problems but i've done nothing for exe, dll (format PE), i get troubles with API LoadLibraryEx, i'm on it but it's a little bit hard (when you try to delete such icon, the requester is still in french).

There are some preferences to display or not a requester when you create/delete icons, it's managed by windows 'preferences' with the corresponding toolbar button. The same when file has no icons, it's not an error (except for icl/ico file), PIM could display an information windows to tell you that or not.
When you create files based on selections icons, you could display the new file or not. If not, the displaying file will not change.
With pref, you can choose the max number of recent folder in combobox.

Grayed buttons are not use for this version.

Languages :
PIM select automatically 2 languages, French or english, All words in both languages are in resource, and discrimination is done with resource language selection.

The errors :
PIM manage about hundred errors, all messages are in resource.
Severals errors are fatals errors, it means that PIM will close if such errors are detected, but it's only when PIM start.
An important error (must be reported with care) is an "internal error" wich depends of context, usualy, such case does not appear but .......

Important problems encountered when programming: :

In spite of presence of .a et .c types, the lack of unsigned long is a real problem. For me it is a major handicap.

ExplorerListGadget is slow, not enough advanced event for example 'PB_ExplorerList_UpDate_Done' when the update is done, that is you can work on it. For want of anything better, i put some While windowevent()/wend but i don't know wich events are lost.

A lot of memory problems, always my fault. PB blog code for detection memory problems is really good.

Screenshot under Seven:
Image
File format NE with groupes names under each icons group.


Image
File format NE with Vista icons (Axialis IconWorkShop doesn't open this file correctly, Pim does)


Image
ico File with popupMenu on ScrollAreaGadget (1 selected icon)
Last edited by Denis on Tue Jul 29, 2014 6:45 pm, edited 7 times in total.
A+
Denis
User avatar
Rook Zimbabwe
Addict
Addict
Posts: 4326
Joined: Tue Jan 02, 2007 8:16 pm
Location: Cypress TX
Contact:

Re: PureIconManager version 1.00 beta 1

Post by Rook Zimbabwe »

Denis,
This looks really great! What are your plans for it? Do you plan some sort of icon editor on top of it? I am thinking with a little work you could beat Axialis very easy! 8)
Binarily speaking... it takes 10 to Tango!!!

Image
http://www.bluemesapc.com/
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: PureIconManager version 1.00 beta 1

Post by Denis »

Rook Zimbabwe wrote:Denis,
This looks really great! What are your plans for it? Do you plan some sort of icon editor on top of it? I am thinking with a little work you could beat Axialis very easy! 8)
Tks Rook Zimbabwe.

I did not plan anything for the moment. I have a big todo list to correct my code (bugs), to simplify it, to do it faster and more stable if possible. i want to create icl NE file, its not too complex (i've written my own API for NE file like FindResource_NE, Loadesource_NE etc. ).

I use stream (Istorage objects) to manage ico files, but not for the other formats. I want to use streams for all formats instead memory allocation, but it's a big change.

It's a big challenge to create an icon editor, a lot of work too :mrgreen:
I've written PIM because it's not really easy with commercial editor to convert one type to another. And it was the time for me to learn icon formats; before starting PIM, my knowledge on icons was close to zero.


I would like to thank Srod for all he has done here, really!
And without forgetting netmaestro, Sparkie for their codes, blueznl for CodeCaddy wich save my life many times :mrgreen: .
SFSxOI for TaskDialogIndirect functions wich i was inspired by.

Fred/Freak, many Tks for PB and the time you spend on it, for us :wink: .
A+
Denis
Fred
Administrator
Administrator
Posts: 16616
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PureIconManager version 1.00 beta 1

Post by Fred »

Looks like a very polished app ! Good luck with it.
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: PureIconManager version 1.00 beta 1

Post by Denis »

Fred wrote:Looks like a very polished app ! Good luck with it.
Tks Fred
A+
Denis
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: PureIconManager version 1.00 beta 2

Post by Denis »

New beta, see at the beginning of this tread
Last edited by Denis on Wed Dec 30, 2009 11:03 am, edited 1 time in total.
A+
Denis
SFSxOI
Addict
Addict
Posts: 2970
Joined: Sat Dec 31, 2005 5:24 pm
Location: Where ya would never look.....

Re: PureIconManager version 1.00 beta 2

Post by SFSxOI »

Very Nice Denis. I'm in agreement with Fred, very polished - and I might add professional also. Looks like an exciting project and product, and its enticing also and just about jumps out and says "Use me". Really a great job. Thank you very much :)
The advantage of a 64 bit operating system over a 32 bit operating system comes down to only being twice the headache.
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: PureIconManager version 1.00 beta 2

Post by Denis »

SFSxOI wrote:Very Nice Denis. I'm in agreement with Fred, very polished - and I might add professional also. Looks like an exciting project and product, and its enticing also and just about jumps out and says "Use me". Really a great job. Thank you very much :)
Thank you SFSxOI.
This project take all my time.
I advance Step by Step. There still are unclear things...
A+
Denis
User avatar
GeoTrail
Addict
Addict
Posts: 2794
Joined: Fri Feb 13, 2004 12:45 am
Location: Bergen, Norway
Contact:

Re: PureIconManager version 1.00 beta 2

Post by GeoTrail »

Very impressive Denis. Looks and works great.
Sidenote: You really should get a faster server ;) I'm on a 15 MB fiber optic line and it took like 25 seconds to download the 600+ kb file.
I Stepped On A Cornflake!!! Now I'm A Cereal Killer!
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: PureIconManager version 1.00 beta 2

Post by Denis »

GeoTrail wrote:Very impressive Denis. Looks and works great.
Sidenote: You really should get a faster server ;) I'm on a 15 MB fiber optic line and it took like 25 seconds to download the 600+ kb file.

Tks GeoTrail.

My Internet service provider is one of the biggest in France (Free) and it's my web hosting service provider too (i have a really big big space for free, so i store my files on it's server). I have no speed problems with this server, i have an unbundled ADSL access (>8 MB).

I don't know why it's so slow for you, may be it's the same for other coders here (?).
A+
Denis
SFSxOI
Addict
Addict
Posts: 2970
Joined: Sat Dec 31, 2005 5:24 pm
Location: Where ya would never look.....

Re: PureIconManager version 1.00 beta 2

Post by SFSxOI »

I'm on cable, 16 MB, took me about 8 seconds.
The advantage of a 64 bit operating system over a 32 bit operating system comes down to only being twice the headache.
User avatar
blueznl
PureBasic Expert
PureBasic Expert
Posts: 6161
Joined: Sat May 17, 2003 11:31 am
Contact:

Re: PureIconManager version 1.00 beta 2

Post by blueznl »

21 secs, laptop -> wifi 54g -> adsl 2 mbit
( PB6.00 LTS Win11 x64 Asrock AB350 Pro4 Ryzen 5 3600 32GB GTX1060 6GB)
( The path to enlightenment and the PureBasic Survival Guide right here... )
User avatar
GeoTrail
Addict
Addict
Posts: 2794
Joined: Fri Feb 13, 2004 12:45 am
Location: Bergen, Norway
Contact:

Re: PureIconManager version 1.00 beta 2

Post by GeoTrail »

I tried it again on my Ubuntu machine, downloaded at 74 Kb/s

Here is the speed I get from Speedtest.net
Image

So there is nothing wrong with my connection speed.
I Stepped On A Cornflake!!! Now I'm A Cereal Killer!
User avatar
Mohawk70
Enthusiast
Enthusiast
Posts: 400
Joined: Thu May 11, 2006 1:04 am
Location: Florida, USA

Re: PureIconManager version 1.00 beta 2

Post by Mohawk70 »

Great looking app ! Do you have plans on adding a feature to replace an exe files icon with a new one ?
Denis
Enthusiast
Enthusiast
Posts: 704
Joined: Fri Apr 25, 2003 5:10 pm
Location: Doubs - France

Re: PureIconManager version 1.00 beta 2

Post by Denis »

Mohawk70 wrote:Great looking app ! Do you have plans on adding a feature to replace an exe files icon with a new one ?
Thank you Mohawk70.
Yes, i will work on this soon, using a file to do the trip.
A+
Denis
Post Reply