www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Bug in gtkd?

reply Johnson Jones <JJ Dynomite.com> writes:
Trying a very simple interface. When I add a notebook I get the 
following error

(test.exe:4504): Gtk-ERROR **: failed to add UI: 
C:\Test\Main.Glade:27:43 Invalid property: GtkNotebook.tab_hborder

When removing it from the glade file it then crashes with on the 
homogenous property. Removing that allows it to work but then 
clicking on the border between causes the app to crash.

clicking the link gives

(SongPractice.exe:4796): Gtk-WARNING **: Couldn't 
export handle, unsupported windowing system


Also, there is no icon on the task bar of the app so no way to 
find it if the app is minimized. Not sure why that is, but seems 
like it should be there regardless.

The app is

int main(string[] args)
{
   gtk.Main.init(args);
   auto mw = 
(cast(Window)gtk.builder.getObject("MainWindow"));		mw.showAll();
   gtk.Main.run();	
   return 0;
}

The Main.Glade file is

<?xml version="1.0" encoding="UTF-8"?>
<interface>
   <requires lib="gtk+" version="2.24"/>
   <!-- interface-naming-policy project-wide -->
   <object class="GtkWindow" id="MainWindow">
     <property name="can_focus">False</property>
     <child>
       <object class="GtkVPaned" id="vpaned1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <child>
           <object class="GtkImage" id="image1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="stock">gtk-missing-image</property>
           </object>
           <packing>
             <property name="resize">False</property>
             <property name="shrink">True</property>
           </packing>
         </child>
         <child>
           <object class="GtkNotebook" id="notebook1">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="scrollable">True</property>
             <property name="tab_hborder">0</property>
             <property name="homogeneous">True</property>
             <child>
               <object class="GtkVBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <child>
                   <object class="GtkLinkButton" id="linkbutton1">
                     <property name="label" 
translatable="yes">button</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property 
name="receives_default">True</property>
                     <property name="has_tooltip">True</property>
                     <property name="relief">none</property>
                     <property 
name="uri">http://glade.gnome.org</property>
                   </object>
                   <packing>
                     <property name="expand">True</property>
                     <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
               </object>
             </child>
             <child type="tab">
               <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property 
name="xalign">0.47999998927116394</property>
                 <property name="ypad">1</property>
                 <property name="label" 
translatable="yes">Settings</property>
               </object>
               <packing>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
           </object>
           <packing>
             <property name="resize">True</property>
             <property name="shrink">True</property>
           </packing>
         </child>
       </object>
     </child>
   </object>
</interface>
Jul 31
parent reply Mike Wey <mike-wey example.com> writes:
On 01-08-17 05:53, Johnson Jones wrote:
 <requires lib="gtk+" version="2.24"/>
GtkD is currently based on GTK 3 the properties it complains about were removed in GTK 3.0. Which version of glade are you using? -- Mike Wey
Aug 01
parent reply Johnson Jones <JJ Dynomite.com> writes:
On Tuesday, 1 August 2017 at 15:20:08 UTC, Mike Wey wrote:
 On 01-08-17 05:53, Johnson Jones wrote:
 <requires lib="gtk+" version="2.24"/>
GtkD is currently based on GTK 3 the properties it complains about were removed in GTK 3.0. Which version of glade are you using?
The latest: Glade 3.8.5
Aug 01
parent reply Mike Wey <mike-wey example.com> writes:
On 01-08-17 21:44, Johnson Jones wrote:
 On Tuesday, 1 August 2017 at 15:20:08 UTC, Mike Wey wrote:
 On 01-08-17 05:53, Johnson Jones wrote:
 <requires lib="gtk+" version="2.24"/>
GtkD is currently based on GTK 3 the properties it complains about were removed in GTK 3.0. Which version of glade are you using?
The latest: Glade 3.8.5
Could you check File -> Properties and see what is set as the runtime version? It should be at least 3.0 so it doesn't use things that were removed. -- Mike Wey
Aug 01
parent reply Johnson Jones <JJ Dynomite.com> writes:
On Tuesday, 1 August 2017 at 20:18:19 UTC, Mike Wey wrote:
 On 01-08-17 21:44, Johnson Jones wrote:
 On Tuesday, 1 August 2017 at 15:20:08 UTC, Mike Wey wrote:
 On 01-08-17 05:53, Johnson Jones wrote:
 <requires lib="gtk+" version="2.24"/>
