Pelles C forum

Pelles C => Projects developed with Pelles C => Topic started by: John Z on August 01, 2021, 04:25:26 PM

Title: vCardz_i an address book/contact list program
Post by: John Z on August 01, 2021, 04:25:26 PM
Here is a feature packed VCF contact/address book like program written using Pelles C.  In addition to using Pelles C it uses fGdiPlusFlat.h header created by Frankie for GDIPlus under C.

The program itself is under a Meg but the full package is too big to add as an attachment here (Maybe Pelles Web needs to increase the 1MB limit  to 2-3MB?) so it can be found at https://sourceforge.net/projects/vcardz/ or direct download at https://sourceforge.net/projects/vcardz/files/latest/download unzip and run nothing installed, no registry entries. Can even be run from a USB drive.

Over 9000 10,005 12,535 15730 19195 downloads across 145 147 151 158 167 countries but not very much feedback. I know the esteemed Pelles C followers are not shy about feedback. ;)  Missing features, errors, etc. all welcome, just don't beat me up about my linguine code style ;(

Some features I'm proud of creating: 
Ability to pin a filename and directory name to each MRU list so that they are always available even if the list is cleared or adds exceed entries causing rollover. Wouldn't mind if Pelle added this to the IDE. Very handy.
ODF spreadsheet export in two layouts. ODS can be opened by LibreOffice and EXCEL 2007 and newer.
Resizing the window, it does not use the Pelles Resizer lib but I think works fairly well.  Try it with Auto Font turned on too, even full screen.
Huge help file, including context sensitive help.  Help file is bigger than the exe :)

Hope it is useful,

John Z

Title: Re: vCardz_i an address book/contact list program
Post by: frankie on August 01, 2021, 05:20:55 PM
nice  :)
Title: Re: vCardz_i an address book/contact list program
Post by: Grincheux on August 27, 2021, 05:07:37 PM
Hi John,

There is a bad drawing in the note box as soon as you use the bak key to correct a word.
I can't enter my e-mail.

I often use the TAB key to navigate from one field to an other, here I don't know where I am.
If you put the cursor an a edit field, it is not selected.

QuoteThe newer vcard specification only references three address types Home, Work and Other so every address selection may not show data.
Ok but if you fill a home address and after select an other kind of address then go back the home address, one part is lost. Right part.

See the picture attached you will have an idea.
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on August 27, 2021, 10:20:46 PM
Thanks Sir Grincheux,

I'll check out using the backspace key, I don't recall ever trying that......  When the text looks like the picture shows, moving the scroll bar will redraw, but I know that is not optimum.

I do see in your screen shot you are not in the EDIT mode so no changes would be saved they would only be temporary. Therefore as one selected another address type the old data would be restored when selecting the address again.  To actually edit or change card data the program must be in the edit mode.   

Tabbing - yes, I was depending on the cursor for one to see where they are and the tabs follow the logical flow of data entry.  I'll consider an option to 'select' after a tab to a field, that might satisfy both preferences users might have.  Or I might make a very visible cursor  ;D

Thanks for your inputs!

John Z

Update - yup Backspace key definitely suboptimum in View mode, and if no scroll bars are present no way to redraw either. 
I'll also need to check backspace when in the EDIT mode too.  (yee in edit mode too)

Update #2 - Very strange.  It is just a standard edit box, like all the others, but with multiline enabled.  When multiline disabled the backspace key works as expected as does the edit box 'redraw'/update.  When multiline is enabled the backspace key action and 'redraw'/update goes haywire.
Title: Re: vCardz_i an address book/contact list program
Post by: Grincheux on August 28, 2021, 01:10:29 PM
I qill test again and send you my feedback.
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on August 28, 2021, 02:45:14 PM
Quote from: Grincheux on August 28, 2021, 01:10:29 PM
I qill test again and send you my feedback.

