Gtkdialog Development

Under development: PCMCIA, wireless, etc.
Message
Author
User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#721 Post by 01micko »

simargl wrote:I would say since Slacko is so broken, you should better use real OS :lol: ..
Really? Why didn't you report it?

I don't go around bagging your os, just the way you promote it.

-

Sorry for OT
Puppy Linux Blog - contact me for access

simargl

#722 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 14:35, edited 1 time in total.

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#723 Post by 01micko »

This thread is for gtkdialog.

If you have a problem with Slacko, post there, NOT here. If you have a problem with me tell some one who cares.
Puppy Linux Blog - contact me for access

simargl

#724 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 14:35, edited 1 time in total.

User avatar
thunor
Posts: 350
Joined: Thu 14 Oct 2010, 15:24
Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
Contact:

#725 Post by thunor »

Thanks for the links guys :)

simargl

#726 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 14:59, edited 1 time in total.

User avatar
thunor
Posts: 350
Joined: Thu 14 Oct 2010, 15:24
Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
Contact:

#727 Post by thunor »

simargl wrote:There is still no gtk3 version http://code.google.com/p/gtkdialog/source/list latest commit was in Jan 6, 2013
After some progress in porting and if there's need for testing in latest Gtk version 3.8.0 you can count on me.
Cheers!
I didn't really want to do any more with gtkdialog but I do realise that gtk3 will kill it off so it requires looking into. When I first got this laptop I managed to steal 5GB from the Microshaft Fista partition but I kept filling it up and backing up data to SD cards, so getting another full blown distro on here was not going to be easy especially since the crappy DVD writer would be better off disconnected internally. Anyway, after doing all the necessary things to Fista to allow me to reduce sda1 using its disk management tools, it still wouldn't let me so I forced it with gparted. To cut a long story short, Fista still works (I use it occasionally for my GBA flash cart cable driver), I backed up everything I could from Linux, resized and moved my Linux partition leftwards successfully with gparted retaining the data (very cool), set-up Slacko 5.5 with the gtk3 audacious sfs, installed packages to get all of my open source and paid-for games working and I've got a test version of gtkdialog operational using gtk3 so I could see what's involved and if I need to branch the code or not. To be honest there's plenty to fix and remove and it's not as much fun as playing Leisure Suit Larry 1 remake in ScummVM 1.5.0 or Tony Hawk's Pro Skater 4 on my GameCube.

I'm in a good place: I've wrestled my hard disk away from Fista, I've got the excellent Slacko 5.5 completely set-up for my needs, my data is backed-up, I've realised I need to buy a USB flash/pen drive, I've researched gtkdialog + gtk3 and this is what I've discovered:
  • The table, combobox and list widgets are dead.
  • The comboboxtext and comboboxentry widgets need replacing with gtk3 equivalents, maybe easy, maybe not.
  • Widgets in scrollable windows aren't working completely (anything that uses scrollbars), maybe easy, maybe not.
  • Some calls to old functions need to be updated to use the new ones.
  • The glade code has to be removed.
  • I'd prefer not to branch the code but it'll be messy working this into the gtk2 code, so it's effectively another project.
  • If it's another project then it would be the right time to jettison the bad parts of gtkdialog, but I'd rather create a new project not called gtkdialog, something that benefits from my gtkdialog knowledge but I'm not motivated to do so, I've got better ideas for other projects.
  • So, this is where I'm at, wondering what to do.
  • Once I've made up my mind, I'll need to reorganise the SVN repository, and the docs, and the examples, and the configure script, and the Makefiles which then makes me think that maybe I shouldn't branch it, but mess the code up with macros instead.
  • Maybe it could simply be a patch that you apply to the existing code, but that's a bit naff.
  • I have other things to do that either I must be doing or are more rewarding.
I need to think some more.

User avatar
thunor
Posts: 350
Joined: Thu 14 Oct 2010, 15:24
Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
Contact:

#728 Post by thunor »

Ok, I've chosen to simply add macros to the existing code which has left me not that much to do codewise although I'll have to identify gtk2/gtk3 specific examples and the reference/wiki I need to think about.

I've just committed r504 which supports gtk3 and initially you'll do it like this:

Code: Select all

svn checkout http://gtkdialog.googlecode.com/svn/trunk/ gtkdialog
cd gtkdialog
./autogen.sh --enable-gtk3=yes
make
but you could equally do:

Code: Select all

svn checkout http://gtkdialog.googlecode.com/svn/trunk/ gtkdialog
cd gtkdialog
./autogen.sh
./configure --enable-gtk3=yes
make
Widgets removed: combobox, list, table.
Widgets requiring rewriting: comboboxtext, comboboxentry, file selection dialog filename retrieval.
Library support removed: libglade.

If you want to compile-in support for libvte then you'll need at least vte-0.29.0.

Test it with:

Code: Select all

echo '<button label="Hello GTK+ 3 World"></button>' | ./src/gtkdialog -s
If you're interested in the documented macros I inserted to get it to work then execute:

Code: Select all

grep -nR --exclude-dir=".svn" "GTK_CHECK_VERSION(3,0,0)" .
Slacko 5.5 plus devx_slacko_5.5.sfs plus audacious-3.3.1-i486.sfs will enable you to compile GTK+ 3 projects if you want an easy way to try this yourself.

