static BOOL remove_launcher( const WCHAR *folder, const WCHAR *filename, int len_filename ) { UINT i; WCHAR *path; BOOL ret = FALSE; if (!(path = append_path( folder, filename, len_filename ))) return FALSE; for (i = 0; i < nb_launchers; i++) { if (!strcmpiW( launchers[i]->path, path )) { free_launcher( launchers[i] ); if (--nb_launchers) memmove( &launchers[i], &launchers[i + 1], sizeof(launchers[i]) * (nb_launchers - i) ); ret = TRUE; break; } } HeapFree( GetProcessHeap(), 0, path ); return ret; }
static Launcher * load_launcher_applet (const char *location, PanelWidget *panel, const char *id, GSettings *settings) { Launcher *launcher; launcher = create_launcher (location); if (!launcher) return NULL; launcher->info = panel_applet_register (launcher->button, panel, PANEL_OBJECT_LAUNCHER, id, settings, launcher, free_launcher); if (!launcher->info) { free_launcher (launcher); return NULL; } panel_applet_add_callback (launcher->info, "launch", _("_Launch"), NULL); panel_applet_add_callback (launcher->info, "properties", _("_Properties"), lancher_properties_enabled); panel_widget_set_applet_expandable (panel, GTK_WIDGET (launcher->button), FALSE, TRUE); panel_widget_set_applet_size_constrained (panel, GTK_WIDGET (launcher->button), TRUE); /* setup button according to ditem */ setup_button (launcher); return launcher; }