Not yet I have not come up with a solution yet !   :(

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: Stefan Pendl on August 28, 2021, 04:50:49 PM
Quote from: John Z on August 27, 2021, 10:20:46 PM
I do see in your screen shot you are not in the EDIT mode so no changes would be saved they would only be temporary.

to better distinguish between edit and view mode, disable the controls or make them read-only.
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on August 28, 2021, 05:33:07 PM
Quote from: Stefan Pendl on August 28, 2021, 04:50:49 PM
to better distinguish between edit and view mode, disable the controls or make them read-only.

Thanks Stefan- I did think about that when 'designing' but felt being able to make temporary edits for printing would be nice. Also I was thinking it would make it easier to copy a field to paste into something else.  I'll ponder it some more  and see if I can modify and satisfy both thoughts perhaps read-only but switchable by some keyboard trickery.  Attached is an example screen shot that is in the Edit Mode.  I'll admit scope creep had a role in this.  The original thought was to display but not edit, then .....

Thanks for the input.

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on August 30, 2021, 01:38:34 PM
Quote from: Grincheux on August 27, 2021, 05:07:37 PM
There is a bad drawing in the note box as soon as you use the bak key to correct a word.

Well finally figured out the Backspace issue.  Now to see about TAB and possibly Read-Only mode.
No new version until I finish with these two items - so don't download yet  :)

The risk with select all when using TAB is that it becomes very easy to accidentally delete. Of course if I make the initial screen read-only that would be solved too.   Still thinking about an approach.

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on August 31, 2021, 05:38:27 PM
Here is a version to test  :).  It is not the full install because just the help file is bigger than this site allows to be uploaded. I'll update sourceforge after a bit more testing.  This exe can just replace the one, or rename it, and put in the same directory as the prior release.  Then you can try it.

Changes in 2.1.4.0:
Added Toolbar button as indicator of default Read Only mode
clicking it explains how to enter Edit mode
Added TAB autoselect of a fields text, if there is any, when tabbing used.
  When TAB used in Read Only mode only the 1st character is selected
  When TAB used in Edit mode all text in the field is selected
 
Fixed display bug when using backspace or delete key in the multiline
'Extras' box.

I think this addresses most concerns and won't impact prior users when they, if they, get the new version.

John Z

Update 9/1/2021 New release live now on sourceforge.
Title: Re: vCardz_i an address book/contact list program
Post by: Grincheux on September 21, 2021, 07:57:26 PM
Sorry John I had no time to test your program.  :-[
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on September 22, 2021, 12:49:26 PM
Hey - no problem.  I see you have been knee deep in CFE!  A lot of work there.  Anything as big as CFE is going to take a lot of time just for testing not even considering time to develop improvements.

Forum has been quiet since Pelle went on vacation .....;)

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: Grincheux on September 22, 2021, 06:16:43 PM
Yes, I saw. Yestirday I had 5 messages that I had not read, only!
I had a lot of work with my job and was very tired.
When I am retired, I drop the phone and stop the car for a long time.
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on November 09, 2021, 04:06:57 PM
Thanks Sir Grincheux!

Inspired me to make some cosmetic improvements to the vCardz_i program.
A new version is posted on SourceForge - https://sourceforge.net/projects/vcardz/ 
and implements some of your improvement suggestions, but not all  :) :( 

Current version 2.1.5 lifetime statistics: 10,185 downloads across 147 countries.

Cheers,
John

Title: Re: vCardz_i an address book/contact list program
Post by: John Z on May 14, 2022, 03:32:00 PM
In case any forum member are using vCardz_i - A new version is posted on SourceForge - https://sourceforge.net/projects/vcardz/  which was updated using Pelles C version 12.  Version 3.1 has many improvements over prior. 

Feedback always welcome. versions

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on July 10, 2022, 01:49:36 PM
Well I finally got everything fixed that broke when implementing the manifest for version 6.0.0 controls.
It was a surprise, but shouldn't have been I guess, that an upgrade to newer control version impacted (adversely)
the original program capabilities.  Thanks Micro$oft.

Anyway version 2.6.3.1 is released on SourceForge for those interested in vcf, xml, or json contact cards.
All Pelles C version 11, except the inclusion of XLSXio DLL for exporting to XLSX files.  I could have written this too
as I did for ODF format ODS spreadsheet but decided to give it a try.  It works well for simple output, see attachment
Found at https://sourceforge.net/projects/xlsxio/  but is also on Github at https://brechtsanders.github.io/xlsxio/

If you find a similar vcard program that does more than mine let me know how much they charge you... :)
https://sourceforge.net/projects/vcardz/   (15K+ downloads, 155 countries)

