www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - GtkD Blog Now Up and Running

reply Ron Tarrant <rontarrant gmail.com> writes:
Hi y'all,

As of January 11, 2019, http://gtkdcoding.com is up. It's a blog, 
it's a github page, it's simple examples of how to use GtkD for 
all that GUI stuff.

My approach is to lay out a firm foundation for both imperative 
and object-oriented paradigms, then build from there, taking 
things one step at a time.

This being Friday, the 4th post went up this morning. Please do 
let me know if you find it useful.

And why did I wait until now to announce? Well, on day one, it 
seemed a bit silly to announce with only one post. After the 
second and third, well... I still didn't feel there was enough to 
warrant excitement. But four posts? Now that's something to speak 
up about, ain't it?

Yup. That's what I thought, too.
Jan 25 2019
next sibling parent reply Ron Tarrant <rontarrant gmail.com> writes:
PS: And let me know if you find any inaccuracies or if something 
isn't clear.
Jan 25 2019
parent dangbinghoo <dbh625 126.com> writes:
On Friday, 25 January 2019 at 21:19:45 UTC, Ron Tarrant wrote:
 PS: And let me know if you find any inaccuracies or if 
 something isn't clear.
Great Job! ^_^ and for dub type of project, just add `gtk-d` as a dependency, it works well both on windows and linux right out of box, the only thing is on windows we need to install runtime for gtkd.org first, and ldc or dmd only support MS buildtools to link aginst with gtkd runtime, the default mingw linker will not work. Thanks for the great work!
Jan 26 2019
prev sibling next sibling parent reply WebFreak001 <d.forum webfreak.org> writes:
On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote:
 Hi y'all,

 As of January 11, 2019, http://gtkdcoding.com is up. It's a 
 blog, it's a github page, it's simple examples of how to use 
 GtkD for all that GUI stuff.

 My approach is to lay out a firm foundation for both imperative 
 and object-oriented paradigms, then build from there, taking 
 things one step at a time.

 This being Friday, the 4th post went up this morning. Please do 
 let me know if you find it useful.

 And why did I wait until now to announce? Well, on day one, it 
 seemed a bit silly to announce with only one post. After the 
 second and third, well... I still didn't feel there was enough 
 to warrant excitement. But four posts? Now that's something to 
 speak up about, ain't it?

 Yup. That's what I thought, too.
nice! I love seeing tutorials for D stuff, and GtkD is something I used to use for GUI applications a lot too. I only skimmed over it a bit, maybe you should also add a post about how to use GtkD with dub instead of manually invoking the compiler. I think dub is a lot more beginner friendly and easier to setup + users will probably want to add some dependencies in the future of their app. When I tried it with dub it was just adding the dependency and everything worked on Linux, but I couldn't make it run on windows with that. (though I only used the app on Linux so that was not a problem for me) Anyway, great seeing someone making GtkD tutorials, keep it up +1
Jan 25 2019
parent reply Ron Tarrant <rontarrant gmail.com> writes:
On Friday, 25 January 2019 at 22:17:06 UTC, WebFreak001 wrote:

I think dub is a lot more beginner friendly and
 easier to setup + users will probably want to add some 
 dependencies in the future of their app.
LOL! Not my experience with dub, but I take your point. I haven't actually gone back to try dub again. I have a mental block when it comes to json files. Don't know why, it's just there.
Jan 29 2019
next sibling parent reply Ron Tarrant <rontarrant gmail.com> writes:
Thanks for all the kind words, guys.

Yeah, dub is a sticking point for me and I'm gonna have to get 
past it. I just have so much on my plate ATM that I don't wanna 
take the time to dig into it again for fear of falling behind on 
something else.

But I will get to it at some point.
Jan 29 2019
parent Jordan Wilson <wilsonjord gmail.com> writes:
On Tuesday, 29 January 2019 at 20:58:08 UTC, Ron Tarrant wrote:
 Thanks for all the kind words, guys.

 Yeah, dub is a sticking point for me and I'm gonna have to get 
 past it. I just have so much on my plate ATM that I don't wanna 
 take the time to dig into it again for fear of falling behind 
 on something else.

 But I will get to it at some point.
