Exemplo n.º 1
0
/** callback for simconnect data */
void FSC_CALLBACK_DispatchProc(HANDLE hSim, SIMCONNECT_RECV* pRecv)
{
	SIMCONNECT_RECV_(EVENT, pEvent, pRecv);
	if (pEvent) switch (pEvent->uEventID)
	{
		// hide kneeboard on sim stop
		case EVENT_SIM:
			if (!pEvent->dwData)
				pdfview_hide();
			break;
		// timer for joystick background check?
		case EVENT_TIMER:
			kneeboard_timer();
			break;
		// menus
		case EVENT_MENU_SHOW:
			pdfview_show();
			break;
		case EVENT_MENU_HIDE:
			pdfview_hide();
			break;
		case EVENT_MENU_OPEN:
			open_document();
			break;
		case EVENT_MENU_CLOSE:
			close_document();
			break;
		case EVENT_MENU_SETTINGS:
			SimConnect_SetSystemState(hSim, "DialogMode", 1, 0, NULL);
			kneeboard_settings();
			SimConnect_SetSystemState(hSim, "DialogMode", 0, 0, NULL);
			break;
	}


}
Exemplo n.º 2
0
static void
close_confirmation_dialog_response_handler (CeditCloseConfirmationDialog *dlg,
					    gint                          response_id,
					    CeditWindow                  *window)
{
	GList *selected_documents;
	gboolean is_closing_all;

	cedit_debug (DEBUG_COMMANDS);

	is_closing_all = GPOINTER_TO_BOOLEAN (g_object_get_data (G_OBJECT (window),
					    			 CEDIT_IS_CLOSING_ALL));

	gtk_widget_hide (GTK_WIDGET (dlg));

	switch (response_id)
	{
		case GTK_RESPONSE_YES: /* Save and Close */
			selected_documents = cedit_close_confirmation_dialog_get_selected_documents (dlg);
			if (selected_documents == NULL)
			{
				if (is_closing_all)
				{
					/* There is no document to save -> close all tabs */
					/* We call gtk_widget_destroy before close_all_tabs
					 * because close_all_tabs could destroy the cedit window */
					gtk_widget_destroy (GTK_WIDGET (dlg));

					close_all_tabs (window);

					return;
				}
				else
					g_return_if_reached ();
			}
			else
			{
				if (is_closing_all)
				{
					save_and_close_all_documents (selected_documents,
								      window);
				}
				else
				{
					save_and_close_document (selected_documents,
								 window);
				}
			}

			g_list_free (selected_documents);

			break;

		case GTK_RESPONSE_NO: /* Close without Saving */
			if (is_closing_all)
			{
				/* We call gtk_widget_destroy before close_all_tabs
				 * because close_all_tabs could destroy the cedit window */
				gtk_widget_destroy (GTK_WIDGET (dlg));

				close_all_tabs (window);

				return;
			}
			else
			{
				const GList *unsaved_documents;

				unsaved_documents = cedit_close_confirmation_dialog_get_unsaved_documents (dlg);
				g_return_if_fail (unsaved_documents->next == NULL);

				close_document (window,
						CEDIT_DOCUMENT (unsaved_documents->data));
			}

			break;
		default: /* Do not close */

			/* Reset is_quitting flag */
			g_object_set_data (G_OBJECT (window),
					   CEDIT_IS_QUITTING,
					   GBOOLEAN_TO_POINTER (FALSE));

			break;
	}

	gtk_widget_destroy (GTK_WIDGET (dlg));
}