GtkD is currently based on GTK 3 the properties it complains about were removed in GTK 3.0. Which version of glade are you using?
The latest: Glade 3.8.5
Could you check File -> Properties and see what is set as the runtime version? It should be at least 3.0 so it doesn't use things that were removed.
There is no File/Properties. If I go to help/about it says 3.8.5. If I go to edit/preferences it says target gtk+ version and the highest is 2.24. This is where I downloaded it from: http://ftp.gnome.org/pub/GNOME/binaries/win32/glade/3.8/ It seems I do, in fact have an older version ;/ https://glade.gnome.org/sources.html I upgraded to 3.14(for some reason I was thinking 8 > 14 ;/). It does have the properties and did warn me about my glade file being old(strange though, the ver 14 looks crappier as the fonts are thinner). Not a big deal though. Seems ver 3.14 is the newest binaries for windows for some reason ;/ No one has compiled a windows version for 3.20 in over a year. Not sure of the differences between 3.14 and 3.20 but 3.14 does target gtk+3 while 3.8 targeted gtk+2. How to build glade 3.20 for windows, or better, request the originators to build it(since they obviously have done it for the previous versions)?
Aug 01
parent reply Johnson Jones <JJ Dynomite.com> writes:
Ok, Using msys I was able to get glade 3.20 running. Maybe that 
will fix everything.
Aug 01
parent reply Mike Wey <mike-wey example.com> writes:
On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe that will fix 
 everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows. -- Mike Wey
Aug 02
next sibling parent Johnson Jones <JJ Dynomite.com> writes:
On Wednesday, 2 August 2017 at 14:51:45 UTC, Mike Wey wrote:
 On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe 
 that will fix everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows.
There seems to be a big bug in gtk or gtkD I have a main window that I set the center or always center property and when I run it and try to enlarge the window the window position changes in odd ways and the title changes. The positions, sizes, etc are not calculated properly. Possibly because I'm running on a multimonitor system. Makes those properties completely unusable.
Aug 02
prev sibling parent reply Johnson Jones <JJ Dynomite.com> writes:
On Wednesday, 2 August 2017 at 14:51:45 UTC, Mike Wey wrote:
 On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe 
 that will fix everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows.
... Also, I cannot seem to load a jpg using an imageview (test.exe:1628): Gtk-WARNING **: Could not load image 'a.jpg': Couldn't recognize the image file format for file 'a.jpg' Just a normal jpg. Tried a bmp, same thing. It shows fine in glade itself.
Aug 02
next sibling parent Johnson Jones <JJ Dynomite.com> writes:
On Thursday, 3 August 2017 at 03:00:02 UTC, Johnson Jones wrote:
 On Wednesday, 2 August 2017 at 14:51:45 UTC, Mike Wey wrote:
 On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe 
 that will fix everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows.
... Also, I cannot seem to load a jpg using an imageview (test.exe:1628): Gtk-WARNING **: Could not load image 'a.jpg': Couldn't recognize the image file format for file 'a.jpg' Just a normal jpg. Tried a bmp, same thing. It shows fine in glade itself.
Might be related to https://github.com/pyinstaller/pyinstaller/issues/1833
Aug 02
prev sibling parent reply Mike Wey <mike-wey example.com> writes:
On 03-08-17 05:00, Johnson Jones wrote:
 On Wednesday, 2 August 2017 at 14:51:45 UTC, Mike Wey wrote:
 On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe that will 
 fix everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows.
... Also, I cannot seem to load a jpg using an imageview (test.exe:1628): Gtk-WARNING **: Could not load image 'a.jpg': Couldn't recognize the image file format for file 'a.jpg' Just a normal jpg. Tried a bmp, same thing. It shows fine in glade itself.
It looks like the pixbuf loaders are missing from the installer. -- Mike Wey
Aug 03
next sibling parent Johnson Jones <JJ Dynomite.com> writes:
On Thursday, 3 August 2017 at 15:11:46 UTC, Mike Wey wrote:
 On 03-08-17 05:00, Johnson Jones wrote:
 On Wednesday, 2 August 2017 at 14:51:45 UTC, Mike Wey wrote:
 On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe 
 that will fix everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows.