After many years of using CodeBlocks, late last year I forced myself to use a Visual Code / Dub workflow. It has it's pros and cons, but I do enjoy the extensions that are available Visual Code for the D language. Jordan
Jan 29 2019
prev sibling parent reply WebFreak001 <d.forum webfreak.org> writes:
On Tuesday, 29 January 2019 at 20:53:53 UTC, Ron Tarrant wrote:
 On Friday, 25 January 2019 at 22:17:06 UTC, WebFreak001 wrote:

 I think dub is a lot more beginner friendly and
 easier to setup + users will probably want to add some 
 dependencies in the future of their app.
LOL! Not my experience with dub, but I take your point. I haven't actually gone back to try dub again. I have a mental block when it comes to json files. Don't know why, it's just there.
hey it's easy, you can also use SDL! :p dub.sdl: name "my-awesome-gtk-app" dependency "gtk-d" version="~>3.8.5" ... and that's it already actually. It will compile everything in the "source" folder and add the dependencies with it. And well you will have to add DLLs and stuff like you would need to with pure dmd, gtk-d doesn't ship any DLLs.
Jan 29 2019
next sibling parent reply Ron Tarrant <rontarrant gmail.com> writes:
On Tuesday, 29 January 2019 at 21:13:17 UTC, WebFreak001 wrote:

 hey it's easy, you can also use SDL! :p

 dub.sdl:
 name "my-awesome-gtk-app"

 dependency "gtk-d" version="~>3.8.5"



 ... and that's it already actually. It will compile everything 
 in the "source" folder and add the dependencies with it.

 And well you will have to add DLLs and stuff like you would 
 need to with pure dmd, gtk-d doesn't ship any DLLs.
Okay, so I create a file, name it dub.sdl and put this in it: name "my-awesome-gtk-app" dependency "gtk-d" version="~>3.8.5" And this goes in the same folder as the code file. And then... what? I type: dub? Just for the record, this is completely different from what I was reading before about this dub stuff.
Jan 29 2019
next sibling parent WebFreak001 <d.forum webfreak.org> writes:
On Tuesday, 29 January 2019 at 21:47:06 UTC, Ron Tarrant wrote:
 On Tuesday, 29 January 2019 at 21:13:17 UTC, WebFreak001 wrote:

 hey it's easy, you can also use SDL! :p

 dub.sdl:
 name "my-awesome-gtk-app"

 dependency "gtk-d" version="~>3.8.5"



 ... and that's it already actually. It will compile everything 
 in the "source" folder and add the dependencies with it.

 And well you will have to add DLLs and stuff like you would 
 need to with pure dmd, gtk-d doesn't ship any DLLs.
Okay, so I create a file, name it dub.sdl and put this in it: name "my-awesome-gtk-app" dependency "gtk-d" version="~>3.8.5" And this goes in the same folder as the code file. And then... what? I type: dub? Just for the record, this is completely different from what I was reading before about this dub stuff.
yeah just put it in your project folder, not the source folder, so it looks like this: source/ app.d some_other_file.d dub.sdl then you just run `dub` in the folder with dub.sdl A minor "limitation" can be that the files must follow their filenames as modulenames more strictly (otherwise weird errors could happen if you add `module bar;` in foo.d for example)
Jan 29 2019
prev sibling next sibling parent Johannes Loher <johannesloher fg4f.de> writes:
Am 29.01.19 um 22:47 schrieb Ron Tarrant:
 And this goes in the same folder as the code file. And then... what? I
 type: dub?
The code file should be in a subfolder called "source". This is customizable, but this is the default. So the folder structure should look something like this: ├── dub.sdl └── source └── app.d By default, if there is a source file called "app.d" or "main.d", dub will assume that your application is an exectuable and build it accordingly (if targetType is not explicitly set to something else in your dub.json or dub.sdl file). If you don't want to have a source file named like that, you will need to tell dub explicitly to build an executable (if that is what you want) by adding the line ``` targetType "executable" ``` to your dub.sdl. The easiest way to actually see how the basic folder structure should look like is to simply call `dub init` in an empty folder. This will interactively set up a basic project in that directory. During the interactive process, you can set some properties for your project, e.g. if you want to use a dub.sdl or dub.json file, add dependencies, choose the name of the project etc. It really works in a straightforward way. To actually build the project, simply run `dub build` from the project's root folder. this will create a binary in the projects root folder with the name specified in the dub.sdl file. You can also run the project directly after compiling by running `dub run` (or simply just `dub`, which does the same thing) from the projects root folder. All of this assumes that dub is actually installed and available on your PATH.
Jan 29 2019
prev sibling parent reply =?UTF-8?Q?Christian_K=c3=b6stlin?= <christian.koestlin gmail.com> writes:
On 29.01.19 22:47, Ron Tarrant wrote:
 On Tuesday, 29 January 2019 at 21:13:17 UTC, WebFreak001 wrote:
 
 hey it's easy, you can also use SDL! :p

 dub.sdl:
 name "my-awesome-gtk-app"

 dependency "gtk-d" version="~>3.8.5"



 ... and that's it already actually. It will compile everything in the 
 "source" folder and add the dependencies with it.

 And well you will have to add DLLs and stuff like you would need to 
 with pure dmd, gtk-d doesn't ship any DLLs.