One tip - always use the resource file to include the manifest.

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on November 01, 2023, 03:03:48 PM
Version 2.7.2 of this Swiss army knife of vcards is using Pelles C v12 and tested on Win 11.
https://sourceforge.net/projects/vcardz/

Over 16k downloads and 161 countries (over the lifetime of course).

It is still 32 bit.  Working on a 64 bit version mostly complete except for the zip portion for ODS.

Anyway if you need to do almost anything with vcards in vcf, xml, or json format try it out.
It also can create QR's from vcard data or your own entered text.

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on January 23, 2024, 09:50:25 PM
vCardz_i Version 2.7.3 of this Swiss army knife of vcards (VCF, XML and JSON) using Pelles C v12 and tested on Win 11 - includes a 64 bit version as well as 32.

New Dark Mode added. :)

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on April 10, 2024, 01:55:51 PM
vCardz_i updated to version 2.8.2 with a few new features 7/4/2024.


Executable download at https://sourceforge.net/projects/vcardz/

Lifetime downloads 18,010 across 166 countries  :)

All just Pelles C 64 bit now.

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on January 06, 2025, 12:01:24 PM
vCardz_i updated to version 3.0.0 with new features and fixes 01/06/2025  Pelles C 64 bit

Executable download at https://sourceforge.net/projects/vcardz/

This is the 'Swiss army knife' of vcards (vcf, json, and xml) all versions.

Hopefully it survives WIN11 24H2

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: Quin on April 30, 2025, 04:58:17 PM
Hi John Z,
Very cool looking program you've got here! I do have some feedback though:
1. It's impossible to shift+tab through your edit fields; I can only press tab to move forward.
2. Only the first character is selected in the fields by default, not the full text. This makes my screen reader only read the first letter that's typed there, and typing to override the selection is weird. I'd recommend using 0, -1 for EM_SETSEL's parameters.
3. The window I saw for half a second or so before the application came up said it's open source. Where can I find the source code?
Thanks, and excellent work!
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on April 30, 2025, 05:45:29 PM
Hi Quin,

1) Yes shift+tab is not implemented. I'll consider.

2) First character selection was a design decision because the window is in read only mode.  Clicking in any text field and NVDA will read the label and the full text in the field. (I was testing it after I tested the calendar program).  In Edit mode the full text in the field is selected when tabbing.

3) Earlier versions sources have been released both VB and C code, so far I have not released the current version.  I'm a bit hesitant to do so.  I'll think about it though.

It has features for vision impaired persons, the window can grow to any size up to the full screen size and the font size can grow with it.  Colors can be selected that are easy to read.  It's own dark mode can be chosen.  Any field can be spoken by clicking in it and pressing F10.  F11 and F12 will read out a full name and address, F11 at standard speed, F12 at a slower rate, without NVDA...


John Z
Title: Re: vCardz_i an address book/contact list program
Post by: Quin on April 30, 2025, 06:45:43 PM
Hi John,
I would recommend firing up NVDA and trying to use your app entirely without a mouse. While NVDA does technically support the mouse we blind users almost never actually use it. I've learned from object navigating around your window that there are many controls I am unable to access with the tab key, such as the radio buttons, the list of phone numbers, etc.
I'm also unsure what you mean about the whole selection being read when tabbing in edit mode, it always only reads the first character here.
Thanks!
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on April 30, 2025, 08:39:16 PM
Quote from: Quin on April 30, 2025, 06:45:43 PMI would recommend firing up NVDA and trying to use your app entirely without a mouse.

Good idea now that I have NVDA installed.  Windows users get quite set in their/our ways with using the mouse.  Micro$oft worked long and hard to get us handicapped this way :)

