LogicGui 5.6

Community Forums/Showcase/LogicGui 5.6

jsp(Posted 2013) [#1]


Logic Gui Professional Version 5.6 build 478 has been released!

Those who don't know Logic Gui yet, it's an easy to use, feature rich visual GUI Designer and source code creator for MaxGUI.
An extensive amount of design possibilities help you to place your gadgets.
Create standard event loops or OOP independent types from your GUI design with all needed functions or methods with one click.
Get a runnable program immediately from your form.



Major improvements in version 5.6:
Improved User Interface
ListView Version 1.1 comes now with batch processing for huge amount of data (special thanks goes to impi07)
Better thumbnails for templates showing even smallest details.
Two level comment handling. Remove automatically comments from source while keeping them in Logic Gui for private or all comments.
Improved view of toolbars
Updated application timers
Logic Gui IconStrip Editor (could be downloaded already as standalone release between version 5.5 and 5.6)
Updated IntelliSense
Some important fixes as usual
And more...

The user manual has been updated for version 5.6!

Additional Resources, Modules, Tools:

User Manual Logic Gui Professional
http://jsp.logiczone.de/downloads/UserManual.pdf

IconStrip Creator
The Logic Gui IconStrip Creator is meant to quickly assemble an IconStrip for Toolbars, Listview Gadgets, Menus and so on. Convert GIF animations into AnimStrips. Extract icons from an icon .ico file. Load and save IconStrips and alter them with some clicks.
http://jsp.logiczone.de/downloads/IconStripCreator1.0.pdf


User Manual Resource Creator
The Logic Gui Resource Creator simplifies the creation of application resource files (Windows only).
Resource files are used to combine icons in several sizes, themes like XP and important resource information such as your application version number.
Once created, the resource file can be imported into your BlitzMax code and will be integrated during every compile
http://jsp.logiczone.de/downloads/ResourceCreator1.0.pdf

SmartButtons 1.23
SmartButtons are flexible image buttons based on MaxGui panels.
A SmartButton consists out of images, regions, actions and triggers. You can then define one or more regions on a SmartButton where you want an action triggered. Every defined region can hold one or more actions.
http://jsp.logiczone.de/downloads/SmartButtonDemo1.2.zip
http://jsp.logiczone.de/downloads/SmartButton1.3.pdf

LogicXML1.2.1
LogicXML is build to parse a XML file and retrieve the data to create a Graphic User Interface.
The XML Structure needed for access is automatically created by Logic Gui. You can fetch single values or complete item or gadget information. GetText( "Button1" ) - retrieves a single text string of a button vs. GetGuiGadget( "Button1" ) - retrieves all information in one go, size and position, text and style and so on...
http://jsp.logiczone.de/LogicXML.html

A ListView (extended multi column listbox) demo can be downloaded here:
http://jsp.logiczone.de/downloads/ListViewDemo.zip


Some video tutorials:
http://jsp.logiczone.de/Videos/Anchors.htm
http://jsp.logiczone.de/Videos/MediaManager.htm
http://jsp.logiczone.de/Videos/Guides.htm
http://jsp.logiczone.de/Videos/Calculator.htm
http://jsp.logiczone.de/Videos/Layer.htm
http://jsp.logiczone.de/Videos/TabSplitScroll.htm
http://jsp.logiczone.de/Videos/MultiLanguage.htm

More infos available via the LogicZone website!
Key features and key benefits are available from the main page.


Henri(Posted 2013) [#2]
Hello jsp,

nicely done. You wouldn't happen to be interested in editable listview ? I made some changes to your code to allow it myself.


-Henri


jsp(Posted 2013) [#3]
Sure, any enhancements are welcome! Could be a nice addition.
Did you manage to make it switchable?


Henri(Posted 2013) [#4]
Yes, basic listview doesn't allow editing so it isn't hardcoded into listview-creation, but rather layered afterwards and can be switched on or off. The code isn't clean yet as it tailored to my needs and not for general use, so that is something I have to do first.

-Henri


Henri(Posted 2013) [#5]
Okei, you've got mail

-Henri


jsp(Posted 2013) [#6]
Thanks Henri, will test and report back.


Chalky(Posted 2013) [#7]
Hi jsp,
I recently upgraded to LogicGUI 5.6 and think I might have found a couple of bugs....

1. When specifying a filter for a textarea etc. LogicGUI generates the code to create the filter, but not the external function required to process it, therefore the program fails to compile.

2. If I click outside of LogicGUI while in the "source properties" dialog, I sometimes get a MAV (I cannot work out a consistent way of reproducing this - but if I do, I'll let you know) and the program closes.

Hope this is useful.
-Chalky


jsp(Posted 2013) [#8]
Thanks, will check.


jsp(Posted 2013) [#9]
Hi Chalky,
I have tested the filter function with the normal WaitEvent loop and also using type creation, but didn't have any problems. I guess there is a certain combination which makes it fail.
Could you send me your form, or a snippet which produces the problem?

I tried also the second problem, but could not reproduce it either. So any hint are welcome!


Chalky(Posted 2013) [#10]
Have emailed you a problem file as requested. I may be misunderstanding what LogicGUI should do here - if I add a filter to a textarea, it generates the "SetGadgetFilter" statement, but not the skeleton function code needed to handle the filter, therefore it will not compile from within LogicGUI (just to be absolutely clear here - I'm not expecting LogicGUI to write me a complete filter function - just the Function/EndFunction statements so that it can be tested via F5 from within LogicGUI).

I can't recreate the 2nd problem either - despite it happening 5 times in a row the other day. Strange.


jsp(Posted 2013) [#11]
Just checked your form and yes Logic Gui does handle this different from what you thought.
There are two ways the text filter can be handled:

1. Logic Gui will write the filter function with all it's content and you are ready to compile.
This mode is useful if the available options you can choose from for the filter is enough. For example, you don't like number, click on "Numbers" and choose "deny". The textfield will not accept numbers anymore as input...

2. The second mode can be used if the available options are not enough. In that case you define a function name and Logic Gui will use your own written function as filter instead. That function of course need to be existing.

In your example you defined a function name and thus Logic Gui expected your function to be available. Simple solution: Just delete the name and Logic Gui will create a generic one.
Watch the output and then I think it will be more clear.

Some more infos are in the manual, search for "filter" ...
Hope this helps.


Chalky(Posted 2013) [#12]
Aaah - now I understand - apologies for the false alarm.


jsp(Posted 2013) [#13]
No problem at all!
I have now added a tooltip for the textfield to make it more clear.


Chalky(Posted 2013) [#14]
@jsp
Aplogies for bumping this thread, but I can't post on the Logic GUI forum as I'm not currently registered, and "Creating a new account is currently not possible".

I'm not sure whether my query is a bug or deliberate design - but when using cursor keys to move a group of objects, Logic GUI seems to process a KeyHit() rather than a KeyDown(), and only moves them 1 pixel per keypress.

Would it be possible to change this behaviour so that selected objects continue to move until the pressed cursor key is released?

And a possible bug: the "Gadget name:" field on the "Source Properties" dialog won't allow copying or pasting of text.


jsp(Posted 2013) [#15]
@Chalky
1. Registering to the forum should work again.

Both 'bugs' are by design:)
2. Moving gadgets with the cursor keys should be exact.
When using the cursor keys you can not only move gadgets but also grow and shrink and I thought in the past its better to have it pixel perfect.

From the shortcut table:
Arrow keys Move selected gadgets one pixel
Shift + Arrow keys Move a “big step”. This can be either 5 pixel or if enabled the grid spacing (View
menu/Step in Gridsize)
CTRL + Arrow keys Grow the selected gadgets in that direction by one pixel
CTRL Shift + Arrow keys Grow the selected gadgets in that direction by one “big step”
ALT + Arrow keys Shrink the selected gadgets in that direction by one pixel
ALT Shift + Arrow keys Shrink the selected gadgets in that direction by one “big step”

Using Shift and the cursor key in combination with 'Step in GridSize' could be your friend, what do you think?

3. The copy in the Gadget Name textfield is actually disallowed by a textfield filter function.
The problem here is that the gadget name will be the variable name in the generated source code!
As you know some characters are not allowed as variable name and a copy could of course contain everything.
While the filter function takes care while you type in not to allow 'bad' characters I can't control the copy and thus I disabled it.

If you have a good idea to overcome the limitation let me know. I thought several times about it, but came always back to was it is now.
One version in the past was replacing every bad characters with an underscore for example, but at the end it is always better not to allow those in the first place instead of working around it.


Chalky(Posted 2013) [#16]
Ok great - I will live with it as it is, though my preference for 3 would be to strip any illegal characters during the Paste (this is no different [IMO] to what the filter does anyway).

I'm trying to work out how to use checkboxes in the Multiselection Listbox, and have downloaded ListViewDemo_Export.ELG (which has several compile errors due to Global and Local definitions of ListView gadgets having the same name). This needs two external files ("SmallIcons1-20.png" & "Image1-6.png") - could you tell me the dimensions of these please so that I can get the example to compile?


Chalky(Posted 2013) [#17]
Ok great - I will live with it as it is, though my preference for 3 would be to strip any illegal characters during the Paste (this is no different [IMO] to what the filter does anyway).


jsp(Posted 2013) [#18]
All those images you need are inside the .ELG file.
You can even rename it to .zip and extract it manually.
I have also uploaded the images for direct download into the ListViewDemo folder.


Chalky(Posted 2013) [#19]
Yep - I was having one of my senile moments - I had discovered them and edited my post in the hope you hadn't read it yet...


jsp(Posted 2013) [#20]
LOL - I think it would have worked if there wasn't the double post.


Chalky(Posted 2014) [#21]
I am having a problem with TListview and LISTVIEW_GRID on Windows XP SP3.

If a Listview has more rows than can be displayed and I click its slider arrows, the horizontal grid lines are drawn as "strikethru" (down arrow) or invisible (up arrow) for the first 10 scrolled rows before being drawn correctly from then onwards. This only happens when using "Import maxgui.xpmanifest" - if I compile and run without the manifest import then the control is drawn correctly at all times when scrolling.

Is this a known issue - and if so, does anyone please have a solution?


jsp(Posted 2014) [#22]
Sorry, never seen that problem.
Could you please try to create your own Manifest (you can use the Logic Gui Resource Creator for this) and check if the problem still exist?


Chalky(Posted 2014) [#23]
Hi jsp. I can confirm that the problem still persists with my own manifest file. It also persists if I omit maxgui.xpmanifest, but build with "Enable Visual Styles" checked in the BLide publisher.

Here is an image of what I'm getting when I click in the slider shaft to perform a major downward scroll:




Henri(Posted 2014) [#24]
@jsp It might be due to doublebuffering not enabled in XP-style and MaxGUI doesn't erase the background (by returning true in WM_ERASEBKGND message)

-Henri


jsp(Posted 2014) [#25]
I could manage to simulate the problem, but as I am traveling for the next three weeks I will not be able to have a deeper look why this happens till I am back.
As the problem occurs with this specific view you might want to change to another one since I might find a fix.

The doublebuffering could be a very good reason, I remember there were some changes also done in the past to MaxGUI for similar problems.


Chalky(Posted 2014) [#26]
@jsp - thank you. I tried commenting out the TWindowsListBox WndProc Case statement which returns 1 on WM_ERASEBKGND but after rebuilding MaxGUI the problem was still there (my not fully understanding MaxGUI's structure may well be the reason for this).

I can't really use a different view due to the report-nature of what the program is displaying. Until there is a better way, I'm sending LVM_GETTOPINDEX (btw - a TopIndex() method would be a really useful addition to TListview) and redrawing the gadget if the returned value has changed since the last call. Not perfect, but at least the display is restored as soon as the user releases the mouse button.


Henri(Posted 2014) [#27]
@Chalky

Might not be related at all, but are you using SetGadgetSensitivity() on your listview ?

-Henri


Chalky(Posted 2014) [#28]
@Henri
I did actually try it with SENSITIZE_MOUSE, and initially thought it improved things (interestingly TListview only seems to emit EVENT_MOUSEUP and not EVENT_MOUSEDOWN events). Performing large scrolls up/down refreshed correctly, while scrolling using the slider arrows only "corrupted" the grid the first time in either direction - once the mouse button was released subsequent scrolls behaved normally.

However, clicking on the actual slider bar caused a light blue filled rectangle to be drawn over the entire slider area - and approx. 250 pixels to the left of it. Dragging the (initially invisible) slider bar caused the bar to be drawn, but the rectangle to remain (although "new" rows which had moved into the viewport were drawn fine). Releasing the mouse button refreshed the slider and grid area - but left a remnant of the blue rectangle over the TListview header.

As a last resort, I tried rebuilding win32maxguiex.mod after commenting out the WM_ERASEBKGND Case in TWindowsListBox WndProc, but this made no difference.


skidracer(Posted 2017) [#29]
Added image and moved thread to showcase.