• Print

Author Topic: The GuiTools Framework  (Read 5585 times)

RhoSigma

  • Sr. Member
  • ****
  • Posts: 377
  • Out of Time !!
The GuiTools Framework
« on: January 30, 2016, 04:39:18 pm »
Hi all,

here is yet another concept Framework for creating GUIs with QB64. Different from others, i'll not try to implement a whole windowing environment with Desktop, Taskbar etc., but i build my GUI within the actual program window, hence concentrating on the GUI objects, not the underlying window structure.

This is v0.7 of GuiTools: http://rhosigma-cw.net/down/QB64GuiTools.zip (6.18 MB)

Unpack the archive into your QB64 installation path, it should create a folder named "QB64GuiTools". Please read the file "Info.txt" prior testing to avoid running into any problems, thank you.

As all of my software snippets published here on the forums, GuiTools is "Public Domain". Hence, feel free to use it in whole or parts for your own projects.

NOTE:
This is an long standing topic already, to follow the actual discussion please proceed to the last page.

enjoy,
RhoSigma

« Last Edit: April 11, 2018, 10:14:30 am by RhoSigma »

FellippeHeitor

  • QB64 Partner Site Owner
  • Hero Member
  • *
  • Posts: 1885
  • LET IT = BE
    • QB64.org
Re: The GuiTools Framework
« Reply #1 on: January 30, 2016, 04:55:17 pm »
Truly impressive work there, RhoSigma! Great tools!
- InForm for QB64 http://qb64.org/inform

- vWATCH64 (debugger for QB64) http://bit.ly/vWATCH64v1-103

- Games: http://bit.ly/2048_qb64 * http://bit.ly/ClonedShades_qb64source * http://bit.ly/2aqK866 * http://bit.ly/SpaceshipQB64 * http://bit.ly/2rD1pPP

STxAxTIC

  • Guest
Re: The GuiTools Framework
« Reply #2 on: January 30, 2016, 06:03:11 pm »
Pretty badass, RhoSigma. Keep us posted! Is that a picture of your wife btw?

keybonicplague

  • Sr. Member
  • ****
  • Posts: 272
  • Keepin' it gangsta.
Re: The GuiTools Framework
« Reply #3 on: January 30, 2016, 11:05:10 pm »
I got C++ Compilation Failed.  ???
Thank you and remember folks, Jesus saves but George Nelson withdraws!!!

RhoSigma

  • Sr. Member
  • ****
  • Posts: 377
  • Out of Time !!
Re: The GuiTools Framework
« Reply #4 on: January 31, 2016, 05:37:10 am »
Quote from: FellippeHeitor on January 30, 2016, 04:55:17 pm
Truly impressive work there, RhoSigma! Great tools!
Thanks

Quote from: STxAxTIC on January 30, 2016, 06:03:11 pm
Pretty badass, RhoSigma. Keep us posted! Is that a picture of your wife btw?
Thanks, i'll...
No, it's not my wife. If she would be, then i wouldn't waste any time programming GUIs  ;D
Actually a friend of mine living in Honolulu,HI - You can find her easily on the web searching for her model name "Cori D'Asti"...

Quote from: keybonicplague on January 30, 2016, 11:05:10 pm
I got C++ Compilation Failed.  ???
This is by intention, i've locked you out as you make your own GUI  :D

Sorry, i'm just kidding. This message in the IDE is great, isn't it? You can hardly beat that level of useless information. As a blind chicken i'd pick the possibility, that you're probably not running under Windows? If so, then sorry again, GuiTools is currently Win only.
If you otherwise run on Windows, then please open a command promt, CD into the qb64 folder and type "qb64 -c QB64GuiTools\DemoGuiApp.bas" or ...-GL.bas, if you use the GL version. So we get some info about what's wrong with C++ compilation. Post that info here and i'll do my best to help.

Regards
« Last Edit: January 31, 2016, 11:04:09 am by RhoSigma »

keybonicplague

  • Sr. Member
  • ****
  • Posts: 272
  • Keepin' it gangsta.
Re: The GuiTools Framework
« Reply #5 on: January 31, 2016, 11:29:28 am »
Quote
This is by intention, i've locked you out as you make your own GUI  :D

 :D That is some clever programming then.
Thank you and remember folks, Jesus saves but George Nelson withdraws!!!

keybonicplague

  • Sr. Member
  • ****
  • Posts: 272
  • Keepin' it gangsta.