Okay, so I create a file, name it dub.sdl and put this in it: name "my-awesome-gtk-app" dependency "gtk-d" version="~>3.8.5" And this goes in the same folder as the code file. And then... what? I type: dub? Just for the record, this is completely different from what I was reading before about this dub stuff.
Yes. Its as simple as: (dmd-2.084.0)~/tmp > mkdir gtkdtest (dmd-2.084.0)~/tmp > cd gtkdtest/ (dmd-2.084.0)~/t/gtkdtest > dub init Package recipe format (sdl/json) [json]: sdl Name [gtkdtest]: Description [A minimal D application.]: A minimal GTKD application. Author name [....]: License [proprietary]: Copyright string [....]: Add dependency (leave empty to skip) []: gtk-d Adding dependency gtk-d ~>3.8.5 Add dependency (leave empty to skip) []: Successfully created an empty project in '/...../tmp/gtkdtest'. Package successfully created in . (dmd-2.084.0)~/t/gtkdtest > pasteing a simple gtkd hello world into source/app.d and then run (dmd-2.084.0)~/t/gtkdtest > dub run I was surprised how simple it is nowadays even in osx. kind regards, christian
Jan 29 2019
parent reply Ron Tarrant <rontarrant gmail.com> writes:
On Tuesday, 29 January 2019 at 23:09:57 UTC, Christian Köstlin 
wrote:
 I was surprised how simple it is nowadays even in osx.
Okay, there's definitely something odd going on with my set up. I followed your directions to the letter and OPTLINK barfed. Here is the output from my first try to compile: d:\example\gtkdtest>dub run Fetching gtk-d 3.8.5 (getting selected version)... Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86. gtk-d:gtkd 3.8.5: building configuration "library"... gtk-d:gstreamer 3.8.5: building configuration "library"... gtk-d:peas 3.8.5: building configuration "library"... gtk-d:sv 3.8.5: building configuration "library"... gtk-d:vte 3.8.5: building configuration "library"... gtkdtest ~master: building configuration "application"... Linking... OPTLINK (R) for Win32 Release 8.00.17 Copyright (C) Digital Mars 1989-2013 All rights reserved. http://www.digitalmars.com/ctg/optlink.html C:\Users\ron\AppData\Local\dub\packages\gtk-d-3.8.5\gtk-d\.dub\build\library-debug-windows-x86-dmd_2082-CDBC653BD18B82F232E46588811160FC\gtkd-3.lib Warning 178: .LIB pagesize exceeds 512 Running .\gtkdtest.exe Edit source/app.d to start your project. And after double-checking, I did it again with this result: d:\gtkdtest>dub run --force Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86. gtk-d:gtkd 3.8.5: building configuration "library"... gtk-d:gstreamer 3.8.5: building configuration "library"... gtk-d:peas 3.8.5: building configuration "library"... gtk-d:sv 3.8.5: building configuration "library"... gtk-d:vte 3.8.5: building configuration "library"... gtkdtest ~master: building configuration "application"... Linking... OPTLINK (R) for Win32 Release 8.00.17 Copyright (C) Digital Mars 1989-2013 All rights reserved. http://www.digitalmars.com/ctg/optlink.html C:\Users\ron\AppData\Local\dub\packages\gtk-d-3.8.5\gtk-d\.dub\build\library-debug-windows-x86-dmd_2082-CDBC653BD18B82F232E46588811160FC\gtkd-3.lib Warning 178: .LIB pagesize exceeds 512 Error: linker exited with status 1 C:\D\dmd2\windows\bin\dmd.exe failed with exit code 1. Those were from the standard command shell. I tried it with Git Bash as well and got the same results. And that's why I haven't been using dub. I got things to work with dmd and like they say, if it ain't broke... :) You said you're on OSX, right? Is it possible that dub just isn't as cooperative on Windows 10? Of course, if you can see something in this output that hints at a fix, please let me know.
Jan 30 2019
parent reply Jacob Carlborg <doob me.com> writes:
On 2019-01-30 11:35, Ron Tarrant wrote:

 You said you're on OSX, right? Is it possible that dub just isn't as 
 cooperative on Windows 10? Of course, if you can see something in this 
 output that hints at a fix, please let me know.
