int main(int argc, char **argv) { gchar *backend = NULL; gchar *backend_opt = NULL; gchar *majacd_app = NULL; GOptionEntry entries[] = { {"backend", 'b', 0, G_OPTION_ARG_STRING, &backend_opt, "Path to majacd application", "<path>"}, {NULL} }; GError *err = NULL; GOptionContext *context; GtkWidget *err_dialog; context = g_option_context_new("- system tray icon to " "control the majacd application"); g_option_context_add_group(context, gtk_get_option_group(TRUE)); g_option_context_add_main_entries(context, entries, NULL); g_option_context_parse(context, &argc, &argv, &err); g_option_context_free(context); if (backend_opt) { backend = g_strdup(backend_opt); } else { backend = g_strdup(MAJACD_APP); } gtk_init(&argc, &argv); if (!(majacd_app = g_find_program_in_path(backend))) { err_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Could not locate the majacd application"); gtk_window_set_title(GTK_WINDOW(err_dialog), "Error"); gtk_dialog_run(GTK_DIALOG(err_dialog)); gtk_widget_destroy(err_dialog); g_error("Could not locate the majacd application\n"); /* NOT REACHED */ return EXIT_FAILURE; } if (backend_ctl_command(CMD_INIT, (gpointer) majacd_app) < 0) { g_error("Error starting %s", majacd_app); } main_window_create(); main_window_hide(); tray_icon_create(); gtk_main(); g_free(backend); g_free(majacd_app); return EXIT_SUCCESS; }
GtkWidget * mca_info_panel_init (MCAInfoPanel *g_ipnl, cmd_callback_t exec_ipnl_event, status_callback_t proc_status) { GtkWidget *panel, *event_box; ipnl = g_ipnl; ipnl->notify_timeout = 15; ipnl->wnd_exit = exit_wnd_create(ipnl); ipnl->wnd_help = help_wnd_create(ipnl); ipnl->event_cb = exec_ipnl_event; ipnl->status_cb = proc_status; //ipnl->tray_icon = init_status_icon(ipnl); ipnl->tray_icon = tray_icon_create(ipnl); ipnl->is_wnd_help_up = FALSE; ipnl->is_wnd_exit_up = FALSE; ipnl->is_wnd_panel_up = FALSE; panel = info_panel_internal_create(ipnl); /*if (!info_panel_menu_init(panel)){ g_print("Unable to init menu\n"); }*/ event_box = gtk_event_box_new (); //gtk_container_add (GTK_CONTAINER (event_box), image); /* g_signal_connect (G_OBJECT (event_box), "button_press_event", G_CALLBACK (info_panel_on_button_press), panel); */ gtk_widget_reparent(GTK_WIDGET(panel), GTK_WIDGET(event_box)); ipnl->wnd_ipnl = mca_info_panel_host(event_box); return event_box; }