/* PIKA - Photo and Image Kooker Application * a rebranding of The GNU Image Manipulation Program (created with heckimp) * A derived work which may be trivial. However, any changes may be (C)2023 by Aldercone Studio * * Original copyright, applying to most contents (license remains unchanged): * Copyright (C) 1995 Spencer Kimball and Peter Mattis * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "config.h" #include #include #include "libpikawidgets/pikawidgets.h" #include "actions-types.h" #include "core/pika.h" #include "core/pikacontainer.h" #include "core/pikacontext.h" #include "core/pikaimage.h" #include "widgets/pikacontainerview.h" #include "widgets/pikaimageview.h" #include "display/pikadisplay.h" #include "display/pikadisplayshell.h" #include "images-commands.h" /* public functions */ void images_raise_views_cmd_callback (PikaAction *action, GVariant *value, gpointer data) { PikaContainerEditor *editor = PIKA_CONTAINER_EDITOR (data); PikaContainer *container; PikaContext *context; PikaImage *image; container = pika_container_view_get_container (editor->view); context = pika_container_view_get_context (editor->view); image = pika_context_get_image (context); if (image && pika_container_have (container, PIKA_OBJECT (image))) { GList *list; for (list = pika_get_display_iter (image->pika); list; list = g_list_next (list)) { PikaDisplay *display = list->data; if (pika_display_get_image (display) == image) pika_display_shell_present (pika_display_get_shell (display)); } } } void images_new_view_cmd_callback (PikaAction *action, GVariant *value, gpointer data) { PikaContainerEditor *editor = PIKA_CONTAINER_EDITOR (data); PikaContainer *container; PikaContext *context; PikaImage *image; container = pika_container_view_get_container (editor->view); context = pika_container_view_get_context (editor->view); image = pika_context_get_image (context); if (image && pika_container_have (container, PIKA_OBJECT (image))) { pika_create_display (image->pika, image, PIKA_UNIT_PIXEL, 1.0, G_OBJECT (pika_widget_get_monitor (GTK_WIDGET (editor)))); } } void images_delete_image_cmd_callback (PikaAction *action, GVariant *value, gpointer data) { PikaContainerEditor *editor = PIKA_CONTAINER_EDITOR (data); PikaContainer *container; PikaContext *context; PikaImage *image; container = pika_container_view_get_container (editor->view); context = pika_container_view_get_context (editor->view); image = pika_context_get_image (context); if (image && pika_container_have (container, PIKA_OBJECT (image))) { if (pika_image_get_display_count (image) == 0) g_object_unref (image); } }