It's Optlink being stupid as always. If you want to figure out what's wrong you can invoke Dub with the "--verbose" flag to have it print the commands it's running, i.e. how it's invoking the compiler and the linker. You can do the same thing when invoking the compiler manually by adding "-v" to see how it links the application and compare that with Dub. Or, you can try compiling as COFF instead of OMF which will not use Optlink. Add the flag "--arch=x86mscoff" when invoking Dub. -- /Jacob Carlborg
Jan 30 2019
next sibling parent reply Mike Wey <mike-wey example.com> writes:
On 30-01-2019 21:07, Jacob Carlborg wrote:
 On 2019-01-30 11:35, Ron Tarrant wrote:
 
 You said you're on OSX, right? Is it possible that dub just isn't as 
 cooperative on Windows 10? Of course, if you can see something in this 
 output that hints at a fix, please let me know.
It's Optlink being stupid as always. If you want to figure out what's wrong you can invoke Dub with the "--verbose" flag to have it print the commands it's running, i.e. how it's invoking the compiler and the linker. You can do the same thing when invoking the compiler manually by adding "-v" to see how it links the application and compare that with Dub. Or, you can try compiling as COFF instead of OMF which will not use Optlink. Add the flag "--arch=x86mscoff" when invoking Dub.
This is whats going on: https://issues.dlang.org/show_bug.cgi?id=15418 To work around this you can either build things with "--arch=x86mscoff" or tell dub not to build the debug version with "--build=plain". -- Mike Wey
Jan 30 2019
parent reply Ron Tarrant <rontarrant gmail.com> writes:
On Wednesday, 30 January 2019 at 21:21:24 UTC, Mike Wey wrote:

 This is whats going on: 
 https://issues.dlang.org/show_bug.cgi?id=15418

 To work around this you can either build things with 
 "--arch=x86mscoff" or tell dub not to build the debug version 
 with "--build=plain".
Ah! Thanks, Mike. Does the lack of an answer to the last question there mean that this is an on-going issue?
Jan 31 2019
next sibling parent Mike Wey <mike-wey example.com> writes:
On 31-01-2019 21:33, Ron Tarrant wrote:
 On Wednesday, 30 January 2019 at 21:21:24 UTC, Mike Wey wrote:
 
 This is whats going on: https://issues.dlang.org/show_bug.cgi?id=15418

 To work around this you can either build things with 
 "--arch=x86mscoff" or tell dub not to build the debug version with 
 "--build=plain".
Ah! Thanks, Mike. Does the lack of an answer to the last question there mean that this is an on-going issue?
Yes, the issue is still open / on-going. -- Mike Wey
Jan 31 2019
prev sibling parent reply Petar Kirov [ZombineDev] <petar.p.kirov gmail.com> writes:
On Thursday, 31 January 2019 at 20:33:43 UTC, Ron Tarrant wrote:
 On Wednesday, 30 January 2019 at 21:21:24 UTC, Mike Wey wrote:

 This is whats going on: 
 https://issues.dlang.org/show_bug.cgi?id=15418

 To work around this you can either build things with 
 "--arch=x86mscoff" or tell dub not to build the debug version 
 with "--build=plain".
