105 lines
3.0 KiB
C
105 lines
3.0 KiB
C
/* LIBPIKA - The PIKA Library
|
|
* Copyright (C) 1995-2000 Peter Mattis and Spencer Kimball
|
|
*
|
|
* pikaselection.c
|
|
*
|
|
* This library is free software: you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* This library 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see
|
|
* <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
#include "pika.h"
|
|
|
|
|
|
struct _PikaSelection
|
|
{
|
|
PikaChannel parent_instance;
|
|
};
|
|
|
|
|
|
G_DEFINE_TYPE (PikaSelection, pika_selection, PIKA_TYPE_CHANNEL)
|
|
|
|
#define parent_class pika_selection_parent_class
|
|
|
|
|
|
static void
|
|
pika_selection_class_init (PikaSelectionClass *klass)
|
|
{
|
|
}
|
|
|
|
static void
|
|
pika_selection_init (PikaSelection *selection)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* pika_selection_get_by_id:
|
|
* @selection_id: The selection id.
|
|
*
|
|
* Returns a #PikaSelection representing @selection_id. This function
|
|
* calls pika_item_get_by_id() and returns the item if it is selection
|
|
* or %NULL otherwise.
|
|
*
|
|
* Returns: (nullable) (transfer none): a #PikaSelection for
|
|
* @selection_id or %NULL if @selection_id does not represent
|
|
* a valid selection. The object belongs to libpika and you
|
|
* must not modify or unref it.
|
|
*
|
|
* Since: 3.0
|
|
**/
|
|
PikaSelection *
|
|
pika_selection_get_by_id (gint32 selection_id)
|
|
{
|
|
PikaItem *item = pika_item_get_by_id (selection_id);
|
|
|
|
if (PIKA_IS_SELECTION (item))
|
|
return (PikaSelection *) item;
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/**
|
|
* pika_selection_float:
|
|
* @image: ignored
|
|
* @n_drawables: Size of @drawables.
|
|
* @drawables: (array length=n_drawables): The drawables from which to
|
|
* float selection.
|
|
* @offx: x offset for translation.
|
|
* @offy: y offset for translation.
|
|
*
|
|
* Float the selection from the specified drawable with initial offsets
|
|
* as specified.
|
|
*
|
|
* This procedure determines the region of the specified drawable that
|
|
* lies beneath the current selection. The region is then cut from the
|
|
* drawable and the resulting data is made into a new layer which is
|
|
* instantiated as a floating selection. The offsets allow initial
|
|
* positioning of the new floating selection.
|
|
*
|
|
* Returns: (transfer none): The floated layer.
|
|
*/
|
|
PikaLayer *
|
|
pika_selection_float (PikaImage *image,
|
|
gint n_drawables,
|
|
PikaDrawable **drawables,
|
|
gint offx,
|
|
gint offy)
|
|
{
|
|
return _pika_selection_float (n_drawables,
|
|
(const PikaItem **) drawables,
|
|
offx,
|
|
offy);
|
|
}
|