|
Nikita Kitaev |
254e11 |
/* === S Y N F I G ========================================================= */
|
|
Nikita Kitaev |
254e11 |
/*! \file workarea.h
|
|
Nikita Kitaev |
254e11 |
** \brief Template Header
|
|
Nikita Kitaev |
254e11 |
**
|
|
Nikita Kitaev |
254e11 |
** $Id$
|
|
Nikita Kitaev |
254e11 |
**
|
|
Nikita Kitaev |
254e11 |
** \legal
|
|
Nikita Kitaev |
254e11 |
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
|
|
Nikita Kitaev |
254e11 |
** Copyright (c) 2007, 2008 Chris Moore
|
|
Carlos Lopez |
42fd7a |
** Copyright (c) 2011 Nikita Kitaev
|
|
|
e6766e |
** ......... ... 2018 Ivan Mahonin
|
|
Nikita Kitaev |
254e11 |
**
|
|
Nikita Kitaev |
254e11 |
** This package is free software; you can redistribute it and/or
|
|
Nikita Kitaev |
254e11 |
** modify it under the terms of the GNU General Public License as
|
|
Nikita Kitaev |
254e11 |
** published by the Free Software Foundation; either version 2 of
|
|
Nikita Kitaev |
254e11 |
** the License, or (at your option) any later version.
|
|
Nikita Kitaev |
254e11 |
**
|
|
Nikita Kitaev |
254e11 |
** This package is distributed in the hope that it will be useful,
|
|
Nikita Kitaev |
254e11 |
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Nikita Kitaev |
254e11 |
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Nikita Kitaev |
254e11 |
** General Public License for more details.
|
|
Nikita Kitaev |
254e11 |
** \endlegal
|
|
Nikita Kitaev |
254e11 |
*/
|
|
Nikita Kitaev |
254e11 |
/* ========================================================================= */
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
/* === S T A R T =========================================================== */
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
#ifndef __SYNFIG_GTKMM_WORKAREA_H
|
|
Nikita Kitaev |
254e11 |
#define __SYNFIG_GTKMM_WORKAREA_H
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
/* === H E A D E R S ======================================================= */
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
#include <list></list>
|
|
Nikita Kitaev |
254e11 |
#include <map></map>
|
|
Nikita Kitaev |
254e11 |
#include <set></set>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
#include <etl smart_ptr=""></etl>
|
|
Nikita Kitaev |
254e11 |
#include <etl handle=""></etl>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
#include <gtkmm drawingarea.h=""></gtkmm>
|
|
Nikita Kitaev |
254e11 |
#include <gtkmm table.h=""></gtkmm>
|
|
Nikita Kitaev |
254e11 |
#include <gtkmm adjustment.h=""></gtkmm>
|
|
Nikita Kitaev |
254e11 |
#include <gtkmm image.h=""></gtkmm>
|
|
Nikita Kitaev |
254e11 |
#include <gdkmm pixbuf.h=""></gdkmm>
|
|
Nikita Kitaev |
254e11 |
#include <gdkmm cursor.h=""></gdkmm>
|
|
Nikita Kitaev |
254e11 |
#include <gdkmm device.h=""></gdkmm>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
#include <synfig time.h=""></synfig>
|
|
Nikita Kitaev |
254e11 |
#include <synfig vector.h=""></synfig>
|
|
Nikita Kitaev |
254e11 |
#include <synfig renddesc.h=""></synfig>
|
|
Nikita Kitaev |
254e11 |
#include <synfig canvas.h=""></synfig>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
4f928c |
#include "dials/zoomdial.h"
|
|
|
6c2b42 |
#include "widgets/widget_ruler.h"
|
|
Nikita Kitaev |
254e11 |
#include "duckmatic.h"
|
|
Nikita Kitaev |
254e11 |
#include "instance.h"
|
|
|
557ee3 |
#include "app.h"
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
/* === M A C R O S ========================================================= */
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
/* === T Y P E D E F S ===================================================== */
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
/* === C L A S S E S & S T R U C T S ======================================= */
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
namespace Gtk { class Frame; };
|
|
|
46d84c |
namespace synfig { class Layer; };
|
|
|
46d84c |
namespace synfigapp { class CanvasInterface; };
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
namespace studio
|
|
Nikita Kitaev |
254e11 |
{
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
class Instance;
|
|
Nikita Kitaev |
254e11 |
class CanvasView;
|
|
Nikita Kitaev |
254e11 |
class WorkArea;
|
|
Nikita Kitaev |
254e11 |
class WorkAreaRenderer;
|
|
Nikita Kitaev |
254e11 |
class AsyncRenderer;
|
|
|
46d84c |
class Renderer_Canvas;
|
|
|
9f38ba |
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
class WorkArea : public Gtk::Table, public Duckmatic
|
|
Nikita Kitaev |
254e11 |
{
|
|
|
46d84c |
public:
|
|
Nikita Kitaev |
254e11 |
/*
|
|
Nikita Kitaev |
254e11 |
-- ** -- P U B L I C T Y P E S ---------------------------------------------
|
|
Nikita Kitaev |
254e11 |
*/
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
enum DragMode
|
|
Nikita Kitaev |
254e11 |
{
|
|
Nikita Kitaev |
254e11 |
DRAG_NONE=0,
|
|
Nikita Kitaev |
254e11 |
DRAG_WINDOW,
|
|
Nikita Kitaev |
254e11 |
DRAG_DUCK,
|
|
Nikita Kitaev |
254e11 |
DRAG_GUIDE,
|
|
Nikita Kitaev |
855c85 |
DRAG_BOX,
|
|
Alyssa Rosenzweig |
8c6e05 |
DRAG_BEZIER,
|
|
Alyssa Rosenzweig |
8c6e05 |
DRAG_ZOOM_WINDOW,
|
|
Alyssa Rosenzweig |
8c6e05 |
DRAG_ROTATE_WINDOW
|
|
Nikita Kitaev |
254e11 |
};
|
|
|
46d84c |
|
|
|
46d84c |
/*! \class WorkArea::PushState
|
|
|
46d84c |
** Saves the current duck view and editing options
|
|
|
46d84c |
** Should be used by tools that hide ducks or change clickability settings */
|
|
|
46d84c |
class PushState
|
|
|
46d84c |
{
|
|
|
46d84c |
public:
|
|
|
46d84c |
WorkArea &workarea;
|
|
|
46d84c |
const Type type_mask;
|
|
|
46d84c |
const bool allow_duck_clicks;
|
|
|
46d84c |
const bool allow_bezier_clicks;
|
|
|
46d84c |
const bool allow_layer_clicks;
|
|
|
46d84c |
PushState(WorkArea &workarea);
|
|
|
46d84c |
~PushState();
|
|
|
46d84c |
}; // END of class WorkArea::PushState
|
|
|
46d84c |
|
|
|
46d84c |
/*! \class WorkArea::DirtyTrap
|
|
|
46d84c |
** While any DirtyTrap exists it accumulates WorkArea::queue_render() calls and blocks them.
|
|
|
46d84c |
** WorkArea::queue_render() will called once after all DirtyTrap's for this WorkArea destroyed. */
|
|
|
46d84c |
class DirtyTrap
|
|
Carlos Lopez |
b28b59 |
{
|
|
Carlos Lopez |
b28b59 |
public:
|
|
|
46d84c |
WorkArea &work_area;
|
|
|
46d84c |
DirtyTrap(WorkArea &work_area);
|
|
|
46d84c |
~DirtyTrap();
|
|
Carlos Lopez |
b28b59 |
};
|
|
Carlos Lopez |
b28b59 |
|
|
|
46d84c |
friend class DirtyTrap;
|
|
|
46d84c |
friend class WorkAreaRenderer;
|
|
|
46d84c |
friend class WorkAreaProgress;
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
private:
|
|
Nikita Kitaev |
254e11 |
/*
|
|
Nikita Kitaev |
254e11 |
-- ** -- P R I V A T E D A T A ---------------------------------------------
|
|
Nikita Kitaev |
254e11 |
*/
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
std::set<etl::handle<workarearenderer> > renderer_set_;</etl::handle<workarearenderer>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
etl::loose_handle<synfigapp::canvasinterface> canvas_interface;</synfigapp::canvasinterface>
|
|
Nikita Kitaev |
254e11 |
etl::handle<synfig::canvas> canvas;</synfig::canvas>
|
|
Nikita Kitaev |
254e11 |
etl::loose_handle<studio::instance> instance;</studio::instance>
|
|
Nikita Kitaev |
254e11 |
etl::loose_handle<studio::canvasview> canvas_view;</studio::canvasview>
|
|
|
46d84c |
etl::handle<renderer_canvas> renderer_canvas;</renderer_canvas>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
// Widgets
|
|
Nikita Kitaev |
254e11 |
Gtk::DrawingArea *drawing_area;
|
|
|
46d84c |
Gtk::Frame *drawing_frame;
|
|
|
46d84c |
Widget_Ruler *hruler;
|
|
|
46d84c |
Widget_Ruler *vruler;
|
|
|
536d22 |
Glib::RefPtr<gtk::adjustment> scrollx_adjustment;</gtk::adjustment>
|
|
|
536d22 |
Glib::RefPtr<gtk::adjustment> scrolly_adjustment;</gtk::adjustment>
|
|
caryoscelus |
ee52f0 |
ZoomDial *zoomdial;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
GdkDevice* curr_input_device;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
// Bleh!
|
|
Nikita Kitaev |
254e11 |
int w; //!< Width of the image (in pixels)
|
|
Nikita Kitaev |
254e11 |
int h; //!< Height of the image (in pixels)
|
|
|
d421d7 |
int thumb_w; //!< Width of the thumbnail image (in pixels)
|
|
|
d421d7 |
int thumb_h; //!< Height of the thumbnail image (in pixels)
|
|
|
6878eb |
synfig::Real canvaswidth; //!< Width of the canvas
|
|
|
6878eb |
synfig::Real canvasheight; //!< Height of the canvas
|
|
|
6878eb |
synfig::Real pw; //!< The width of a pixel
|
|
|
6878eb |
synfig::Real ph; //!< The height of a pixel
|
|
|
6878eb |
synfig::Point window_tl; //!< The (theoretical) top-left corner of the view window
|
|
|
6878eb |
synfig::Point window_br; //!< The (theoretical) bottom-right corner of the view window
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
guint32 last_event_time;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! ???
|
|
Nikita Kitaev |
254e11 |
synfig::ProgressCallback *progresscallback;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! This flag is set if the user is dragging the video window
|
|
Nikita Kitaev |
254e11 |
/*! \see drag_point */
|
|
Nikita Kitaev |
254e11 |
DragMode dragging;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
etl::handle<duckmatic::duck> clicked_duck;</duckmatic::duck>
|
|
Nikita Kitaev |
254e11 |
etl::handle<duckmatic::duck> hover_duck;</duckmatic::duck>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! When dragging the viewport, this is set to the origin of the drag
|
|
Nikita Kitaev |
254e11 |
synfig::Point drag_point;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
synfig::Point curr_point;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! ???
|
|
Nikita Kitaev |
254e11 |
synfig::Point previous_focus;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! This flag is set if the grid should be drawn
|
|
Nikita Kitaev |
254e11 |
bool show_grid;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! This flag is set if the guides should be drawn
|
|
Nikita Kitaev |
254e11 |
bool show_guides;
|
|
Nikita Kitaev |
254e11 |
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Checker background size
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
synfig::Vector background_size;
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Checker background first color
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
synfig::Color background_first_color;
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Checker background second color
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
synfig::Color background_second_color;
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
|
|
|
8966bf |
synfig::Time jack_offset;
|
|
|
8966bf |
|
|
Nikita Kitaev |
254e11 |
bool low_resolution;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
bool meta_data_lock;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! The coordinates of the focus the last time a part of the screen was refreshed
|
|
Nikita Kitaev |
254e11 |
synfig::Point last_focus_point;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
int low_res_pixel_size;
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
int dirty_trap_count;
|
|
Nikita Kitaev |
254e11 |
int dirty_trap_queued;
|
|
Nikita Kitaev |
254e11 |
|
|
Carlos Lopez |
2625d9 |
// This flag is set if onion skin is visible
|
|
Nikita Kitaev |
254e11 |
bool onion_skin;
|
|
Nikita Kitaev |
254e11 |
//! stores the future [1] and past [0] onion skins based on keyframes
|
|
Nikita Kitaev |
254e11 |
int onion_skins[2];
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
etl::loose_handle<synfig::valuenode> selected_value_node_;</synfig::valuenode>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
bool allow_duck_clicks;
|
|
Nikita Kitaev |
a4c420 |
bool allow_bezier_clicks;
|
|
Nikita Kitaev |
254e11 |
bool allow_layer_clicks;
|
|
Nikita Kitaev |
254e11 |
bool curr_guide_is_x;
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
public:
|
|
Nikita Kitaev |
254e11 |
/*
|
|
Nikita Kitaev |
254e11 |
-- ** -- P U B L I C D A T A -----------------------------------------------
|
|
Nikita Kitaev |
254e11 |
*/
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
// used in renderer_ducks.cpp
|
|
Nikita Kitaev |
254e11 |
bool solid_lines;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
// used in renderer_guides.cpp
|
|
Nikita Kitaev |
254e11 |
GuideList::iterator curr_guide;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
// used in renderer_timecode.cpp
|
|
Nikita Kitaev |
254e11 |
int timecode_width, timecode_height;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
dc5e35 |
// used in renderer_bonesetup.cpp
|
|
Nikita Kitaev |
dc5e35 |
int bonesetup_width, bonesetup_height;
|
|
Nikita Kitaev |
dc5e35 |
|
|
Nikita Kitaev |
254e11 |
/*
|
|
Nikita Kitaev |
254e11 |
-- ** -- S I G N A L S -------------------------------------------------------
|
|
Nikita Kitaev |
254e11 |
*/
|
|
Nikita Kitaev |
254e11 |
private:
|
|
Nikita Kitaev |
254e11 |
sigc::signal<void> signal_rendering_;</void>
|
|
|
d421d7 |
sigc::signal<void, synfig::time=""> signal_rendering_tile_finished_;</void,>
|
|
|
46d84c |
sigc::signal<void> signal_cursor_moved_;</void>
|
|
Nikita Kitaev |
254e11 |
sigc::signal<void> signal_view_window_changed_;</void>
|
|
Carlos Lopez |
9cb3dd |
sigc::signal<void> signal_meta_data_changed_;</void>
|
|
|
46d84c |
sigc::signal<void, gdkdevice*=""> signal_input_device_changed_;</void,>
|
|
|
46d84c |
sigc::signal<void> signal_popup_menu_;</void>
|
|
|
46d84c |
sigc::signal<void, synfig::point=""> signal_user_click_[5]; //!< One signal per button</void,>
|
|
|
46d84c |
sigc::signal<void, etl::handle<synfig::layer=""> > signal_layer_selected_; //!< Signal for when the user clicks on a layer</void,>
|
|
Nikita Kitaev |
254e11 |
|
|
Carlos Lopez |
9cb3dd |
public:
|
|
Nikita Kitaev |
254e11 |
sigc::signal<void>& signal_rendering() { return signal_rendering_; }</void>
|
|
|
d421d7 |
sigc::signal<void, synfig::time="">& signal_rendering_tile_finished() { return signal_rendering_tile_finished_; }</void,>
|
|
Nikita Kitaev |
254e11 |
sigc::signal<void>& signal_cursor_moved() { return signal_cursor_moved_; }</void>
|
|
Nikita Kitaev |
254e11 |
sigc::signal<void>& signal_view_window_changed() { return signal_view_window_changed_; }</void>
|
|
Carlos Lopez |
9cb3dd |
sigc::signal<void>& signal_meta_data_changed() { return signal_meta_data_changed_; }</void>
|
|
|
46d84c |
sigc::signal<void, gdkdevice*="">& signal_input_device_changed() { return signal_input_device_changed_; }</void,>
|
|
|
46d84c |
sigc::signal<void> &signal_popup_menu() { return signal_popup_menu_; }</void>
|
|
|
46d84c |
sigc::signal<void, synfig::point=""> &signal_user_click(int button=0){ return signal_user_click_[button]; } //!< One signal per button (5 buttons)</void,>
|
|
|
46d84c |
sigc::signal<void, etl::handle<synfig::layer=""> >& signal_layer_selected() { return signal_layer_selected_; }</void,>
|
|
|
46d84c |
|
|
|
46d84c |
public:
|
|
|
46d84c |
/*
|
|
|
46d84c |
-- ** -- P U B L I C M E T H O D S -----------------------------------------
|
|
|
46d84c |
*/
|
|
|
46d84c |
|
|
|
46d84c |
WorkArea(etl::loose_handle<synfigapp::canvasinterface> canvas_interface);</synfigapp::canvasinterface>
|
|
|
46d84c |
virtual ~WorkArea();
|
|
Carlos Lopez |
9cb3dd |
|
|
Nikita Kitaev |
254e11 |
void view_window_changed() { signal_view_window_changed()(); }
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
const etl::loose_handle<synfig::valuenode>& get_selected_value_node() { return selected_value_node_; }</synfig::valuenode>
|
|
|
46d84c |
const synfig::Point& get_drag_point()const { return drag_point; }
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
synfig::VectorInt get_windows_offset() const;
|
|
|
46d84c |
synfig::RectInt get_window_rect() const;
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
bool get_allow_layer_clicks() { return allow_layer_clicks; }
|
|
|
46d84c |
void set_allow_layer_clicks(bool value) { allow_layer_clicks=value; }
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
bool get_allow_duck_clicks() { return allow_duck_clicks; }
|
|
|
46d84c |
void set_allow_duck_clicks(bool value) { allow_duck_clicks=value; }
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
bool get_allow_bezier_clicks() { return allow_bezier_clicks; }
|
|
|
46d84c |
void set_allow_bezier_clicks(bool value) { allow_bezier_clicks=value; }
|
|
|
46d84c |
|
|
|
46d84c |
void insert_renderer(const etl::handle<workarearenderer> &x);</workarearenderer>
|
|
|
46d84c |
void insert_renderer(const etl::handle<workarearenderer> &x,int priority);</workarearenderer>
|
|
|
46d84c |
void erase_renderer(const etl::handle<workarearenderer> &x);</workarearenderer>
|
|
|
46d84c |
void resort_render_set();
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void set_onion_skin(bool x);
|
|
|
46d84c |
bool get_onion_skin() const { return onion_skin; }
|
|
Nikita Kitaev |
254e11 |
void toggle_onion_skin() { set_onion_skin(!get_onion_skin()); }
|
|
Nikita Kitaev |
254e11 |
void set_onion_skins(int *onions);
|
|
|
46d84c |
int const * get_onion_skins() const { return onion_skins; }
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void set_selected_value_node(etl::loose_handle<synfig::valuenode> x);</synfig::valuenode>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
bool is_dragging() { return dragging!=DRAG_NONE; }
|
|
Nikita Kitaev |
254e11 |
DragMode get_dragging_mode() { return dragging; }
|
|
Nikita Kitaev |
254e11 |
|
|
|
1d2d83 |
void set_cursor(const Glib::RefPtr<gdk::cursor> &x);</gdk::cursor>
|
|
Nikita Kitaev |
254e11 |
void set_cursor(Gdk::CursorType x);
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
const synfig::Point& get_cursor_pos()const { return curr_point; }
|
|
Nikita Kitaev |
254e11 |
|
|
|
536d22 |
Glib::RefPtr<gtk::adjustment> get_scrollx_adjustment() { return scrollx_adjustment; }</gtk::adjustment>
|
|
|
536d22 |
Glib::RefPtr<gtk::adjustment> get_scrolly_adjustment() { return scrolly_adjustment; }</gtk::adjustment>
|
|
|
536d22 |
Glib::RefPtr<const gtk::adjustment=""> get_scrollx_adjustment() const { return scrollx_adjustment; }</const>
|
|
|
536d22 |
Glib::RefPtr<const gtk::adjustment=""> get_scrolly_adjustment() const { return scrolly_adjustment; }</const>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void set_instance(etl::loose_handle<studio::instance> x) { instance=x; }</studio::instance>
|
|
Nikita Kitaev |
254e11 |
void set_canvas(etl::handle<synfig::canvas> x) { canvas=x; }</synfig::canvas>
|
|
Nikita Kitaev |
254e11 |
void set_canvas_view(etl::loose_handle<studio::canvasview> x) { canvas_view=x; }</studio::canvasview>
|
|
|
d421d7 |
etl::handle<synfig::canvas> get_canvas() const { return canvas; }</synfig::canvas>
|
|
|
d421d7 |
etl::handle<studio::instance> get_instance() const { return instance; }</studio::instance>
|
|
|
d421d7 |
etl::loose_handle<studio::canvasview> get_canvas_view() const { return canvas_view; }</studio::canvasview>
|
|
|
d421d7 |
const etl::handle<renderer_canvas>& get_renderer_canvas() const { return renderer_canvas; }</renderer_canvas>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void refresh_dimension_info();
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! Enables showing of the grid
|
|
Nikita Kitaev |
254e11 |
void enable_grid();
|
|
Nikita Kitaev |
254e11 |
//! Disables showing of the grid
|
|
Nikita Kitaev |
254e11 |
void disable_grid();
|
|
Nikita Kitaev |
254e11 |
//! Toggles the showing of the grid
|
|
Nikita Kitaev |
254e11 |
void toggle_grid();
|
|
Nikita Kitaev |
254e11 |
//! Returns the state of the show_grid flag
|
|
Nikita Kitaev |
254e11 |
bool grid_status()const { return show_grid; }
|
|
[d.j.a.y] Jerome Blanchi |
672458 |
//! Toggles the snap of the grid
|
|
[d.j.a.y] Jerome Blanchi |
672458 |
void toggle_grid_snap();
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Sets the size of the grid
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
void set_grid_size(const synfig::Vector &s);
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Sets the color of the grid
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
void set_grid_color(const synfig::Color &c);
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Returns the color of the grid
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
const synfig::Color &get_grid_color()const { return Duckmatic::get_grid_color();}
|
|
Nikita Kitaev |
254e11 |
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Returns the state of the show_guides flag
|
|
Nikita Kitaev |
254e11 |
bool get_show_guides()const { return show_guides; }
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Sets the showing of the grid
|
|
Nikita Kitaev |
254e11 |
void set_show_guides(bool x);
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Toggles the showing of the guides
|
|
Nikita Kitaev |
254e11 |
void toggle_show_guides() { set_show_guides(!get_show_guides()); }
|
|
[d.j.a.y] Jerome Blanchi |
672458 |
//! Toggles the snap of the guides
|
|
[d.j.a.y] Jerome Blanchi |
672458 |
void toggle_guide_snap();
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Sets the color of the guides
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
void set_guides_color(const synfig::Color &c);
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
//! Returns the color of the guides
|
|
[d.j.a.y] Jerome Blanchi |
f8442a |
const synfig::Color &get_guides_color()const { return Duckmatic::get_guides_color();}
|
|
Nikita Kitaev |
254e11 |
|
|
|
8966bf |
synfig::Time get_jack_offset()const { return jack_offset; }
|
|
|
8966bf |
void set_jack_offset(const synfig::Time &x);
|
|
|
8966bf |
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Sets the size of the checker background
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
void set_background_size(const synfig::Vector &s);
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Sets the first color of the checker background
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
void set_background_first_color(const synfig::Color &c);
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Sets the second color of the checker background
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
void set_background_second_color(const synfig::Color &c);
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Sets the size of the checker background
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
const synfig::Vector &get_background_size()const { return background_size;}
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Returns the first color of the checker background
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
const synfig::Color &get_background_first_color()const { return background_first_color;}
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
//! Returns the second color of the checker background
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
const synfig::Color &get_background_second_color()const { return background_second_color;}
|
|
[d.j.a.y] Jerome Blanchi |
4f4f14 |
|
|
Nikita Kitaev |
254e11 |
bool get_low_resolution_flag()const { return low_resolution; }
|
|
Nikita Kitaev |
254e11 |
void set_low_resolution_flag(bool x);
|
|
Nikita Kitaev |
254e11 |
void toggle_low_resolution_flag();
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! ???
|
|
Nikita Kitaev |
254e11 |
void queue_scroll();
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! ??
|
|
Nikita Kitaev |
254e11 |
void popup_menu();
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
int get_low_res_pixel_size()const { return low_res_pixel_size; }
|
|
|
278ca7 |
synfig::String get_renderer() const;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void set_low_res_pixel_size(int x);
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
int get_w()const { return w; }
|
|
Nikita Kitaev |
254e11 |
int get_h()const { return h; }
|
|
|
d421d7 |
int get_thumb_w()const { return thumb_w; }
|
|
|
d421d7 |
int get_thumb_h()const { return thumb_h; }
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! Converts screen coords (ie: pixels) to composition coordinates
|
|
Nikita Kitaev |
254e11 |
synfig::Point screen_to_comp_coords(synfig::Point pos)const;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
//! Converts composition coordinates to screen coords (ie: pixels)
|
|
Nikita Kitaev |
254e11 |
synfig::Point comp_to_screen_coords(synfig::Point pos)const;
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
float get_pw()const { return pw; }
|
|
Nikita Kitaev |
254e11 |
float get_ph()const { return ph; }
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
const synfig::Point &get_window_tl()const { return window_tl; }
|
|
Nikita Kitaev |
254e11 |
const synfig::Point &get_window_br()const { return window_br; }
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
//! initiate background rendering of canvas and wait
|
|
|
6878eb |
void sync_render(bool refresh = true);
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
//! initiate background rendering of canvas
|
|
|
6878eb |
void queue_render(bool refresh = true);
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void zoom_in();
|
|
Nikita Kitaev |
254e11 |
void zoom_out();
|
|
Nikita Kitaev |
254e11 |
void zoom_fit();
|
|
Nikita Kitaev |
254e11 |
void zoom_norm();
|
|
|
5173ed |
void zoom_edit();
|
|
Carlos Lopez |
2625d9 |
float get_zoom()const { return zoom; } // zoom is declared in Duckmatic
|
|
Nikita Kitaev |
254e11 |
void set_zoom(float z);
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void set_progress_callback(synfig::ProgressCallback *x) { progresscallback=x; }
|
|
Nikita Kitaev |
254e11 |
synfig::ProgressCallback *get_progress_callback() { return progresscallback; }
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void set_focus_point(const synfig::Point &x);
|
|
Nikita Kitaev |
254e11 |
synfig::Point get_focus_point()const;
|
|
Nikita Kitaev |
254e11 |
|
|
|
48f525 |
bool refresh(const Cairo::RefPtr<cairo::context> &cr);</cairo::context>
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void reset_cursor();
|
|
Nikita Kitaev |
254e11 |
void refresh_cursor();
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
void save_meta_data();
|
|
Nikita Kitaev |
254e11 |
void load_meta_data();
|
|
[d.j.a.y] Jerome Blanchi |
d26376 |
//! Test initial meta data values
|
|
[d.j.a.y] Jerome Blanchi |
d26376 |
bool have_meta_data();
|
|
Nikita Kitaev |
254e11 |
|
|
|
46d84c |
private:
|
|
Nikita Kitaev |
254e11 |
/*
|
|
Nikita Kitaev |
254e11 |
-- ** -- S I G N A L T E R M I N A L S -------------------------------------
|
|
Nikita Kitaev |
254e11 |
*/
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
bool on_key_press_event(GdkEventKey* event);
|
|
|
fdcf46 |
bool on_key_release_event(GdkEventKey* event);
|
|
Nikita Kitaev |
254e11 |
bool on_drawing_area_event(GdkEvent* event);
|
|
Nikita Kitaev |
254e11 |
bool on_hruler_event(GdkEvent* event);
|
|
Nikita Kitaev |
254e11 |
bool on_vruler_event(GdkEvent* event);
|
|
[d.j.a.y] Jerome Blanchi |
e37ceb |
void on_duck_selection_single(const etl::handle<duck>& duck_guid);</duck>
|
|
Nikita Kitaev |
254e11 |
}; // END of class WorkArea
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
61ece2 |
|
|
Nikita Kitaev |
254e11 |
}; // END of namespace studio
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
/* === E N D =============================================================== */
|
|
Nikita Kitaev |
254e11 |
|
|
Nikita Kitaev |
254e11 |
#endif
|