Ah! Thanks, Mike. Does the lack of an answer to the last question there mean that this is an on-going issue?
The issue is unrelated to dub. It only has to do with object format and linker that dmd uses on Windows by default. This issue is perhaps the reason why you had to use the -m64 dmd flag in your first post. If you don't specify the target arch on Windows - the -mXX flag for dmd, or the --arch=YYY flag for dub - the default is going to be -m32 and --arch=x86 respectively. So, assuming you have the MSVC C++ toolchain installed, just build with dub by specifying either the --arch=x86_mscoff or --arch=x86_64 flags. But no one should ever need to modify their dmd installation, in order to use gtkd.
Jan 31 2019
next sibling parent Kagamin <spam here.lot> writes:
On Friday, 1 February 2019 at 07:43:23 UTC, Petar Kirov 
[ZombineDev] wrote:
 So, assuming you have the MSVC C++ toolchain installed, just 
 build with dub by specifying either the --arch=x86_mscoff or 
 --arch=x86_64 flags.
 But no one should ever need to modify their dmd installation, 
 in order to use gtkd.
I don't think you still need ms toolchain installed: dmd comes with lld linker and mingw libs.
Jan 31 2019
prev sibling parent reply Ron Tarrant <rontarrant gmail.com> writes:
On Friday, 1 February 2019 at 07:43:23 UTC, Petar Kirov 
[ZombineDev] wrote:

 But no one should ever need to modify their dmd installation, 
 in order to use gtkd.
Too true. It's one of the reasons I'm sticking with dmd for now. I followed a simple set of instructions to get an environment set up, the same instructions I posted on the blog. And I'm thinking the simplest way for a blog reader to get to a compiled product is the way I've outlined. Perhaps I'm wrong about that, but it's what I'm aiming for, the least fuss, the least work, the least complexity.
Feb 02 2019
parent reply Ron Tarrant <rontarrant gmail.com> writes:
On Saturday, 2 February 2019 at 17:01:28 UTC, Ron Tarrant wrote:
 It's one of the reasons I'm sticking with dmd for now.
This morning, after creating the file: C:\ProgramData\dub\settings.json with contents: { "defaultArchitecture": "x86_64", "defaultCompiler": "ldc" } I ran some more tests with dub and successfully compiled/ran some of my GtkD example code. (Yay!) At some point, I guess I'd better write this up and post it.
Feb 06 2019
parent Ron Tarrant <rontarrant gmail.com> writes:
On Wednesday, 6 February 2019 at 16:53:49 UTC, Ron Tarrant wrote:
 On Saturday, 2 February 2019 at 17:01:28 UTC, Ron Tarrant wrote:
 I ran some more tests with dub and successfully compiled/ran 
 some of my GtkD example code. (Yay!)

 At some point, I guess I'd better write this up and post it.
Oddly, if I type: dub init in a git bash shell, it just wanders off like my grandmother when she's off her meds. But it works fine from the Windows 10 command prompt.
Feb 06 2019
prev sibling parent Ron Tarrant <rontarrant gmail.com> writes:
On Wednesday, 30 January 2019 at 20:07:15 UTC, Jacob Carlborg 
wrote:

 It's Optlink being stupid as always. If you want to figure out 
 what's wrong you can invoke Dub with the "--verbose" flag to 
 have it print the commands it's running, i.e. how it's invoking 
 the compiler and the linker. You can do the same thing when 
 invoking the compiler manually by adding "-v" to see how it 
 links the application and compare that with Dub.

 Or, you can try compiling as COFF instead of OMF which will not 
 use Optlink. Add the flag "--arch=x86mscoff" when invoking Dub.
I think I'll wait, but thanks for letting me know.
Jan 31 2019
prev sibling parent reply Neia Neutuladh <neia ikeran.org> writes:
On Tue, 29 Jan 2019 21:13:17 +0000, WebFreak001 wrote:
 dub.sdl:
 name "my-awesome-gtk-app"
 
 dependency "gtk-d" version="~>3.8.5"
Might I recommend instead: dependency "gtk-d" version="3.8.5" This depends on gtk-d 3.8.5 and only that version. If there is a breaking change in 3.8.6 despite semantic versioning, your code keeps working. In libraries, I prefer using ~> to give more freedom to people depending on my code. But in applications, that isn't a concern. May as well only allow the code to be built with the versions of your dependencies that you've actually tested.
Jan 29 2019
parent Jacob Carlborg <doob me.com> writes:
On 2019-01-30 03:00, Neia Neutuladh wrote:

 Might I recommend instead:
 
      dependency "gtk-d" version="3.8.5"
 
 This depends on gtk-d 3.8.5 and only that version. If there is a breaking
 change in 3.8.6 despite semantic versioning, your code keeps working.
 
 In libraries, I prefer using ~> to give more freedom to people depending
 on my code. But in applications, that isn't a concern. May as well only
 allow the code to be built with the versions of your dependencies that
 you've actually tested.
