[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: menuitem activate
- From: "danielg Posting" <danielg rhce us>
- To: gtk-app-devel-list gnome org
- Subject: Re: menuitem activate
- Date: Wed, 23 May 2007 15:00:03 -0400
> You have to find you what dv is, where is is constructed and
> how to pass it where you set up the notify handler.
DirView *
dirview_create (const gchar *root_dir,
GtkWidget *parent_win,
GimvThumbWin *tw)
{
(...)
dnotify is being slowly overtaken by inotify but some of the kernels I run
across are older and won't have it in there. I also don't mind the single
directory, non-recursive, because that's all I need for this.
> It could look like:
>
> dv = ... set up the dir view ...
> /* And here comes your part */
> setup_notify(dv, &refresh_me);
Okay, I understand the setup_notify and the dv there, what's the refresh_me
for (do?) or is that just another call to the function you have listed below?
What would the call to create the setup_notify be? I'm already using
int change_notification(void)
So, that would be
int change_notification (dv, &handler)
{
DirView *dv;
struct sigaction act;
int fd;
(...)
and above that would be:
static void handler(int sig, siginfo_t *si, void *data, DirectoryView *dv)
{
event_fd = si->si_fd;
cb_refresh_dir_tree(dv, NULL);
}
>
> Where setup_notify() remembers dv, the function to call on
> it, sets up the dnotify() notification (is dnotify() still
> the preferred mechanism? I recall rumours of it being about
> to be replaced from approx. 2 years ago) and does something
> like
>
> g_signal_connect(dv, "destroy", G_CALLBACK(stop_notifying), NULL);
okay, g_signal_connect to dv, signal name, callback of stop notification, and
data returned (none).
So, this is where I need to put the listener (dnotify())? I would like this
to go on the entire run of the program. I guess, what's the "destroy" for?
>
> where stop_notifying() is a function to shut down
> notification for dv and forget dv. And refresh_me() just
> does
>
> static void
> refresh_me(DirView *dv)
> {
> cb_refresh_dir_tree(dv, NULL);
> }
That's the handler() up there.
>
> I don't know what the lifetime rules are for the directory
> views or whether more of them can be present, but this
> scheme can work quite generally. You can employ a more
> general callback mechanism, but this should be sufficient in
> your case.
I'm getting there. I understand what I want to do, I'm just relearning how C
makes me say it.
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]