X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fstate_stroke.cpp;fp=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fstate_stroke.cpp;h=0000000000000000000000000000000000000000;hb=a095981e18cc37a8ecc7cd237cc22b9c10329264;hp=a0f7eca3e81c4f42d8e60ed99d9ee386a37fc7d4;hpb=9459638ad6797b8139f1e9f0715c96076dbf0890;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/state_stroke.cpp b/synfig-studio/trunk/src/gtkmm/state_stroke.cpp deleted file mode 100644 index a0f7eca..0000000 --- a/synfig-studio/trunk/src/gtkmm/state_stroke.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file state_stroke.cpp -** \brief Template File -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore -** -** This package 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 2 of -** the License, or (at your option) any later version. -** -** This package 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. -** \endlegal -*/ -/* ========================================================================= */ - -/* === H E A D E R S ======================================================= */ - -#ifdef USING_PCH -# include "pch.h" -#else -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include - -#include - -#include "state_stroke.h" -#include "canvasview.h" -#include "workarea.h" -#include "app.h" -#include -#include -#include -#include -#include "event_mouse.h" -#include "event_layerclick.h" -#include "toolbox.h" -#include - -#include "general.h" - -#endif - -/* === U S I N G =========================================================== */ - -using namespace std; -using namespace etl; -using namespace synfig; -using namespace studio; - -/* === M A C R O S ========================================================= */ - -/* === G L O B A L S ======================================================= */ - -StateStroke studio::state_stroke; - -/* === C L A S S E S & S T R U C T S ======================================= */ - -class studio::StateStroke_Context : public sigc::trackable -{ - etl::handle canvas_view_; - CanvasView::IsWorking is_working; - - Duckmatic::Push duckmatic_push; - - etl::smart_ptr > stroke_data; - - etl::smart_ptr > width_data; - - Gdk::ModifierType modifier; - -public: - - Smach::event_result event_stop_handler(const Smach::event& x); - - Smach::event_result event_refresh_handler(const Smach::event& x); - - Smach::event_result event_mouse_up_handler(const Smach::event& x); - - Smach::event_result event_mouse_draw_handler(const Smach::event& x); - Smach::event_result event_refresh_tool_options(const Smach::event& x); - - StateStroke_Context(CanvasView* canvas_view); - - ~StateStroke_Context(); - - const etl::handle& get_canvas_view()const{return canvas_view_;} - etl::handle get_canvas_interface()const{return canvas_view_->canvas_interface();} - synfig::Canvas::Handle get_canvas()const{return canvas_view_->get_canvas();} - WorkArea * get_work_area()const{return canvas_view_->get_work_area();} - -}; // END of class StateStroke_Context - - -/* === M E T H O D S ======================================================= */ - -StateStroke::StateStroke(): - Smach::state("stroke") -{ - insert(event_def(EVENT_STOP,&StateStroke_Context::event_stop_handler)); - insert(event_def(EVENT_REFRESH,&StateStroke_Context::event_refresh_handler)); -// insert(event_def(EVENT_WORKAREA_MOUSE_BUTTON_DOWN,&StateStroke_Context::event_mouse_down_handler)); - insert(event_def(EVENT_WORKAREA_MOUSE_BUTTON_UP,&StateStroke_Context::event_mouse_up_handler)); - insert(event_def(EVENT_WORKAREA_MOUSE_BUTTON_DRAG,&StateStroke_Context::event_mouse_draw_handler)); - insert(event_def(EVENT_REFRESH_TOOL_OPTIONS,&StateStroke_Context::event_refresh_tool_options)); -} - -StateStroke::~StateStroke() -{ -} - - -StateStroke_Context::StateStroke_Context(CanvasView* canvas_view): - canvas_view_(canvas_view), - is_working(*canvas_view), - duckmatic_push(get_work_area()) -{ - width_data.spawn(); - stroke_data.spawn(); - - get_work_area()->add_stroke(stroke_data, synfigapp::Main::get_outline_color()); -} - -StateStroke_Context::~StateStroke_Context() -{ - duckmatic_push.restore(); - - App::toolbox->refresh(); - - // Send the stroke data to whatever previously called this state. - if(stroke_data->size()>=2) - get_canvas_view()->get_smach().process_event(EventStroke(stroke_data,width_data,modifier)); -} - -Smach::event_result -StateStroke_Context::event_refresh_tool_options(const Smach::event& /*x*/) -{ - return Smach::RESULT_ACCEPT; -} - -Smach::event_result -StateStroke_Context::event_stop_handler(const Smach::event& /*x*/) -{ - throw Smach::pop_exception(); -} - -Smach::event_result -StateStroke_Context::event_refresh_handler(const Smach::event& /*x*/) -{ - return Smach::RESULT_ACCEPT; -} - -Smach::event_result -StateStroke_Context::event_mouse_up_handler(const Smach::event& x) -{ - const EventMouse& event(*reinterpret_cast(&x)); - switch(event.button) - { - case BUTTON_LEFT: - { - modifier=event.modifier; - throw Smach::pop_exception(); - } - - default: - return Smach::RESULT_OK; - } -} - -Smach::event_result -StateStroke_Context::event_mouse_draw_handler(const Smach::event& x) -{ - const EventMouse& event(*reinterpret_cast(&x)); - switch(event.button) - { - case BUTTON_LEFT: - { - stroke_data->push_back(event.pos); - width_data->push_back(event.pressure); - get_work_area()->queue_draw(); - return Smach::RESULT_ACCEPT; - } - - default: - return Smach::RESULT_OK; - } -}