Logic Gui 1.0 Released!

BlitzMax Forums/MaxGUI Module/Logic Gui 1.0 Released!

jsp(Posted 2006) [#1]
When i bought Blitzmax and MaxGui the first thing i really missed was a form editor. I searched the forum and saw others had the same problem, but there were some programs on the way. So i waited several month and did some other stuff. Well, 4 month ago i didn't like to wait anymore and started my own editor.
Although not yet finished here is now version 1.0 of Logic Gui (Windows only, sorry).
Logic Gui has several tools which can assist you in positioning and sizing your items. Use Align, Design Range, Stretch, Trim, Automatic Distribute, Step&Repeat, Grouping, Locking, Measure, Grid... Or you use absolute and relative coordinates with automatic calculation relative to any of the items edges to move your gadgets to the right position.

My to do list is still very long but feel free to give some more input...

Download a free version (use the link in the signature). A help file in pdf format is included, please read as you may miss some functions otherwise. The website i setup gives a small overview of it. Logic Gui Home Page: http://jsp.LogicZone.de and Forum


Updates:

Version 1.1 (45 improvements)
- Full Tabber Support - TextFilter - Gadget Commander...

Version 1.2 (14 improvements)
- Application Events - Splitter Gadget - Editor Integration - Timer Support...

Version 1.3 (18 improvements)
- ScrollPanel Gadget and Type - Visual Feedback - Code Helper...

Version 1.4 (43 improvements)
- Advanced Layer Support - Quick Preview - Export / Import...

Version 2.0
- New Topic here: http://www.blitzbasic.com/Community/posts.php?topic=70489


degac(Posted 2006) [#2]
Nice editor! Very useful things like the Zoom Window!
Good job!


Filax(Posted 2006) [#3]
Yes nice job ! :)


Dreamora(Posted 2006) [#4]
Definitely a nice application :-)


Booticus(Posted 2006) [#5]
Hey thats pretty tight!!


tonyg(Posted 2006) [#6]
Very nice.


LarsG(Posted 2006) [#7]
Hey.. this is very cool..
Looks like a well thought out GUI editor.. :)

I'd like to follow the progress on this one...

@jsp; be sure to keep us informed... :)


tonyg(Posted 2006) [#8]
@jsp, can't seem to get window attributes working (such as menubar and attaching a menu)


jsp(Posted 2006) [#9]
@tonyg

To attach an menu you first need to create one.
This can be done in the Menu Control Center (select from View Pulldown menu). Give it a name and click new.
After that add the menu items you need and select also "Use Event" if you wanna add some actions.

This newly created menu can then be attached to any window inside the form. For example the main window. So double click inside the workspace and select the Main Window on the left side.
Then choose "Menu" on the tabber to select a menu. All available menu are listed, you have to double click the one you want to activate it (it will show up in the upper part ) and also select "Use Menu". Done. Create your source.
Check also the style of the window, if you have selected
a "Menu" , without Menu selected no menu and deselect "Childwindow" if you used one as windows don't use a menu on that one.


tonyg(Posted 2006) [#10]
OK, the source shows up OK but the menu is never visualised in LogicGui. Is that to be expected?


jsp(Posted 2006) [#11]
Yes, that's ok!
As every gadget you position is only a placeholder and i didn't re-program all MaxGui or Windows styles for the placeholder yet, thats too much. The placeholders are all drawn with BlitzMax on the canvas, so one idea is may to add some events to it and all "Gadgets" can then be used also in graphics mode...


tonyg(Posted 2006) [#12]
Yep, I like this. What's on your 'to do list' and what other info can you give?


jsp(Posted 2006) [#13]
As already mentioned the to do list is quite long, but for the moment i split it up in three parts. Near future and medium and far away... something like this.

Far away is e.g. complete layering, i want gadgets in different layer (another layer than now) so you are able to put gadgets on the same space in another layer. This way you can line up your Gui with hidden Gadgets/Windows...

Medium future is e.g. my idea of the Gadget Commander which should make things easier when editing the source code. You choose an action and the Commander will put the source for you... What i mean is, you may want some gadgets disabled or be hidden if the user pushes a button, if it works what i am thinking about then you can simply click those actions together.

Near future is more comfort and may combine some things. Like a filter for textfield and textarea accepting only numbers, characters or so. I like this divider gadget thing from skid i put in the Event Editor, would be nice to have it automatically generated...

For the moment i am working on the tabber gadget. In the first release i create so far the tabber only like MaxGui and Window it supports. Means that the tabber don't do anything else than changing it's tab. Most of the time you would expect it will change your gadgets on top, but that's not standard! Today i am somewhere half the way to have it more like you expect, you can switch the tabs easy by clicking on them in the gui and you can put your gadgets in every “Tab” and Logic Gui will create already now for every Tab a panel and puts all gadgets on top and the select-function switches those panels. But it still needs a lot to do...

Anyway i am open for you input guys. If you miss something or could be done easier.


tonyg(Posted 2006) [#14]
Have you a price and release date planned yet?


jsp(Posted 2006) [#15]
Price not yet fixed but around 15 Euro (may less, depends a bit on distribution) and release date for the next version is planned to be mid January.


Xerra(Posted 2006) [#16]
Had a look at this and I have to say that I'm extremely impressed. You've got my money as soon as you're ready to release this. Being able to have importable gui templates will be a god-send for saving time creating programs.

Great work and I look forward to the completed program.


tonyg(Posted 2006) [#17]
Same here.


EOF(Posted 2006) [#18]
Jens, this tool is really great.
In particular the function calling implementation.
It means I can add things to the GUI without breaking too much code. Nice!


jsp(Posted 2007) [#19]
Thanks all for your kind words :)

The last days i was really busy setting up the new release.

So, now version 1.1 is ready ! There are 31 Add ons, 6 Fixes, 8 Changes.

I put an extra “News” page on my website to reflect those changes in version 1.1, check it out.

If you like to buy it, it's now available via the download page. The first 10 get a discount when entering “logiczone” as coupon code. The free version is for the moment still at version 1.0, i will update that one later this month.


Booticus(Posted 2007) [#20]
Couldn't resist. Bought a copy. Loved the demo too.


Xerra(Posted 2007) [#21]
I have to agree. Jens let me do some testing on the full version of Logicgui to help me with a program I've been writing and it's working very, very well. I've bought the program too as it is well worth the money.

Well done, Jens.


LarsG(Posted 2007) [#22]
aaa, what the heck... I just bought a copy too.. :)

JSP, do we get any free updates with the product too?


jsp(Posted 2007) [#23]
Depends a bit on sales of course, for the moment my plan is to have all updates for free! Don't know yet if that will work. For sure all updates for version 1.x will be free of charge!


doswelk(Posted 2007) [#24]
Just bought it!

Coupon is still working so hurry.....


jsp(Posted 2007) [#25]
Update 1.2 is up and running.

Major improvement - you can now integrate your favorite editor and don't need to use Logic Gui for that. That means you can work in your normal environment and the code can stay longer intact for the gui part.

A splitter gadget is now available, easy to use!
Full Timer support.
A new Ruler and some more nice features.

Check out the news on my website for details and pictures (use the link from the signature)


tonyg(Posted 2007) [#26]
Just running through the documentation/tutorial for this and have to say again that this really is a very very good application.


snation(Posted 2007) [#27]
jsp,

Been using Logic Gui, purchased. Just wanted to say thank you! An excellent tool, finely crafted. Encourage any to purchase this great tool.


jsp(Posted 2007) [#28]
Thanks a lot!
It's nice to hear that you like it and that the design/concept of Logic Gui is accepted as it is.

For the moment i am busy coding a ScrollPanel – that means a panel which can have a bigger virtual size than on screen and scrollbars are automatically created as needed. As this is not that problem via MaxGui this is quite some work for me to have a placeholder acting the same in Logic Gui. But half the work is done and the ScrollPanel should come in the next version.

Actually i would like to see more of those “combined gadgets” (and i can imagine some) as they can save again a lot of time against doing the coding and setup by hand, but as it is that much work to put one together it will take some time. And it is quite difficult to judge which gadget is more important than another one and should be setup first. I hope you agree that the ScrollPanel was important enough:)


tonyg(Posted 2007) [#29]
@jsp, You might want to see this as the 'bug' was found while using LogicGui.
I simplified the code for the bug report but the generated source reads :

Seems windowmenus (menus which attach to windows rather than attach to other menus) screw up with hotkeys.


jsp(Posted 2007) [#30]
@tonyg,
yep i consider this as MaxGui bug, did just a short test and looks strange and it is even worse when you use also a modifier with it.
When you attach another submenu to this type of "main" menu it looks ok again and all events are generated by the hotkeys as it should, so it's a rare situation, but yes it's a bug.


jsp(Posted 2007) [#31]
New version 1.3 is released.

I have added a ScrollPanel which automatically creates scrollbars to a panel when needed. You can define a “big” virtual size and a real size in your form. The ScrollPanel is fully interactive. Move easily your gadgets inside, scroll a bit and put the next one...
Logic Gui uses a new ScrollPanel type during source creation to reflect all settings. The type hooks into the event queue and acts immediately on slider movement or on window (or parent) resize and updates all on the fly.

Also visual feedback is added while you move or position gadgets, thus you able to work a lot faster. Check out the pictures on my website to see how it works.

A Code Helper can insert all standard constructs like: If Then Else, For Next, Repeat Until... which saves you once more some time.

Version 1.3 is also quite faster when using a lot of gadgets. And more...
Use the link in my signature to see all detailed information of this update on the News page of my homepage.


LAB[au](Posted 2007) [#32]
It seems that in Canvas properties while trying to setup the x,y position values, it doesn't keep them, they are automatically reset to the screen/visual position. Precise positioning of the canvas is thus not impossible(thanks to the grid snapping!) but a bit more difficult.


tonyg(Posted 2007) [#33]
Hmmm... I don't have a problem here with 1.3.
I create a canvas (canvas1) and then right-click properties and change it's X/Y value then apply or OK and the canvas moves to the new position.


jsp(Posted 2007) [#34]
@lab I could not reproduce this. Do you still have a problem or did the hint from tony help? Please remember that you can also use the Gadget Control Center to set the X and Y coordinates directly (the preferred method i think).


LAB[au](Posted 2007) [#35]
Using 1.3 as well, and yes I have still the problem, the canvas is bigger than the containing window maybe it's that!? I did not try with the gadget control center ... will report later.


tonyg(Posted 2007) [#36]
It won't letter accept '0' in either the X or Y fields although I can move the canvase to 0,0 (or minus something). Is that it?


jsp(Posted 2007) [#37]
Not sure if i understand correctly, if possible mail me a screenshot.
Please keep in mind that that every gadget needs to be at least 1 pixel inside the container gadget for the recursive parser to do the job.


tonyg(Posted 2007) [#38]
I'll try to do it here although it might not be the same issue LAB[au] is reporting.
1) Start LogicGUI
2) File / New
3) Create Standard Canvas and drag+drop any size
4) Use contextual menu on the canvas and select properties.
5) Change X or Y value to '0' and apply.
Result : The value changes back to it's previous value.
As the canvas can be changed to X=1, Y=1 then it's probably the limitation you mention.
However, drag the canvas. It can be dragged to minus X/Y values. By a bit of precision it can be dragged to X=0 and/or Y=0. If Grid Snap is turned on then it is easier to get 0,0.
In addition, it;s possible to drag the canvas to a position which is NOT snapped to the grid by moving the canvas quickly and then 'dropping' it.


jsp(Posted 2007) [#39]
Yes, thats the limitation. I doesn't allow 0 for that reason, but you can move actually everywhere.
The snap only jumps to the next grid if you are slow and close enough, this can be adjusted via the “Threshold” level in the defaults.xml file (which is 4 pixel if you didn't change it) if you are below snap is active. If you are moving fast i assume you don't want to snap, because a fast movement won't be precise and thus deactivating snap to suppress a “jumping” gadget.


LAB[au](Posted 2007) [#40]
I am not sure but it seems if you update the x AND the y field then Apply or OK it doesn't work. However if you are updating the x value then click Apply, then doing the same for y it works!


jsp(Posted 2007) [#41]
@LAB You've got mail! As i store every customer version, i try to reproduce the problem with exactly the version you got and didn't see any issue. So i send you a player/recorder and a video-clip how it works and you can send one, how it doesn't work. Hope that helps.


jsp(Posted 2007) [#42]
.


jsp(Posted 2007) [#43]
Ok, i got the point. Although i put in the limit for zero coordinates to prevent unexpected results it does not correspond with the rest. Either i should allow it or not at all possible locations. So now i decided to allow it also in the Source Properties Editor. The change/fix will be in next release.


jsp(Posted 2007) [#44]
Version 1.4 is out now!
(43 improvements)

The biggest change is the Advanced Layer Support:
It lets you create complicated forms very easy. Gadgets with the attribute hidden or disabled are predestined for this. Or you can put other windows like for help, tools or notification into it. Every layer can have a transparency level of 0-100%. Can be made visible, invisible or create source output or not. And to have total flexibility you can put layers in layers in layers...
Managing several panels with gadgets on top which are hidden or shown in the same place are now that easy.
Windows (About/Help...) which are used ever and ever again can be imported just in a separated layer and will be integrated into the source as needed.
“Parking” of gadgets without moving them - let them stay in another layer until you need them and turn off the Source Code creation.
Line up the gadgets between layers is very easy. Use the transparency level to make the top layer(s) see-through.

Other news:
Export / Import Function – exchanging your form including all external files between computers are now fast and simple.
Complete Order and Grouping Menu, Quick Preview, faster Primary selection...

As usual: Check out the news on my website for all details and pictures (use the link from the signature)


CodeGit(Posted 2007) [#45]
I have just purchased this product and I have to say it's really good.

If anybody in the community is looking for a solid feature rich form editing tool for BlitzMax....THIS IS IT. Check it out here - http://jsp.logiczone.de/


Stu_ovine(Posted 2007) [#46]
Is there any way to insert a function call before the Repeat ....WaitEvent() loop starts ?

*update*

The checkbox for "global gadgets" is always disabled, how do you enable it ? (or is it a bug)


Stu_ovine(Posted 2007) [#47]
Also small error. when trying to use an APPLICATION EVENT_APPTERMINATE the generated code adds a null parameter.

i.e. adds an unwanted comma.

Function Logic_Gui_Terminate( , GadgetList:TList=Null )


*UPDATE*

Also the checkbox for the EVENT_APPTERMINATE always shows unchecked whether its checked or unchecked.



Gotta say its a joy to use....


jsp(Posted 2007) [#48]
@OvineByDesign
Bug confirmed and fixed.
The string was not adjusted for the Application Events (all of them) when using the GadgetList.
The same to the Function header as they are in the same type.

The Event Application Terminate checkbox used the wrong variable to set it's state. A copy / paste failure – my best friend...;) can't live without, but gives the most problems.

For a function call before the Repeat loop you can use the ApplicationHeader file if this is not too early. Actually i was thinking about an extra option here some time ago, but didn't come up with a good example, so i dropped the idea. Tell me what you need so i can check it.

The Global Checkbox is always disabled, sorry for confusion. Actually i hate globals (not always...), but i got a request for this for a certain problem so i start putting it in. Before i could finish, it was not needed anymore, so i just disabled it for later use maybe.

If you need an update for the fixes before the next official release send me an email please.


Stu_ovine(Posted 2007) [#49]
Im working around the little bugs -so no rush they are only minor.

The reason for the function before the "repeat" but after the gadget setups is for things like :-

SetGraphics CanvasGraphics(canvasGad)


As your defining everything as local my external functions cant access the Canvas gadget.......

Im not a fan of globals but for the small hack programs I do have todo, its nice to be able to access the gadgets from any function. I for one would like it finished :)

*Update

How about a checkbox for each gadget to select local or global ? More I think about it the canvas I would prefer as global - but not any of the other gadgets .....


CodeGit(Posted 2007) [#50]
Also, and this is really minor but worth fixing for your next release. The declaration of the gadgets in the source file that the program generates, has indentations(additional spaces) which I think should not be there. Hope this makes sense.


Stu_ovine(Posted 2007) [#51]
Another good reason for selectable Global/Locals - is - so we can populate and change itemlists in runtime :S


Stu_ovine(Posted 2007) [#52]
Another quirk.

Using the gadget control center doesn't always allow you to blank out the TEXT in a textfield. After pressing UPDATE it reverts back to whatever text was originally there.

Its fine using the normal properties window.


jsp(Posted 2007) [#53]
@CodeGit
Not sure which one you mean. The rule is that every action on a gadget should have an indent, so you can immediately see where this action belongs to. If a gadget is created underneath another gadget it should also have an indent to show the hierarchy. Do you mean this?

@OvineByDesign
So the selectable variable type will come! It is on my list, but i cannot yet promise if it will be in the next release. (Current module takes quite some time)

The quirk with the textfield text is actually a security feature. I put it in because you could select all your gadgets at once and by mistake may leave this field empty. That means all your text of the hole form or whatever was selected is deleted! This can destroy a lot of work. But in the Source Properties Window one gadget only is selected and so i allow to delete the text here. Do you think i should change it?

For the gadget setup i could manage to put it in already. From my history:
Added An extra file is now inserted between the gadget creation part and the event queue, thus you are able to activate certain gadgets or any other initialization. In the Source Properties Editor under Application/Files you can find the new entry. You can set and modify it directly from Logic Gui. The current form will store state and url. The defaults.xml file will be updated on the fly with standard values. Those will be used if you start with a new form. The path to this new file can be relative or absolute. Export saves the file with your form and Import reads it all in again.


CodeGit(Posted 2007) [#54]
@jsp

Yes that's the one I meant. If it's a design feature no problem.

Keep up the good work.

Here is a suggestion. Have a look at this http://www.blitzforum.de/forum/viewtopic.php?t=20102

It's an implementation of a LISTVIEW, I have intergrated it into my code no problem, you should be able to add it into logic Gui as a "special gadget" or an "extra" ListBox. If you read some of the previous comments from other programmers, you will see that this is a much needed feature in BMax. Just something to think about.

I have a working example if you want, just let me know.


*(Posted 2007) [#55]
Codegit could you email the example to edupton1@... please as I would like to have a look at it.


CodeGit(Posted 2007) [#56]
EdzUp

Sent


jsp(Posted 2007) [#57]
@OvineByDesign
Had some time last weekend and checked the “Text” textfield again and because i know when a single selection or a multi selection is done, i changed now the behavior as it is in the Prop. Editor. So for single selections you will be able to delete the text as expected.

@CodeGit
I also looked over the source again and found one small bug when using a ScrollPanel. My indent automatic was loosing here one step... Not that important but could mix a bit the indent of gadgets that followed.

I tried the example of the “tuned” Listbox as well. Actually i am waiting myself already some time that it will come officially. It could make things a lot clearer when using it in a gui. Using now that code could be nice or bad. Nice for all the advantages it will bring, but also bad that it is using nothing officially and is not cross platform any more. Don't know yet what is the right way to go here.
Does your code something different than the example which comes with the code? If yes pls. send it to me (address in profile).


CodeGit(Posted 2007) [#58]
I have made no changes to the code that was originally posted on the german forum. So there is no need for me to send it onto you.


Stu_ovine(Posted 2007) [#59]
I think I've found another bug.

When trying to save an EVENT in the toolbar - the program is not saving it.


jsp(Posted 2007) [#60]
Yes, i found that one last week and it is related to the way i save it.
The error was with MaXML (actually 2 bugs).
I reported it and John J. fixed it quickly. -> http://www.blitzbasic.com/Community/posts.php?topic=56469

Additional Logic Gui could loose an event when changing text in the event area only. Change some dummy characters in the 'tip' textfield to overcome this, but until the xml fix is not present you cannot store more than one line ;(

So this is already fixed and will be in the next release.


Stu_ovine(Posted 2007) [#61]
Any ETA on the new version?

Can you confirm that you have or will be re-enabled the "GLOBAL" flag on generated gadgets ? Im having to load the source into an editor - do a search and replace local into global ATM and its becoming a real pain now......


jsp(Posted 2007) [#62]
If all goes well next release would be in ~ 3/4 weeks. I'm a bit short in time for the moment, too much real work... And also Logic Gui takes quite some time.

Anyway, i didn't re-enable the Global flag, that was too limited. You can change now for every gadget which type do you prefer ( Local / Global / Field ) and you can setup a general variable type as default for every new gadget. All Global and Field Type variables will be in front of your source and if you typed a comment to your gadget it will be shown as well as explanation.

Global	TextField1:TGadget		'Numbers input only
Global	Label1:TGadget		'Display of date and time
Global	ProgBar1:TGadget		'Updated with timer 5
Field	TimeSlider:TGadget		'Time Value

Local Logic_Gui:TGadget = CreateWindow:TGadget(...

I can prepare you an interim version if you like just drop me an email.


Stu_ovine(Posted 2007) [#63]
Sounds an excellent idea... look forward to the release.