Quote from: Quin on April 30, 2025, 06:45:43 PMI'm also unsure what you mean about the whole selection being read when tabbing in edit mode, it always only reads the first character here.

As long as the page is in View mode only the first character is selected in each field when tabbing.  Even though 'editing' can be done in the read only mode it is only a temporary edit useful only for the moment, and can't be saved.  This is by design so there is no question that it is not in edit mode.
There also is a toolbar button, right side, that shows the mode and when clicked will indicate read only mode and how to enter the true edit mode.  May seem clumsy at first but there are benefits IMO.


To enter the 'true' edit mode Main Menu item 'Edit' sub menu item 'Edit Current card' must be used.  When in this mode moving by TAB highlights the entire field entry, also as a clear clue the edit mode is active and edits can be saved.


John Z
Title: Re: vCardz_i an address book/contact list program
Post by: Quin on April 30, 2025, 09:10:44 PM
Hi,
Ah, I see what you mean now. And yes, this does indeed highlight the whole selection.
The date control doesn't really read correctly, for example if you left/right arrow you're not told if you're now modifying the hour, minute, second...etc. But as far as I know this is not your fault, Microsoft just happens to be incompetent as hell and baked an inaccessible control into the OS...
"Oh but Copilot though! Shiny shiny!"
I digress though.
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on May 01, 2025, 02:53:21 PM
Hi Quin,

Upon further testing it looks like NVDA issues.  In that particular time control it works perfectly in the calendar program but only intermittently in vCard program date/time entry child window.  If using tab in the child process it can read at least the first entry.  If using up and down arrow it does seem to read out the Hour, minutes.... but using left or right it does not.  It often stops altogether.

Other issues with it
If a tool bar has a separator the audio readout is off by one or more toolbar buttons that is mouse over separator reads the immediate right toolbar button name, move to that it reads the next over - all shifted

Does not read the Date control window correctly at all.  Reads out semi random something, never the right date.

Sometimes just stops reading, especially with child windows, and child of child windows.

I'm making a few tweaks to vcardz_i to be a little better when using NVDA like removing the 1st character select in view mode.  Allowed tab to move to the e-mail and phone lists. Nothing done for the option buttons yet, those will need more thinking.

I doubt it can be totally perfect under NVDA though, considering the issues.

John Z

Title: Re: vCardz_i an address book/contact list program
Post by: Quin on May 01, 2025, 05:21:39 PM
Hi John,
Thanks for all your work! I doubt it will be able to be made absolutely perfect, at least purely from yourself writing code, but I wonder if we can get NVDA/Microsoft/whoever has the broken implementation to fix the date control?
Title: Re: vCardz_i an address book/contact list program
Post by: John Z on May 08, 2025, 05:10:47 PM
Hi Quin,

Version 3.1.1 in final testing now. It can be completely used by just using the keyboard.
If all goes well it will be posted soon.

Fixed forward tabbing in all dialogs to be logical.

Added reverse tabbing i.e. Shift+TAB.

Added an Option under Settings "Optimize for no Mouse" which when set will replace the calendar use (which is poor under NVDA) with a simpler dialog. 

Added headers to all tables in the help file.

Added using Ctrl+Tab to enter tabbing of the Option buttons. Also can Ctrl+Tab again to exit tabbing the Option buttons earlier than tabbing all the way through the last option button, which is when it exits back to the main anyway.

The main issue/bug with NVDA is when the mouse is used. It seems it does not always get the mouse position accurately, especially problems with calendar, toolbars, and menus with hot keys showing.  Now vCardz_i should be quite usable with NVDA.

Also remember vCardz_i itself can read out any data field by pressing F10, plus full name and address with F11 and F12 (slower).  I might consider adding the label too but NVDA already does that....

Appreciate all your inputs!

John Z
Title: Re: vCardz_i an address book/contact list program
Post by: Quin on May 09, 2025, 02:46:34 AM
Hi John,
Glad to hear it, that's incredible! I look forward to testing it.
I wouldn't worry about NVDA and the mouse, I don't have a mouse connected to my PC and use keyboard commands to manipulate the mouse when I need to.