#include #include static MessagingMenuApp *m_menu_app = NULL; static void plugin_load_cb (GtkButton *button, gpointer user_data) { g_print ("plugin loaded\n"); if (m_menu_app == NULL) { m_menu_app = messaging_menu_app_new ("test-app.desktop"); messaging_menu_app_register (m_menu_app); } } static void plugin_unload_cb (GtkButton *button, gpointer user_data) { if (m_menu_app) { g_print ("plugin unloaded\n"); messaging_menu_app_unregister (m_menu_app); g_object_unref (m_menu_app); m_menu_app = NULL; } } int main() { gtk_init (NULL, NULL); GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (G_OBJECT(window), "destroy", gtk_main_quit, NULL); GtkWidget *button_load = gtk_button_new_with_label ("Load Plugin"); g_signal_connect (G_OBJECT(button_load), "clicked", G_CALLBACK (plugin_load_cb), NULL); GtkWidget *button_unload = gtk_button_new_with_label ("Unload Plugin"); g_signal_connect (G_OBJECT(button_unload), "clicked", G_CALLBACK (plugin_unload_cb), NULL); GtkWidget *box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX(box), button_load, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX(box), button_unload, FALSE, FALSE, 0); gtk_container_add (GTK_CONTAINER(window), box); gtk_widget_show (button_load); gtk_widget_show (button_unload); gtk_widget_show (box); gtk_widget_show (window); gtk_main (); return 0; }