The time now is Mon 23 Apr 2018, 05:53
All times are UTC - 4 |
Page 10 of 56 [833 Posts] |
Goto page: Previous 1, 2, 3, ..., 8, 9, 10, 11, 12, ..., 54, 55, 56 Next |
Author |
Message |
sc0ttman

Joined: 16 Sep 2009 Posts: 2572 Location: UK
|
Posted: Sat 30 Jul 2011, 02:50 Post subject:
|
|
I may be wrong, have to look into it further, but I think the new gtkdialog does not like dynamically built GUIs, which use something like
Code: | <entry>
<variable>FILE</variable>
<input>echo '$FILE'</input>
<action type="enable">enable:FILE_BTN</action>
</entry>
<button relief="1" tooltip-text="Play the selected file or playlist (.m3u)">
<label>Play file </label>
<input file stock="gtk-media-play"></input>
<action>play_file &</action>'
# add disabled if needed
[ ! -e "$FILE" ] && VLCGTK=${VLCGTK}'<visible>disabled</visible>'
# continue GUI
VLCGTK=${VLCGTK}'
<variable>FILE_BTN</variable>
</button> |
VLC-GTK is the example above: when a file is not found, the play button is disabled at startup, usually it is enabled once the value changes (file browsed, typed or pasted) on the file select entry thing, but not anymore...
Maybe download VLC-GTK and see what I mean... I have to test further, but the only change I've made that would affect it is the gtkdialog update!
VLC-GTK: http://murga-linux.com/puppy/viewtopic.php?t=54753
_________________ Akita Linux, VLC-GTK, Pup Search, Pup File Search
Last edited by sc0ttman on Sat 30 Jul 2011, 08:28; edited 1 time in total
|
Back to top
|
|
 |
8-bit

Joined: 03 Apr 2007 Posts: 3425 Location: Oregon
|
Posted: Sat 30 Jul 2011, 05:04 Post subject:
|
|
Where are you getting the GTK-VLC package?
I downloaded and installed vlc using the Puppy Package Manager and found that first, vlc is a compiled file and not a gtkdialog script.
Then I picked a Country-Western directory of music and everything worked fine.
But maybe I am missing something.
That is why I want to know the name of the package you installed.
|
Back to top
|
|
 |
thunor

