Can gtkDialog GUI refresh another GUI in same script?

For discussions about programming, programming questions/advice, and projects that don't really have anything to do with Puppy.
Post Reply
Message
Author
User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

Can gtkDialog GUI refresh another GUI in same script?

#1 Post by sunburnt »

Look below at script code...
Last edited by sunburnt on Thu 08 Apr 2010, 22:29, edited 1 time in total.

User avatar
8-bit
Posts: 3406
Joined: Wed 04 Apr 2007, 03:37
Location: Oregon

#2 Post by 8-bit »

Did you include a line to export your functions?
example:

export function1 function2 function3

This allows your program to see and use the functions.

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#3 Post by sunburnt »

Code: Select all

#! /bin/sh
. $1/guiinfo
menu() {
  echo '###   '$1   $2
  POS=`$1/driveman guiPOS DM`
  X=echo $POS |sed 's/,.*$//' ; Y=echo $POS |sed 's/^.*,//'
export DM_MENU="
<window title=\"\" skip_taskbar_hint=\"true\" window_position=\"2\">
  <vbox>
  <tree hover-selection=\"true\" headers-visible=\"false\">
    <variable>POPMENU</variable><label>$2</label>
    <item>ROX_Filer</item><item>Mt-UnMt</item>
    <item>Set_Boot</item><item>Settings</item>
    <item>-------------</item>
    <item>Exit_DM</item><item>Exit_Menu</item>
    <action signal=\"button-release-event\" type=\"clear\">DRIVES</action>
    <action signal=\"button-release-event\" type=\"refresh\">DRIVES</action>
    <action signal=\"button-release-event\">$1/driveman clkMENU \$POPMENU $2</action>
  </tree>
  </vbox>
</window>"
gtkdialog3 -p DM_MENU -G +"$X"+"$Y" &
}
export -f menu

export DRIVEMAN="
<window title=\"DM\"><vbox>
  <table><variable>DRIVES</variable><label>Drives|M|B</label><input>cat /tmp/drvinfo</input>
    <action signal=\"button-release-event\">menu $1 \$DRIVES</action></table>
</vbox></window>"
gtkdialog3 -p DRIVEMAN --class DM -G "$2"x"$3"+"$X"+"$Y" &
DRIVEMAN calls the menu function that`s a TreeBox used as a popup menu.
I have it working nicely as two scripts but the menu GUI can`t refresh the DriveMan GUI.
With this arrangement I have to kill DriveMan and then run it again to force a refresh.
##### Update:
Now it`s working but the menu GUI will not refresh the DriveMan GUI in the same script.
I altered the code to try to get the "button-release-event" to trigger the clear and refresh.
Apparently GUIs in the same script can`t reference the others Variables. ( different shells? )
Maybe because the second GUI is being run in a function makes it a different shell.
gtkDialog2 had <action launchwindow> that ran another GUI without it being in a function.
Last edited by sunburnt on Thu 08 Apr 2010, 11:23, edited 5 times in total.

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#4 Post by sunburnt »

Script posted for the DriveMan GUI ( Above ). It shows the Menu, but doesn`t refresh...

It sure would be nice if a script could control and refresh a gtkDialog GUI that`s running.
Not to mention it`d be nice to change and refresh text and displayed icons on controls.
Something like:

Code: Select all

gtkdialog3 -ref DRIVEMAN		# refresh ALL the controls on the DriveMan GUI
gtkdialog3 -ref DRIVEMAN DRIVES	# refresh just the control with the Variable: DRIVES
gtkdialog3 -ref DRIVEMAN Exit		# refresh the control text of the Label: Exit
It would be better if ALL controls had a "Name" to uniquely identify it ( like Visual Basic ).
Then like Visual Basic, you could assign ( set ) the property values for the control.

Code: Select all

FileList.Visible=true
FileList.Width=200
FileList.Font=Ariel
This just makes too much sense I guess, and it`s certainly much easier to read and write...

Post Reply