That's what the dub.selections.json file is for. It will lock down the version of all dependencies, direct and indirect dependencies. For applications the dub.selections.json should be under version control, while for libraries it should be ignored. -- /Jacob Carlborg
Jan 30 2019
prev sibling next sibling parent Brian <zoujiaqing gmail.com> writes:
Thank you :)
Jan 25 2019
prev sibling next sibling parent reply Andre Pany <andre s-e-a-p.de> writes:
On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote:
 Hi y'all,

 As of January 11, 2019, http://gtkdcoding.com is up. It's a 
 blog, it's a github page, it's simple examples of how to use 
 GtkD for all that GUI stuff.

 My approach is to lay out a firm foundation for both imperative 
 and object-oriented paradigms, then build from there, taking 
 things one step at a time.

 This being Friday, the 4th post went up this morning. Please do 
 let me know if you find it useful.

 And why did I wait until now to announce? Well, on day one, it 
 seemed a bit silly to announce with only one post. After the 
 second and third, well... I still didn't feel there was enough 
 to warrant excitement. But four posts? Now that's something to 
 speak up about, ain't it?

 Yup. That's what I thought, too.
Great posts! Is there a reason you do not use dub? With dub it is even possible to set default architecture to x86_64 in the settings file. And the command line looks a bit less cryptic for new users. Defintely worths a post on r/programming! Kind regards Andre
Jan 26 2019
parent Andre Pany <andre s-e-a-p.de> writes:
On Saturday, 26 January 2019 at 09:32:53 UTC, Andre Pany wrote:
 On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote:
 Hi y'all,

 As of January 11, 2019, http://gtkdcoding.com is up. It's a 
 blog, it's a github page, it's simple examples of how to use 
 GtkD for all that GUI stuff.

 My approach is to lay out a firm foundation for both 
 imperative and object-oriented paradigms, then build from 
 there, taking things one step at a time.

 This being Friday, the 4th post went up this morning. Please 
 do let me know if you find it useful.

 And why did I wait until now to announce? Well, on day one, it 
 seemed a bit silly to announce with only one post. After the 
 second and third, well... I still didn't feel there was enough 
 to warrant excitement. But four posts? Now that's something to 
 speak up about, ain't it?

 Yup. That's what I thought, too.
Great posts! Is there a reason you do not use dub? With dub it is even possible to set default architecture to x86_64 in the settings file. And the command line looks a bit less cryptic for new users. Defintely worths a post on r/programming! Kind regards Andre
There was even the idea to support custom skeletons for dub init: dub init sample1 -t gtdk This would create a dub skeleton folder with a sample gtkd source file. Martin Nowak had here a great idea how to achieve this https://github.com/dlang/dub/pull/600 This feature would become quite handy. Kind regards Andre
Jan 26 2019
prev sibling next sibling parent reply Antonio Corbi <antonio ggmail.com> writes:
On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote:
 Hi y'all,

 As of January 11, 2019, http://gtkdcoding.com is up. It's a 
 blog, it's a github page, it's simple examples of how to use 
 GtkD for all that GUI stuff.

 My approach is to lay out a firm foundation for both imperative 
 and object-oriented paradigms, then build from there, taking 
 things one step at a time.

 This being Friday, the 4th post went up this morning. Please do 
 let me know if you find it useful.

 And why did I wait until now to announce? Well, on day one, it 
 seemed a bit silly to announce with only one post. After the 
 second and third, well... I still didn't feel there was enough 
 to warrant excitement. But four posts? Now that's something to 
 speak up about, ain't it?

 Yup. That's what I thought, too.
