X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fstate_stroke.cpp;h=3bf3d1cf05521dd17e0e8e350f242c692d9d9aaf;hb=334e15ce6c4d9b1f30a168a55e7ef4d31320d568;hp=0d3d6d588da99fa1da0c3b6fdb2233bbc04a8bdf;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/state_stroke.cpp b/synfig-studio/trunk/src/gtkmm/state_stroke.cpp index 0d3d6d5..3bf3d1c 100644 --- a/synfig-studio/trunk/src/gtkmm/state_stroke.cpp +++ b/synfig-studio/trunk/src/gtkmm/state_stroke.cpp @@ -2,19 +2,21 @@ /*! \file state_stroke.cpp ** \brief Template File ** -** $Id: state_stroke.cpp,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** 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. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** 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 */ /* ========================================================================= */ @@ -46,6 +48,8 @@ #include "toolbox.h" #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -67,9 +71,9 @@ 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; @@ -95,7 +99,7 @@ public: 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 @@ -110,7 +114,7 @@ StateStroke::StateStroke(): 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() { @@ -127,15 +131,15 @@ StateStroke_Context::StateStroke_Context(CanvasView* canvas_view): get_work_area()->add_stroke(stroke_data, synfigapp::Main::get_foreground_color()); - synfig::info("Now Scribbling..."); + synfig::info("Now Scribbling..."); } StateStroke_Context::~StateStroke_Context() { duckmatic_push.restore(); - + App::toolbox->refresh(); - synfig::info("No longer scribbling"); + synfig::info("No longer scribbling"); // Send the stroke data to whatever previously called this state. if(stroke_data->size()>=2) @@ -143,19 +147,19 @@ StateStroke_Context::~StateStroke_Context() } Smach::event_result -StateStroke_Context::event_refresh_tool_options(const Smach::event& x) +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) +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) +StateStroke_Context::event_refresh_handler(const Smach::event& /*x*/) { return Smach::RESULT_ACCEPT; } @@ -171,11 +175,13 @@ StateStroke_Context::event_mouse_up_handler(const Smach::event& x) modifier=event.modifier; throw Smach::pop_exception(); } - - case BUTTON_RIGHT: // Intercept the right-button click to short-circut the pop-up menu - return Smach::RESULT_ACCEPT; - - default: + + case BUTTON_RIGHT: // Intercept the right-button click to short-circuit the pop-up menu + printf("%s:%d BUTTON_RIGHT\n", __FILE__, __LINE__); + if (!getenv("SYNFIG_ENABLE_POPUP_MENU_IN_ALL_TOOLS")) + return Smach::RESULT_ACCEPT; + + default: return Smach::RESULT_OK; } } @@ -190,14 +196,16 @@ StateStroke_Context::event_mouse_draw_handler(const Smach::event& x) { stroke_data->push_back(event.pos); width_data->push_back(event.pressure); - get_work_area()->queue_draw(); + get_work_area()->queue_draw(); return Smach::RESULT_ACCEPT; } - - case BUTTON_RIGHT: // Intercept the right-button click to short-circut the pop-up menu - return Smach::RESULT_ACCEPT; - - default: + + case BUTTON_RIGHT: // Intercept the right-button click to short-circuit the pop-up menu + printf("%s:%d BUTTON_RIGHT\n", __FILE__, __LINE__); + if (!getenv("SYNFIG_ENABLE_POPUP_MENU_IN_ALL_TOOLS")) + return Smach::RESULT_ACCEPT; + + default: return Smach::RESULT_OK; } }