... Also, I cannot seem to load a jpg using an imageview (test.exe:1628): Gtk-WARNING **: Could not load image 'a.jpg': Couldn't recognize the image file format for file 'a.jpg' Just a normal jpg. Tried a bmp, same thing. It shows fine in glade itself.
It looks like the pixbuf loaders are missing from the installer.
How do I remedy this?
Aug 03
prev sibling next sibling parent Johnson Jones <JJ Dynomite.com> writes:
On Thursday, 3 August 2017 at 15:11:46 UTC, Mike Wey wrote:
 On 03-08-17 05:00, Johnson Jones wrote:
 On Wednesday, 2 August 2017 at 14:51:45 UTC, Mike Wey wrote:
 On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe 
 that will fix everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows.
... Also, I cannot seem to load a jpg using an imageview (test.exe:1628): Gtk-WARNING **: Could not load image 'a.jpg': Couldn't recognize the image file format for file 'a.jpg' Just a normal jpg. Tried a bmp, same thing. It shows fine in glade itself.
It looks like the pixbuf loaders are missing from the installer.
I tried to use the mingw version of gtk with no luck. It first looks in C:\MinGW even though I have MinGW installed somewhere else. Using a junction doesn't help becomes then it when it finds the dll it has missing symbols "The Procedure Entry Point gdk_pixbuf_gettext could not be located in the dynamic link library C:\MinGW\lib\gdk-pix-buf-2.0\2.10.0\loaders\libpixbufloader-gdip-jpeg.dll". I actually just copied over the loaders rather than using the full gtk mingw install because when I do that it complains about some lib??svg missing. I guess one can't mix mingw installs with non-mingw... but the gtk mingw install is incomplete too ;/ I hope this isn't going to be an on going thing... seems I've wasted quite a bit of time to try and get gdk to work. I probably could have written my own gui by now.
Aug 03
prev sibling parent reply Johnson Jones <JJ Dynomite.com> writes:
On Thursday, 3 August 2017 at 15:11:46 UTC, Mike Wey wrote:
 On 03-08-17 05:00, Johnson Jones wrote:
 On Wednesday, 2 August 2017 at 14:51:45 UTC, Mike Wey wrote:
 On 02-08-17 08:04, Johnson Jones wrote:
 Ok, Using msys I was able to get glade 3.20 running. Maybe 
 that will fix everything.
Great, unfortunately "Use msys2" seems to be the official way to install anything GTK related on windows.
... Also, I cannot seem to load a jpg using an imageview (test.exe:1628): Gtk-WARNING **: Could not load image 'a.jpg': Couldn't recognize the image file format for file 'a.jpg' Just a normal jpg. Tried a bmp, same thing. It shows fine in glade itself.
It looks like the pixbuf loaders are missing from the installer.
Ok, so, I linked the gtk to the msys gtk that I installed before when trying to get glade to work and it worked! seems that msys is much more up to date than anything else as it just works(I need to remember than in the future). The problem I see is this: When I get ready to release my app to the public, I can't expect them to all have to install msys and build. msys seems to clump everything together and I don't know what files I need to extract to be able to bundle everything together. Any ideas how to solve that problem? At least now I can move ahead and actually make some progress on my app. Would still be nice to get the x86 vs x64 issue resolved so I don't have to keep switching between the two for testing purposes. Since Visual D was just patched to handle x64 BP's I guess I can stay with that for now.
Aug 03
parent reply Mike Wey <mike-wey example.com> writes:
On 03-08-17 22:40, Johnson Jones wrote:
 Ok, so, I linked the gtk to the msys gtk that I installed before when 
 trying to get glade to work and it worked!
 
 seems that msys is much more up to date than anything else as it just 
 works(I need to remember than in the future).
 
 The problem I see is this:
 
 When I get ready to release my app to the public, I can't expect them to 
 all have to install msys and build.
 
 msys seems to clump everything together and I don't know what files I 
 need to extract to be able to bundle everything together.
 
 Any ideas how to solve that problem? At least now I can move ahead and 
 actually make some progress on my app.
 
 Would still be nice to get the x86 vs x64 issue resolved so I don't have 
 to keep switching between the two for testing purposes. Since Visual D 
 was just patched to handle x64 BP's I guess I can stay with that for now.
 