Hi Ron, Glad to see this gtkd-programming blog up. When I started using Gtkd I gathered several tutorials[1][2] (they are old) and more recently found this project[3] from Carlos Soriano which covers meson + flatpak. Hope they are good for you. Antonio [1] https://sites.google.com/site/gtkdtutorial/ [2] http://britseyeview.com/software/articles/gsgtkd.html [3] https://gitlab.com/csoriano/GtkDApp
Jan 26 2019
next sibling parent Ron Tarrant <rontarrant gmail.com> writes:
On Saturday, 26 January 2019 at 16:53:18 UTC, Antonio Corbi wrote:
 On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote:
 When I started using Gtkd I gathered several tutorials[1][2] 
 (they are old) and more recently found this project[3] from 
 Carlos Soriano which covers meson + flatpak.
 Hope they are good for you.

 Antonio

 [1] https://sites.google.com/site/gtkdtutorial/
 [2] http://britseyeview.com/software/articles/gsgtkd.html
 [3] https://gitlab.com/csoriano/GtkDApp
Thanks, Antonio. I'll take a look.
Jan 29 2019
prev sibling parent reply Ron Tarrant <rontarrant gmail.com> writes:
On Saturday, 26 January 2019 at 16:53:18 UTC, Antonio Corbi wrote:
 [1] https://sites.google.com/site/gtkdtutorial/
 [2] http://britseyeview.com/software/articles/gsgtkd.html
 [3] https://gitlab.com/csoriano/GtkDApp
Took a look this morning. I'd come across the Brit's Eye View articles, but not the others. As I'm about to write something on menus, these will definitely come in handy. Thanks, Antonio.
Jan 30 2019
parent Antonio Corbi <antonio ggmail.com> writes:
On Wednesday, 30 January 2019 at 09:48:14 UTC, Ron Tarrant wrote:
 On Saturday, 26 January 2019 at 16:53:18 UTC, Antonio Corbi 
 wrote:
 [1] https://sites.google.com/site/gtkdtutorial/
 [2] http://britseyeview.com/software/articles/gsgtkd.html
 [3] https://gitlab.com/csoriano/GtkDApp
Took a look this morning. I'd come across the Brit's Eye View articles, but not the others. As I'm about to write something on menus, these will definitely come in handy. Thanks, Antonio.
You are welcome, :) Antonio
Jan 30 2019
prev sibling next sibling parent Kagamin <spam here.lot> writes:
On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote:
 My approach is to lay out a firm foundation for both imperative 
 and object-oriented paradigms, then build from there, taking 
 things one step at a time.
By OOP you mean user controls? Hmm... I'd say, user control is an advanced topic. In most cases each form is written in isolation with little code sharing, and classes provided by gtkd as is (that imperative way) should work fine. If you notice a recurring pattern and want to reuse it among different forms, a user control can be used to abstract it, but it also has a higher design quality requirement, because now it's going to be reused and thus needs to work in different mostly unforeseen contexts. Just writing a one-off user control is an overkill.
Jan 29 2019
prev sibling parent reply sanjayss <dummy dummy.dummy> writes:
On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote:
 Hi y'all,

 As of January 11, 2019, http://gtkdcoding.com is up. It's a 
 blog, it's a github page, it's simple examples of how to use 
 GtkD for all that GUI stuff.

 My approach is to lay out a firm foundation for both imperative 
 and object-oriented paradigms, then build from there, taking 
 things one step at a time.

 This being Friday, the 4th post went up this morning. Please do 
 let me know if you find it useful.

 And why did I wait until now to announce? Well, on day one, it 
 seemed a bit silly to announce with only one post. After the 
 second and third, well... I still didn't feel there was enough 
 to warrant excitement. But four posts? Now that's something to 
 speak up about, ain't it?

 Yup. That's what I thought, too.
Some simple screenshots would be nice to see -- but good job on this. Nice to see examples/how-to's. Hope you keep going into complex topics.
Jan 30 2019
parent Ron Tarrant <rontarrant gmail.com> writes:
On Wednesday, 30 January 2019 at 21:53:27 UTC, sanjayss wrote:

 Some simple screenshots would be nice to see
I thought about it, but then realized that even though it would add visual appeal, readers might be more inclined to actually follow along at home if the only visual they get is the one they produce themselves. :)
 -- but good job on this. Nice to see examples/how-to's. Hope 
 you keep going into complex topics.
Thanks for the kind words, sanjayss. Yup, I'll be moving into complex subjects as things progress. I'm already working on a few behind the scenes, as it were. It seems I need lots of lead time to find a concept, outline it, write it, then rewrite it 1242 times so it's the best I can do. And like a good roast, it has to 'rest' for a while before I can see all the glaring faux pas and correct them... if you know what I mean. :) Thanks for reading.
Jan 31 2019