Re: The GuiTools Framework
« Reply #6 on: January 31, 2016, 11:54:48 am »
Quote from: RhoSigma on January 31, 2016, 05:37:10 am
Sorry, i'm just kidding. This message in the IDE is great, isn't it? You can hardly beat that level of useless information. As a blind chicken i'd pick the possibility, that you're probably not running under Windows? If so, then sorry again, GuiTools is currently Win only.
If you otherwise run on Windows, then please open a command promt, CD into the qb64 folder and type "qb64 -c QB64GuiTools\DemoGuiApp.bas" or ...-GL.bas, if you use the GL version. So we get some info about what's wrong with C++ compilation. Post that info here and i'll do my best to help.

Regards

I'm using Windows 10.

I did'nt get any extra information with the command line switches... Did you use a dirty build to write it? I'm thinking if you did, I might have to temporarily upgrade.
Thank you and remember folks, Jesus saves but George Nelson withdraws!!!

RhoSigma

  • Sr. Member
  • ****
  • Posts: 377
  • Out of Time !!
Re: The GuiTools Framework
« Reply #7 on: January 31, 2016, 12:47:02 pm »
Quote from: keybonicplague on January 31, 2016, 11:54:48 am
I'm using Windows 10.

I did'nt get any extra information with the command line switches... Did you use a dirty build to write it? I'm thinking if you did, I might have to temporarily upgrade.

Actually i did code it using QB64 0.954 SDL on Windows 7, verified it using the GL dirty built from Jan/22.

Just downloaded today's dirty built to double check, so far everything works nice and fluent on my Win 7 system.

You say you got no more info compiling on command line, not even a line number or function name where the error happens?  - That's unusual...

Maybe you should try today's dirty build, if that doesn't work, then it must be a Win 10 issue.

keybonicplague

  • Sr. Member
  • ****
  • Posts: 272
  • Keepin' it gangsta.
Re: The GuiTools Framework
« Reply #8 on: January 31, 2016, 03:04:28 pm »
Quote from: RhoSigma on January 31, 2016, 12:47:02 pm
Quote from: keybonicplague on January 31, 2016, 11:54:48 am
I'm using Windows 10.

I did'nt get any extra information with the command line switches... Did you use a dirty build to write it? I'm thinking if you did, I might have to temporarily upgrade.

Actually i did code it using QB64 0.954 SDL on Windows 7, verified it using the GL dirty built from Jan/22.

Just downloaded today's dirty built to double check, so far everything works nice and fluent on my Win 7 system.

You say you got no more info compiling on command line, not even a line number or function name where the error happens?  - That's unusual...

Maybe you should try today's dirty build, if that doesn't work, then it must be a Win 10 issue.

Nope, I tried the -c and -x switches, and it just told me C++ Compilation Error. Weird.
Im going to try it under a dirty build and ill get back to you.
Thank you and remember folks, Jesus saves but George Nelson withdraws!!!

keybonicplague

  • Sr. Member
  • ****
  • Posts: 272
  • Keepin' it gangsta.
Re: The GuiTools Framework
« Reply #9 on: January 31, 2016, 03:18:07 pm »
Worked under the dirty build, so it's not a problem with Windows 10.

Great job, really nice work. Looks ready to be used to make some nice apps.
Thank you and remember folks, Jesus saves but George Nelson withdraws!!!

RhoSigma

  • Sr. Member
  • ****
  • Posts: 377
  • Out of Time !!
Re: The GuiTools Framework
« Reply #10 on: January 31, 2016, 03:49:05 pm »
Quote from: keybonicplague on January 31, 2016, 03:18:07 pm
Worked under the dirty build, so it's not a problem with Windows 10.

Great job, really nice work. Looks ready to be used to make some nice apps.

Good to know, that it works with the actual builds. Do you know, what build it is which give the C++ error?
I'd like to take a closer look to it.

As for making Apps, of course, but first i must code some more object classes. First the simple ones like Checkboxes, Radio Buttons, Text/Number input fields and later the more complex like Scrollers, Listviews and finally menues. It's certainly a project which will be finished in the long run, not from today to tomorrow, but i guess you know that from your own GUI project.

keybonicplague

  • Sr. Member
  • ****
  • Posts: 272
  • Keepin' it gangsta.
Re: The GuiTools Framework
« Reply #11 on: January 31, 2016, 04:54:23 pm »
Quote from: RhoSigma on January 31, 2016, 03:49:05 pm
Quote from: keybonicplague on January 31, 2016, 03:18:07 pm
Worked under the dirty build, so it's not a problem with Windows 10.

Great job, really nice work. Looks ready to be used to make some nice apps.