I'll try to build and test some new installers tomorrow that will include the loaders. -- Mike Wey
Aug 03
parent reply Johnson Jones <JJ Dynomite.com> writes:
On Thursday, 3 August 2017 at 21:00:17 UTC, Mike Wey wrote:
 On 03-08-17 22:40, Johnson Jones wrote:
 Ok, so, I linked the gtk to the msys gtk that I installed 
 before when trying to get glade to work and it worked!
 
 seems that msys is much more up to date than anything else as 
 it just works(I need to remember than in the future).
 
 The problem I see is this:
 
 When I get ready to release my app to the public, I can't 
 expect them to all have to install msys and build.
 
 msys seems to clump everything together and I don't know what 
 files I need to extract to be able to bundle everything 
 together.
 
 Any ideas how to solve that problem? At least now I can move 
 ahead and actually make some progress on my app.
 
 Would still be nice to get the x86 vs x64 issue resolved so I 
 don't have to keep switching between the two for testing 
 purposes. Since Visual D was just patched to handle x64 BP's I 
 guess I can stay with that for now.
 
I'll try to build and test some new installers tomorrow that will include the loaders.
Thanks. Could you take a look at the loading image thread I started when you get time? I can't seem to get an image to load even though it seems straight forward. These are the pixbufs I'm using mingw32/mingw-w64-i686-gdk-pixbuf2 2.36.6-2 [installed] An image loading library (mingw-w64) mingw64/mingw-w64-x86_64-gdk-pixbuf2 2.36.6-2 [installed] An image loading library (mingw-w64) in x64 it crashes completely without an exception though... which is why I want an easy way to switch between the two architectures... since x64 seems to be more unstable than x86 but sometimes it's the reverse, and ultimately I'll want to release in x64. Also, do I ever need to rebuild gdk when changing gtk installations? Does it ever grab anything from them at compile time or is it all at runtime?
Aug 03
parent Mike Wey <mike-wey example.com> writes:
On 03-08-17 23:11, Johnson Jones wrote:
 On Thursday, 3 August 2017 at 21:00:17 UTC, Mike Wey wrote:
 On 03-08-17 22:40, Johnson Jones wrote:
 Ok, so, I linked the gtk to the msys gtk that I installed before when 
 trying to get glade to work and it worked!

 seems that msys is much more up to date than anything else as it just 
 works(I need to remember than in the future).

 The problem I see is this:

 When I get ready to release my app to the public, I can't expect them 
 to all have to install msys and build.

 msys seems to clump everything together and I don't know what files I 
 need to extract to be able to bundle everything together.

 Any ideas how to solve that problem? At least now I can move ahead 
 and actually make some progress on my app.

 Would still be nice to get the x86 vs x64 issue resolved so I don't 
 have to keep switching between the two for testing purposes. Since 
 Visual D was just patched to handle x64 BP's I guess I can stay with 
 that for now.
I'll try to build and test some new installers tomorrow that will include the loaders.
Thanks. Could you take a look at the loading image thread I started when you get time? I can't seem to get an image to load even though it seems straight forward. These are the pixbufs I'm using mingw32/mingw-w64-i686-gdk-pixbuf2 2.36.6-2 [installed] An image loading library (mingw-w64) mingw64/mingw-w64-x86_64-gdk-pixbuf2 2.36.6-2 [installed] An image loading library (mingw-w64) in x64 it crashes completely without an exception though... which is why I want an easy way to switch between the two architectures... since x64 seems to be more unstable than x86 but sometimes it's the reverse, and ultimately I'll want to release in x64. Also, do I ever need to rebuild gdk when changing gtk installations? Does it ever grab anything from them at compile time or is it all at runtime?
The new installers are available: https://gtkd.org/Downloads/runtime/ You don't need to rebuild GtkD when changing GTK installations, it does it all at runtime. -- Mike Wey
Aug 05