コード例 #1
0
ファイル: giggle-window.c プロジェクト: andi5/giggle
static void
window_history_capture (GiggleWindow *window)
{
	GiggleWindowPriv     *priv = GET_PRIV (window);
	GiggleWindowSnapshot *snapshot;

	if (priv->history_locked)
		return;

	snapshot = g_slice_new0 (GiggleWindowSnapshot);

	snapshot->view = giggle_view_shell_get_selected
		(GIGGLE_VIEW_SHELL (priv->view_shell));

	if (GIGGLE_IS_HISTORY (snapshot->view)) {
		snapshot->view_data = giggle_history_capture
			(GIGGLE_HISTORY (snapshot->view));
	}

	if (priv->history) {
		window_history_list_free (priv->history->next);
		priv->history->next = NULL;
	}

	priv->history = g_list_append (priv->history, snapshot);
	priv->history = g_list_last (priv->history);

	window_history_update_ui (window);
}
コード例 #2
0
ファイル: giggle-history.c プロジェクト: deejay1/giggle
GObject *
giggle_history_capture (GiggleHistory *history)
{
	GiggleHistoryIface *iface;

	g_return_val_if_fail (GIGGLE_IS_HISTORY (history), NULL);

	iface = GIGGLE_HISTORY_GET_IFACE (history);
	g_return_val_if_fail (NULL != iface->capture, NULL);

	return iface->capture (history);
}
コード例 #3
0
ファイル: giggle-history.c プロジェクト: deejay1/giggle
void
giggle_history_restore (GiggleHistory *history,
			GObject       *snapshot)
{
	GiggleHistoryIface *iface;

	g_return_if_fail (GIGGLE_IS_HISTORY (history));

	iface = GIGGLE_HISTORY_GET_IFACE (history);
	g_return_if_fail (NULL != iface->restore);

	iface->restore (history, snapshot);
}
コード例 #4
0
ファイル: giggle-window.c プロジェクト: andi5/giggle
static void
window_history_restore_snapshot (GiggleWindow         *window,
				 GiggleWindowSnapshot *snapshot)
{
	GiggleWindowPriv *priv = GET_PRIV (window);

	if (priv->history_locked)
		return;

	priv->history_locked += 1;

	giggle_view_shell_select (GIGGLE_VIEW_SHELL (priv->view_shell),
				  snapshot->view);

	if (GIGGLE_IS_HISTORY (snapshot->view)) {
		giggle_history_restore (GIGGLE_HISTORY (snapshot->view),
					snapshot->view_data);
	}

	window_history_update_ui (window);

	priv->history_locked -= 1;
}
コード例 #5
0
ファイル: giggle-history.c プロジェクト: deejay1/giggle
void
giggle_history_changed (GiggleHistory *history)
{
	g_return_if_fail (GIGGLE_IS_HISTORY (history));
	g_signal_emit (history, signals[HISTORY_CHANGED], 0);
}
コード例 #6
0
ファイル: giggle-history.c プロジェクト: deejay1/giggle
void
giggle_history_reset (GiggleHistory *history)
{
	g_return_if_fail (GIGGLE_IS_HISTORY (history));
	g_signal_emit (history, signals[HISTORY_RESET], 0);
}