Good to know, that it works with the actual builds. Do you know, what build it is which give the C++ error?
I'd like to take a closer look to it.

As for making Apps, of course, but first i must code some more object classes. First the simple ones like Checkboxes, Radio Buttons, Text/Number input fields and later the more complex like Scrollers, Listviews and finally menues. It's certainly a project which will be finished in the long run, not from today to tomorrow, but i guess you know that from your own GUI project.

I've been working on my project for a couple years by now. It has'nt had anywhere near that much constant development though.
As soon as I get the windowing system itself fully functional, then im off to creating widgets like you did.

The build I used was a x64 version that I downloaded somewhere off the forum... it is labelled QB64 x64 (08-20-2015). I assume its a standard 1.0 build with a 64-bit compiler built in... So far I've never had problems, but after today I might start being more suspicious of it.
« Last Edit: January 31, 2016, 05:03:41 pm by keybonicplague »
Thank you and remember folks, Jesus saves but George Nelson withdraws!!!

FellippeHeitor

  • QB64 Partner Site Owner
  • Hero Member
  • *
  • Posts: 1885
  • LET IT = BE
    • QB64.org
Re: The GuiTools Framework
« Reply #12 on: January 31, 2016, 05:11:17 pm »
Quote from: keybonicplague on January 31, 2016, 04:54:23 pm
The build I used was a x64 version that I downloaded somewhere off the forum... it is labelled QB64 x64 (08-20-2015). I assume its a standard 1.0 build with a 64-bit compiler built in... So far I've never had problems, but after today I might start being more suspicious of it.

Because of the current state of the MINGW compiler, it basically takes a hack to get QB64 to compile 64bit executables, so I'd consider the 64bit build you were using unsupported as is.
- InForm for QB64 http://qb64.org/inform

- vWATCH64 (debugger for QB64) http://bit.ly/vWATCH64v1-103

- Games: http://bit.ly/2048_qb64 * http://bit.ly/ClonedShades_qb64source * http://bit.ly/2aqK866 * http://bit.ly/SpaceshipQB64 * http://bit.ly/2rD1pPP

keybonicplague

  • Sr. Member
  • ****
  • Posts: 272
  • Keepin' it gangsta.
Re: The GuiTools Framework
« Reply #13 on: January 31, 2016, 05:17:47 pm »
Quote from: FellippeHeitor on January 31, 2016, 05:11:17 pm
Quote from: keybonicplague on January 31, 2016, 04:54:23 pm
The build I used was a x64 version that I downloaded somewhere off the forum... it is labelled QB64 x64 (08-20-2015). I assume its a standard 1.0 build with a 64-bit compiler built in... So far I've never had problems, but after today I might start being more suspicious of it.

Because of the current state of the MINGW compiler, it basically takes a hack to get QB64 to compile 64bit executables, so I'd consider the 64bit build you were using unsupported as is.

I agree, It just never gave me problems before. It never occurred to me that 64-bit compiler could be causing them.
Thank you and remember folks, Jesus saves but George Nelson withdraws!!!

RhoSigma

  • Sr. Member
  • ****
  • Posts: 377
  • Out of Time !!
Re: The GuiTools Framework
« Reply #14 on: January 31, 2016, 06:18:17 pm »
OK, i've found that version in the forum, installed it and did try the GuiTools demo. Of course i got the c++ compilation error. As command line compiling didn't gave any information, i went into the temp folder and executed the recompile.bat (real name is somewhat different) and so i got my info. The error happens when compiling the contents of GuiAppFrame.h which provides the mutual exclusion Win API calls needed for GuiTools. These functions work with types called HANDLE, which are for whatever reason are defined as void* in the 64bit version of the compiler, while it is something different in 32bit (SDL and GL). The thing is some type casting done in the functions does not work with void*, as you can't cast void to something specific in C++.

However, you can edit that recompile.bat, deleting the -Wfatal-errors switch from the g++ command line and instead insert -fpermissive, then save it and execute it again, then it works. But well, you force the compiler here to ignore/switch off some essential safety checks, so it is not considered a good idea.

As summary, the x64 build is probably working well, as long as you don't throw in your own .h files.

BTW - Trying my FSRemapTests.bas from the QB64GiTools\storage folder, the x64 build was a bit slower than the x32 build. For comparing:

SDL x32 - time/pixel 600ns
GL   x32 -                 630ns
GL   x64 -                 680ns
« Last Edit: January 31, 2016, 06:27:06 pm by RhoSigma »

  • Print