Hey Lorenzo,
I cc'ed pd-dev since this could be generally useful discussion. The save thing works a fair amount different than open, and the messages are hidden within the pd <-> pd-gui communications. The place to start in finding the File->Save function is to look at what the File->Save or Ctrl-S calls. In tcl/pd_bindings.tcl, you can see this:
bind all <$::modifier-Key-s> {menu_send %W menusave}
So Ctrl-S directly sends 'menusave' to pd. To find that in the C source, I look for '"menusave"' i.e. menusave in double-quotes:
hans@palatschinken pure-data.git $ grep '"menusave"' src/*.c src/g_readwrite.c: gensym("menusave"), 0);
Which is a piece of this line:
class_addmethod(canvas_class, (t_method)canvas_menusave, gensym("menusave"), 0);
So that binds "menusave" to the canvas_menusave function which ultimately replies to pd-gui calling the Tcl proc pdtk_canvas_saveas. So you just need to override that Tcl proc since that is where tk_getSaveFile is called to launch the Save As panel.
.hc
On Thu, 2011-03-31 at 23:35 +0200, Lorenzo Sutton wrote:
Hans,
I was looking into putting the save as well, but as hard as I looked I just can't find where the save is... I was expecting to find something like proc ::pd_menucommands::menu_save but it doesn't seem to be there. In 0.42 I hacked a proc called pdtk_canvas_saveas to have the gtk but I can't find any reference to that either Any clue?
Lorenzo
Dear Hans,
Thanks for the hint, indeed that was the save entry!
I added the save so now both open and save are working. I also unified the .c sources and the make file in the same dir. Release candidate is here: http://puredata.info/community/projects/software/gtk-open-save/releases/0.2
Lorenzo.
-------- Original Message -------- Subject: Re: gtk-open-plugin update From: Hans-Christoph Steiner hans@at.or.at To: Lorenzo Sutton lsutton@libero.it CC: pd-dev@iem.at Date: 01/04/2011 18:49
Hey Lorenzo,
I cc'ed pd-dev since this could be generally useful discussion. The save thing works a fair amount different than open, and the messages are hidden within the pd <-> pd-gui communications. The place to start in finding the File->Save function is to look at what the File->Save or Ctrl-S calls. In tcl/pd_bindings.tcl, you can see this:
bind all <$::modifier-Key-s> {menu_send %W menusave}
So Ctrl-S directly sends 'menusave' to pd. To find that in the C source, I look for '"menusave"' i.e. menusave in double-quotes:
hans@palatschinken pure-data.git $ grep '"menusave"' src/*.c src/g_readwrite.c: gensym("menusave"), 0);
Which is a piece of this line:
class_addmethod(canvas_class, (t_method)canvas_menusave, gensym("menusave"), 0);
So that binds "menusave" to the canvas_menusave function which ultimately replies to pd-gui calling the Tcl proc pdtk_canvas_saveas. So you just need to override that Tcl proc since that is where tk_getSaveFile is called to launch the Save As panel.
.hc
On Thu, 2011-03-31 at 23:35 +0200, Lorenzo Sutton wrote:
Hans,
I was looking into putting the save as well, but as hard as I looked I just can't find where the save is... I was expecting to find something like proc ::pd_menucommands::menu_save but it doesn't seem to be there. In 0.42 I hacked a proc called pdtk_canvas_saveas to have the gtk but I can't find any reference to that either Any clue?
Lorenzo