Joined: 14 Oct 2010 Posts: 350 Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
|
Posted: Sat 30 Jul 2011, 08:35 Post subject:
|
|
8-bit: http://www.murga-linux.com/puppy/viewtopic.php?t=54753
sc0ttman wrote: | I may be wrong, have to look into it further, but I think the new gtkdialog does not like dynamically built GUIs, which use something like
GUI='blah'
[ "$VAR" != "" ] && GUI="${GUI}<disabled>
GUI="${GUI}<blah continued>"
VLC-GTK is an example: when a file is not found, the play button is disabled at startup, usually it is enabled once the value changes on the file select entry thing, but not anymore...
Maybe download VLC-GTK and see what I mean... I have to test further, but the only change I've made that would affect it is the gtkdialog update! |
Hi sc0ttman
The entry widget has been cleaned-up and extended recently and it appears as though it may have been allowing or not dealing with syntax errors.
There are some actions within vlc-gtk that aren't syntactically correct:
Code: | <action type="enable">enable:FILE_BTN</action>
<action type="enable">enable:PLAYLIST_BTN</action>
<action type="enable">enable:PLAYLIST_DIR_BTN</action>
<action type="enable">enable:PLAYLIST_DIR</action>
<action type="enable">enable:PLAYLIST</action>
<action type="enable">enable:SAVE_PLAYLIST</action>
<action type="enable">enable:AUDIOPL</action>
<action type="enable">enable:VIDEOPL</action>
<action type="enable">enable:SAVE_STREAM</action>
<action type="enable">enable:STREAM_BTN</action>
|
Use either of these methods to perform a function on a default signal (for the entry it's "changed"):
Code: | <action>enable:VARNAME</action>
<action type="enable">VARNAME</action>
|
This highlights what I just said to sunburnt about the duplicate forms of action. Anyway, the entry has a widget reference and you can see the valid forms of the action directive in there.
That looks like a really nice application
I did see a strange message in the terminal though:
Code: | ln: creating symbolic link `/usr/sbin/gtkdialog': File exists
|
I found this to be the cause:
Code: | # make gtkdialog work if not found (requires gtkdialog3)
[ ! -e gtkdialog ] && ln -sv /usr/sbin/gtkdialog3 /usr/sbin/gtkdialog
|
Shouldn't that be
Code: | [ ! -e /usr/sbin/gtkdialog ] && ln -sv /usr/sbin/gtkdialog3 /usr/sbin/gtkdialog
|
and should you really be freely creating files within /usr/sbin/? I was assuming that on Puppy, although I'm root, applications weren't writing into the filesystem because now my paranoia sense is tingling.
You'd be better off doing this:
Code: | if [ "$(which gtkdialog)" = "" ]; then GTKDIALOG="gtkdialog3"; else GTKDIALOG="gtkdialog"; fi
...
...
...
$GTKDIALOG --program=VLCGTK --center &
|
courtesy of 01micko.
Regards,
Thunor
|
Back to top
|
|
 |
sc0ttman

Joined: 16 Sep 2009 Posts: 2572 Location: UK
|
Posted: Sat 30 Jul 2011, 09:03 Post subject:
|
|
Thunor, cheers...
You're right on every case, the examples are just showing my lack of coding skills, there... Whoops!
But thanks for the info, very thorough and easy to understand, as always.
I will apply the changes, as I'm looking to update VLC-GTK, which is why I was asking.
I have seen 01mickos GTKDialog check elsewhere and planned to use that instead, thanks for finding it again for me!
This does raise a question for me, I think sunburnt mentioned it earlier..
Is it just me, or does GTK dialog have a fairly archaic way of setting options for each widget?
I am no expert at all, it will be my lack of knowledge as well,
but there seems to be a slight lack of consistency
- Some options are allowed here, but not there..
- options seem to take xxx="yes/no", others xxx="true/false" or maybe xxx="0/1"
For example, I often wonder why "width-request" and "height-request" are allowed in some widgets, but are NOT allowed in others..
Can all "yes/no" options be made to ALSO accept "true/false" and "0/1"? (and so on...)
That way we can just use a consistent value on our scripts..
(sorry if its a dumb thought...)
But I will look over the wikka thing, and re-read all your work..
_________________ Akita Linux, VLC-GTK, Pup Search, Pup File Search
|
Back to top
|
|
 |
sc0ttman

Joined: 16 Sep 2009 Posts: 2572 Location: UK
|
Posted: Sat 30 Jul 2011, 09:23 Post subject:
|
|
Also, I am willing to solve this myself of course, but help is very much appreciated..
Open VLC-GTK, and drag the window away from the centre of the screen.
Then click on the 'Streams' tab.. The sizing make the window move..
The same thing happens with the 'General Settings' tab at the bottom.
I understand this problem has something to do with 'width-request'..
Once it has happened (the resizing and moving of the window), it does not happen again.
I have come across this a few times, and found fixes to be fiddly.
Any help would be much appreciated.
EDIT : fixed, never mind....
_________________ Akita Linux, VLC-GTK, Pup Search, Pup File Search
Last edited by sc0ttman on Sat 30 Jul 2011, 15:28; edited 1 time in total
|
Back to top
|
|
 |
8-bit

Joined: 03 Apr 2007 Posts: 3425 Location: Oregon
|
Posted: Sat 30 Jul 2011, 10:22 Post subject:
|
|
thunor,
When I asked the question as to where, scOttman's post read completely different.
He edited it after my reply.
ScOttman,
I have looked at your program and I see what you meant about the play button being grayed out.
If you think that is because of a nonexistent file just search for it differently.
|
Back to top
|
|
 |
sc0ttman

Joined: 16 Sep 2009 Posts: 2572 Location: UK
|
Posted: Sat 30 Jul 2011, 13:21 Post subject:
|
|
8-bit wrote: | thunor,
When I asked the question as to where, scOttman's post read completely different.
He edited it after my reply |
sorry about that, thought I would dig out the actual code.
_________________ Akita Linux, VLC-GTK, Pup Search, Pup File Search
|
Back to top
|
|
 |
thunor

Joined: 14 Oct 2010 Posts: 350 Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
|
Posted: Sat 30 Jul 2011, 17:32 Post subject:
|
|
sc0ttman wrote: | ...but there seems to be a slight lack of consistency
- Some options are allowed here, but not there..
- options seem to take xxx="yes/no", others xxx="true/false" or maybe xxx="0/1"
For example, I often wonder why "width-request" and "height-request" are allowed in some widgets, but are NOT allowed in others..
|
I have noticed too whilst travelling through the code that some consistency is required with regards accepting values. I have made a feature request within the issue tracker so that it gets dealt with.
GTK+ widgets have an ancestry, so that they inherit from their ancestors. "width-request" and "height-request" are properties of GtkWidget which everything is a descendant of, therefore you should be able to apply these to any Gtkdialog widget.
sc0ttman wrote: | Open VLC-GTK, and drag the window away from the centre of the screen.
Then click on the 'Streams' tab.. The sizing make the window move..
The same thing happens with the 'General Settings' tab at the bottom.
|
GTK initialises some widgets the first time that they are shown and this can make applications spring back to the middle of the screen if Gtkdialog's "--center" option is used -- I've noticed this whilst working on the menu system -- and a remedy for this is to use a "width-request" somewhere, likely on the window if there are multiple causes.
Regards,
Thunor
|
Back to top
|
|
 |
disciple
Joined: 20 May 2006 Posts: 6781 Location: Auckland, New Zealand
|
Posted: Mon 01 Aug 2011, 06:51 Post subject:
|
|
Just FYI, it looks like Flash has got around to making the package collections/repositories section publicly visible, so everyone should be able to see the "Index of programs using gtkdialog" now
Thanks Flash - I was starting to worry this was becoming like the Ubuntu forum, where you seem to need to be logged in to read half the pages, or download attachments, or whatever...
_________________ If you have or know of a good gtkdialog application, please post a link here
Classic Puppy quotes
ROOT FOREVER
|
Back to top
|
|
 |
Dougal

Joined: 19 Oct 2005 Posts: 2504 Location: Hell more grotesque than any medieval woodcut
|
Posted: Mon 01 Aug 2011, 16:32 Post subject:
|
|
thunor wrote: | I want to add new widgets, overhaul existing widgets, implement missing action functions, finish the wiki, write some more examples, even restructure the code so that one widget is in one file with everything in a consistent order so that I don't have to keep searching the entire session to find things. These things to me will improve Gtkdialog. |
Doesn't it make more sense to start with the refactoring? that way you have less to refactor and it makes it easier to do the other work...
_________________ What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind
|
Back to top
|
|
 |
thunor

Joined: 14 Oct 2010 Posts: 350 Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
|
Posted: Tue 02 Aug 2011, 11:16 Post subject:
|
|
Overhauled the menu and menuitem widgets - final
The widget reference is available here.
Updated 2011-08-07 22:11 to include a theme icon menuitem with a requested size of 32 (value goes into either the width or height directives and you'll get that size if it's available).
- Added support for submenus by nesting the existing menu widget.
- The menu widget -- being essentially a menuitem with a submenu -- now supports the same tag attributes and directives as the menuitem widget.
- Added support for images from files via the "image-name" custom tag attribute (scaling works too).
- The image from file menuitem widget supports the disable, enable and refresh action functions.
- Created a new name for the existing separator widget: menuitemseparator.
- Added checkbox and radiobutton menuitem support via the "checkbox" and "radiobutton" custom tag attributes.
- The checkbox and radiobutton menuitem widgets support the disable, enable, refresh and save action functions.
- The theme icon menuitem widget now supports using the height or width directives to override the default theme icon size of 16.
Please note that I can't complement the existing "stock" and "icon" custom tag attribute names with "image" as it's a GTK+ property, and "file" is meaningless so I've created "image-name". The tree widget also accepts the extended names "stock-id" and "icon-name" so "image-name" is consistent with these, there's just no short version.
<menu> and <menuitem> widgets example:
Code: | #!/bin/sh
# NOTE: This example requires at least gtkdialog-0.7.21 (please visit
# http://code.google.com/p/gtkdialog/). Additionally if you are using
# Puppy Linux then you may find that an historical version of gtkdialog
# already exists in /usr/sbin, and if that is the case then you should
# modify the shell variable below to point to the new gtkdialog binary.
GTKDIALOG=gtkdialog
function funcmuiCreate() {
echo '<variable>'$1'</variable>'
if [ $2 = 1 ]; then echo '<label>"'"$3"'"</label>'; fi
echo '<action>echo "'"$1 ($3) action for default signal triggered"'"</action>'
if [ ${1:0:3} = "mnu" ]; then echo '</menu>'; else echo '</menuitem>'; fi
}
function funcimageCreate() {
local -a colours=("d0d0d0" "a0a0a0" "707070" "404040" "f0d0d0" "c0a0a0" "907070" "604040"
"d0f0d0" "a0c0a0" "709070" "406040" "d0d0f0" "a0a0c0" "707090" "404060")
echo '
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="0" y="0" height="16" width="16" fill="#000000"/>
<rect x="1" y="1" height="14" width="14" fill="#ffffff"/>
<rect x="8" y="8" height="6" width="6" fill="#'${colours[$(($1 * 4 + 0))]}'"/>
<rect x="2" y="8" height="6" width="6" fill="#'${colours[$(($1 * 4 + 1))]}'"/>
<rect x="2" y="2" height="6" width="6" fill="#'${colours[$(($1 * 4 + 2))]}'"/>
<rect x="8" y="2" height="6" width="6" fill="#'${colours[$(($1 * 4 + 3))]}'"/>
<rect x="9" y="9" height="2" width="2" fill="#ffffff"/>
<rect x="11" y="9" height="2" width="2" fill="#'${colours[$(($1 * 4 + 1))]}'"/>
<rect x="11" y="11" height="2" width="2" fill="#'${colours[$(($1 * 4 + 2))]}'"/>
<rect x="9" y="11" height="2" width="2" fill="#'${colours[$(($1 * 4 + 3))]}'"/>
</svg>' > image.svg
}; export -f funcimageCreate
funcimageCreate 1
echo -n > inoutfile
export MAIN_DIALOG='
<window title="muiMenuItem" resizable="false" width-request="360" height-request="240" border-width="0">
<vbox spacing="0">
<menubar>
<menu label="_File" use-underline="true">
<menuitem stock-id="gtk-new" accel-key="0x4e" accel-mods="4">
<action>clear</action>
'"$(funcmuiCreate mui00.00 0 "New")"'
<menuitemseparator></menuitemseparator>
<menuitem stock-id="gtk-quit" accel-key="0x51" accel-mods="4">
<action>exit:Quit</action>
'"$(funcmuiCreate mui00.01 0 "Quit")"'
'"$(funcmuiCreate mnu00 0 "File")"'
<menu use-underline="true">
<menuitem stock-id="gtk-network"
tooltip-text="Stock image gtk-network">
'"$(funcmuiCreate mui01.00 0 "Stock Image")"'
<menuitem icon-name="gnumeric" use-underline="true"
tooltip-markup="<span fgcolor='"'darkred'"'><b>Theme</b></span> <i>image</i> gnumeric">
'"$(funcmuiCreate mui01.01 1 "_Theme Image")"'
<menuitem icon-name="gnumeric" use-underline="true">
<width>32</width>
'"$(funcmuiCreate mui01.02 1 "_Theme Image Size 32")"'
<menuitem image-name="image.svg" use-underline="true"
tooltip-markup="<span fgcolor='"'darkgreen'"'><i>File</i></span> <b>image</b> image.svg">
'"$(funcmuiCreate mui01.03 1 "_File Image")"'
<menuitem image-name="image.svg" use-underline="true">
<width>64</width>
'"$(funcmuiCreate mui01.04 1 "File Image _Scaled 64")"'
'"$(funcmuiCreate mnu01 1 "_Image")"'
<menu label="_Checkbox" use-underline="true">
<menuitem checkbox="true" use-underline="true" accel-key="0x31" accel-mods="4">
<action>if true enable:mui00.01</action>
<action>if false disable:mui00.01</action>
'"$(funcmuiCreate mui02.00 1 "Enable _Quit")"'
<menuitem checkbox="yes" use-underline="true" accel-key="0x32" accel-mods="4">
<action>if true enable:mnu01</action>
<action>if false disable:mnu01</action>
'"$(funcmuiCreate mui02.01 1 "Enable _Image")"'
<menuitem checkbox="yes" use-underline="true" accel-key="0x33" accel-mods="4">
<action>if true enable:mnu03.00</action>
<action>if false disable:mnu03.00</action>
'"$(funcmuiCreate mui02.02 1 "Enable _Color")"'
'"$(funcmuiCreate mnu02 0 "Checkbox")"'
<menu use-underline="true">
<menu use-stock="true" label="gtk-select-color">
<menuitem radiobutton="true" use-underline="true" accel-key="0xffbf" accel-mods="0">
<action>if true funcimageCreate 1</action>
<action>refresh:mui01.04</action>
'"$(funcmuiCreate mui03.00.00 1 "File Image Scaled _Red")"'
<menuitem radiobutton="false" use-underline="true" accel-key="0xffc0" accel-mods="0">
<action>if true funcimageCreate 2</action>
<action>refresh:mui01.04</action>
'"$(funcmuiCreate mui03.00.01 1 "File Image Scaled _Green")"'
<menuitem radiobutton="no" use-underline="true" accel-key="0xffc1" accel-mods="">
<action>if true funcimageCreate 3</action>
<action>refresh:mui01.04</action>
'"$(funcmuiCreate mui03.00.02 1 "File Image Scaled _Blue")"'
'"$(funcmuiCreate mnu03.00 0 "Select Colour")"'
'"$(funcmuiCreate mnu03 1 "_Radiobutton")"'
</menubar>
</vbox>
<action signal="hide">exit:Exit</action>
</window>
'
$GTKDIALOG --center --program=MAIN_DIALOG
|
Regards,
Thunor
Last edited by thunor on Fri 12 Aug 2011, 09:35; edited 10 times in total
|
Back to top
|
|
 |
thunor

Joined: 14 Oct 2010 Posts: 350 Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
|
Posted: Tue 02 Aug 2011, 16:36 Post subject:
|
|
disciple wrote: | Just FYI, it looks like Flash has got around to making the package collections/repositories section publicly visible, so everyone should be able to see the "Index of programs using gtkdialog" now  |
Yay
Dougal wrote: | Doesn't it make more sense to start with the refactoring? that way you have less to refactor and it makes it easier to do the other work... |
I'm going to have a think about it now as I need to do something different.
Regards,
Thunor
|
Back to top
|
|
 |
BarryK
Puppy Master

Joined: 09 May 2005 Posts: 8526 Location: Perth, Western Australia
|
Posted: Wed 03 Aug 2011, 09:28 Post subject:
|
|
thunor wrote: |
Retrieving and Testing Against Gtkdialog's Version
The fact that Gtkdialog went from 0.59.8 to 0.6.0 in 2006 slightly complicates the process of checking the version number, but the following code does the trick (on Puppy Linux you will get "5908" for gtkdialog2, "7020" for gtkdialog3 and "7021" and upwards for gtkdialog):
Code: | GTKDIALOG=gtkdialog
function funcGTKDVGet() {
GTKDV=( $($GTKDIALOG -v) )
GTKDV=${GTKDV[2]}
echo "Gtkdialog version: $GTKDV"
GTKDV=( ${GTKDV//./ } )
if [ ${GTKDV[1]} -lt 10 ]; then GTKDV[1]=${GTKDV[1]}0; fi
if [ ${GTKDV[2]} -lt 10 ]; then GTKDV[2]=0${GTKDV[2]}; fi
}; funcGTKDVGet
if [ ${GTKDV[1]}${GTKDV[2]} -lt "7021" ]; then
echo "This application requires at least gtkdialog-0.7.21"
exit
fi
|
|
Comparing dotted version numbers is now easy. Woof as from April 2011 has 'vercmp' which will be in all Puppy builds, both in the initramfs and in /bin. See my blog post:
http://bkhome.org/blog/?viewDetailed=02226
Example:
Code: | VER1=0.7.21
if vercmp $VER1 gt 0.7.20 ; then
echo 'greater than 0.7.20'
fi |
...returns 0 if true.
_________________ http://bkhome.org/news/
|
Back to top
|
|
 |
thunor

Joined: 14 Oct 2010 Posts: 350 Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
|
Posted: Wed 03 Aug 2011, 18:49 Post subject:
|
|
BarryK wrote: | Comparing dotted version numbers is now easy. Woof as from April 2011 has 'vercmp' which will be in all Puppy builds, both in the initramfs and in /bin. See my blog post:
http://bkhome.org/blog/?viewDetailed=02226
Example:
Code: | VER1=0.7.21
if vercmp $VER1 gt 0.7.20 ; then
echo 'greater than 0.7.20'
fi |
...returns 0 if true. |
Hi Barry
I'll update my main post with this information
BTW I've gone through the examples within the repository and fixed-up the quirky ones and commented within the broken ones. I know you said that you were putting together a collection of new examples so why don't I give you developer access and you can do it all in the repository. Then if you want to change all the "GTKDIALOG=gtkdialog" to "GTKDIALOG=gtkdialog3" then you can do it with "sed" on a local copy before you create your pet. Let me know if you're interested.
Regards,
Thunor
|
Back to top
|
|
 |
thunor

Joined: 14 Oct 2010 Posts: 350 Location: Minas Tirith, in the Pelennor Fields fighting the Easterlings
|
Posted: Sun 07 Aug 2011, 18:17 Post subject:
|
|
Improved the theme icon support
The menuitem widget reference is available here.
The button widget reference is available here.
The pixmap widget reference is available here.
I've updated the menuitem, button and pixmap widgets to support using the height or width directives to override the default theme icon sizes of 16, 20 and 32 respectively.
If you want to know a bit more about what's going on here, theme icons are loaded using the GTK+ gtk_icon_theme_load_icon function and one of its parameters is "size", so if you declare something within the height or width directives then that's what I'm setting "size" to, else I use a default. Note that "the resulting icon may not be exactly this size".
Example:
Code: | #!/bin/sh
# NOTE: This example requires at least gtkdialog-0.7.21 (please visit
# http://code.google.com/p/gtkdialog/). Additionally if you are using
# Puppy Linux then you may find that an historical version of gtkdialog
# already exists in /usr/sbin, and if that is the case then you should
# modify the shell variable below to point to the new gtkdialog binary.
GTKDIALOG=gtkdialog
export MAIN_DIALOG='
<window title="Theme Icon Support" resizable="false" border-width="0">
<vbox spacing="0">
<menubar>
<menu label="_File" use-underline="true">
<menuitem stock-id="gtk-quit" accel-key="0x51" accel-mods="4">
<action>exit:Quit</action>
</menuitem>
</menu>
<menu label="_Image" use-underline="true">
<menuitem icon-name="gimp">
<label>gimp - Size 16 (Default)</label>
</menuitem>
<menuitem icon-name="glade-3">
<label>glade-3 - Size 32</label>
<width>32</width>
</menuitem>
<menuitem icon-name="gnome-mplayer">
<label>gnome-mplayer - Size 64</label>
<width>64</width>
</menuitem>
</menu>
</menubar>
<vbox border-width="20">
<pixmap tooltip-text="gnumeric - Size 256">
<width>256</width>
<input file icon="gnumeric"></input>
</pixmap>
<button image-position="2">
<label>extension - Size 48</label>
<width>48</width>
<input file icon="extension"></input>
<action>""</action>
</button>
</vbox>
</vbox>
<action signal="hide">exit:Exit</action>
</window>
'
$GTKDIALOG --center --program=MAIN_DIALOG
|
Regards,
Thunor
Last edited by thunor on Fri 12 Aug 2011, 10:17; edited 2 times in total
|
Back to top
|
|
 |
|
Page 10 of 56 [833 Posts] |
Goto page: Previous 1, 2, 3, ..., 8, 9, 10, 11, 12, ..., 54, 55, 56 Next |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|