I'll have to add the gtk version to the supported libraries list on "gtkdialog -v" so that you can identify which version of gtk it was built with. If you're going to use both versions at the same time then it might make sense to rename it to gtk3dialog.

Here's a screenshot of a complex gtkdialog application that works with gtk3 although the gtkrc isn't working (apparently it's been replaced):
Image

Regards,
Thunor

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#729 Post by 01micko »

Works here!

Image

Thanks!
Puppy Linux Blog - contact me for access

simargl

#730 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 14:59, edited 1 time in total.

User avatar
thunor
Posts: 350
Joined: Thu 14 Oct 2010, 15:24
Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
Contact:

#731 Post by thunor »

@simargl: Try the following:

Change AM_CONFIG_HEADER to AC_CONFIG_HEADER in configure.in.

Code: Select all

mv configure.in configure.ac
aclocal
autoconf
automake
./configure --enable-gtk3=yes
Works for me with automake 1.11 and if it works for you I'll look at updating the build scripts (I've not done much with them since I started updating this a couple of years ago).

simargl

#732 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 14:58, edited 1 time in total.

User avatar
thunor
Posts: 350
Joined: Thu 14 Oct 2010, 15:24
Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
Contact:

#733 Post by thunor »

simargl wrote:I've changed line 5 in configure.in to AM_CONFIG_HEADERS([config.h])
Ok, now change it to AC_CONFIG_HEADERS([config.h]).

In configure.ac at line 22 change AM_PROG_CC_STDC to AC_PROG_CC.

aclocal
autoconf
automake
./configure --enable-gtk3=yes

Good luck :)
Thunor

User avatar
zigbert
Posts: 6621
Joined: Wed 29 Mar 2006, 18:13
Location: Valåmoen, Norway
Contact:

#734 Post by zigbert »

Thunor

It seems that all gtkdialog-coding wasn't a waste of time.
Puppy apps will make it into the future.


Thank you !!!
Sigmund

simargl

#735 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 14:58, edited 1 time in total.

User avatar
zigbert
Posts: 6621
Joined: Wed 29 Mar 2006, 18:13
Location: Valåmoen, Norway
Contact:

#736 Post by zigbert »

A brief look into the gtk3 transition: - This won't be too hard....

The only issue I see is that table-widget doesn't auto-resize column-width as the tree-widget does.
Auto-resizing will make a mess in pMusic's sourcelist, where ie. urls may be long and auto-moves all other columns out in the blue (read: to the right).
Looking at the docs tells that this should be possible to override. But I can't figure out how ... :oops:


Thanks for any suggestions.
Sigmund

User avatar
thunor
Posts: 350
Joined: Thu 14 Oct 2010, 15:24
Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
Contact:

#737 Post by thunor »

zigbert wrote:...
Puppy apps will make it into the future.
It had to be done didn't it. The gates to gtk3 are now open for Puppy apps and Puppy itself although it may yet be discovered that gtk2 is worth staying with :P
zigbert wrote:...
The only issue I see is that table-widget doesn't auto-resize column-width as the tree-widget does.
...
Resizeable tree columns was forced to TRUE in code because there was no developer interface to that property. What I shall do is make a custom tag attribute and you can set it with column-resizeable="true|false|true|false".

There will likely be some tweaking involved.

User avatar
thunor
Posts: 350
Joined: Thu 14 Oct 2010, 15:24
Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
Contact:

#738 Post by thunor »

simargl wrote:...
My package manager is working with this version - screenshot bellow, grub4dos also seems to work, sfs_load and pwireless2 don't
...
I've updated the build scripts so that the next time you checkout gtkdialog you should find that ./autogen.sh works. Thanks for the assistance with that.

If the developers of sfs_load and Pwireless2 choose to support gtk3 then they will need to change the combobox, list and table widgets to comboboxtext and tree widgets.

Important Disclaimer
If somebody wants to create a gtk3 Puppy then they need to talk to the developers of those applications that require updating. I want to make it clear from the outset that I'm not pushing Puppy towards gtk3 or forcing developers to update their applications -- it's not mandatory and it's not my business, I'm just supporting another library :)

Regards,
Thunor

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#739 Post by rcrsn51 »

thunor wrote:If the developers of sfs_load and Pwireless2 choose to support gtk3 then they will need to change the combobox, list and table widgets to comboboxtext and tree widgets.
Could you please explain that some more? Does that mean that gtkdialog4 would be fixed at gtk-2 and gtkdialog5 would become the gtk-3 version?

So would Puppy builders need to include both versions of gtk? For example, alphaOS has both.

jpeps
Posts: 3179
Joined: Sat 31 May 2008, 19:00

#740 Post by jpeps »

rcrsn51 wrote:
thunor wrote:If the developers of sfs_load and Pwireless2 choose to support gtk3 then they will need to change the combobox, list and table widgets to comboboxtext and tree widgets.
Could you please explain that some more? Does that mean that gtkdialog4 would be fixed at gtk-2 and gtkdialog5 would become the gtk-3 version?

So would Puppy builders need to include both versions of gtk? For example, alphaOS has both.
It makes more sense to just use the respective names to maintain backwards compatibility.

Post Reply