X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Frenderer_guides.cpp;fp=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Frenderer_guides.cpp;h=0000000000000000000000000000000000000000;hb=a095981e18cc37a8ecc7cd237cc22b9c10329264;hp=c1f5d9f8779ff3b259f2b2b21f419736a665a4d4;hpb=9459638ad6797b8139f1e9f0715c96076dbf0890;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/renderer_guides.cpp b/synfig-studio/trunk/src/gtkmm/renderer_guides.cpp deleted file mode 100644 index c1f5d9f..0000000 --- a/synfig-studio/trunk/src/gtkmm/renderer_guides.cpp +++ /dev/null @@ -1,284 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file renderer_guides.cpp -** \brief Template File -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** -** 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 "renderer_guides.h" -#include "workarea.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 ======================================================= */ - -/* === P R O C E D U R E S ================================================= */ - -/* === M E T H O D S ======================================================= */ - -Renderer_Guides::Renderer_Guides(): - dragging(false) -{ - -} - -Renderer_Guides::~Renderer_Guides() -{ -} - -bool -Renderer_Guides::get_enabled_vfunc()const -{ - return get_work_area()->get_show_guides(); -} - -std::list& -Renderer_Guides::get_guide_list_x() -{ - return get_work_area()->get_guide_list_x(); -} - -std::list& -Renderer_Guides::get_guide_list_y() -{ - return get_work_area()->get_guide_list_y(); -} - -bool -Renderer_Guides::event_vfunc(GdkEvent* event) -{ - synfig::Point mouse_pos; - // float bezier_click_pos; - // const float radius((abs(get_pw())+abs(get_ph()))*4); - int button_pressed(0); - float pressure(0); - bool is_mouse(false); - Gdk::ModifierType modifier(Gdk::ModifierType(0)); - - // Handle input stuff - if( - event->any.type==GDK_MOTION_NOTIFY || - event->any.type==GDK_BUTTON_PRESS || - event->any.type==GDK_2BUTTON_PRESS || - event->any.type==GDK_3BUTTON_PRESS || - event->any.type==GDK_BUTTON_RELEASE - ) - { - GdkDevice *device; - if(event->any.type==GDK_MOTION_NOTIFY) - { - device=event->motion.device; - modifier=Gdk::ModifierType(event->motion.state); - } - else - { - device=event->button.device; - modifier=Gdk::ModifierType(event->button.state); - } - - // Make sure we recognize the device - /*if(curr_input_device) - { - if(curr_input_device!=device) - { - assert(device); - curr_input_device=device; - signal_input_device_changed()(curr_input_device); - } - } - else*/ if(device) - { - //curr_input_device=device; - //signal_input_device_changed()(curr_input_device); - } - - //assert(curr_input_device); - - // Calculate the position of the - // input device in canvas coordinates - // and the buttons - if(!event->button.axes) - { - mouse_pos=synfig::Point(screen_to_comp_coords(synfig::Point(event->button.x,event->button.y))); - button_pressed=event->button.button; - pressure=1.0f; - is_mouse=true; - if(isnan(event->button.x) || isnan(event->button.y)) - return false; - } - else - { - double x(event->button.axes[0]); - double y(event->button.axes[1]); - if(isnan(x) || isnan(y)) - return false; - - pressure=event->button.axes[2]; - //synfig::info("pressure=%f",pressure); - pressure-=0.04f; - pressure/=1.0f-0.04f; - - - assert(!isnan(pressure)); - - mouse_pos=synfig::Point(screen_to_comp_coords(synfig::Point(x,y))); - - button_pressed=event->button.button; - - if(button_pressed==1 && pressure<0 && (event->any.type!=GDK_BUTTON_RELEASE && event->any.type!=GDK_BUTTON_PRESS)) - button_pressed=0; - if(pressure<0) - pressure=0; - - //if(event->any.type==GDK_BUTTON_PRESS && button_pressed) - // synfig::info("Button pressed on input device = %d",event->button.button); - - //if(event->button.axes[2]>0.1) - // button_pressed=1; - //else - // button_pressed=0; - } - } - switch(event->type) - { - case GDK_BUTTON_PRESS: - break; - case GDK_MOTION_NOTIFY: - break; - case GDK_BUTTON_RELEASE: - break; - default: - break; - } - - return false; -} - -void -Renderer_Guides::render_vfunc( - const Glib::RefPtr& drawable, - const Gdk::Rectangle& /*expose_area*/ -) -{ - assert(get_work_area()); - if(!get_work_area()) - return; - - // const synfig::RendDesc &rend_desc(get_work_area()->get_canvas()->rend_desc()); - - const synfig::Vector focus_point(get_work_area()->get_focus_point()); - - //std::vector< std::pair,int> >& tile_book(get_tile_book()); - - int drawable_w,drawable_h; - drawable->get_size(drawable_w,drawable_h); - - // Calculate the window coordinates of the top-left - // corner of the canvas. - // const synfig::Vector::value_type - // x(focus_point[0]/get_pw()+drawable_w/2-get_w()/2), - // y(focus_point[1]/get_ph()+drawable_h/2-get_h()/2); - - /*const synfig::Vector::value_type window_startx(window_tl[0]); - const synfig::Vector::value_type window_endx(window_br[0]); - const synfig::Vector::value_type window_starty(window_tl[1]); - const synfig::Vector::value_type window_endy(window_br[1]); - */ - // const int - // tile_w(get_work_area()->get_tile_w()), - // tile_h(get_work_area()->get_tile_h()); - - // const int - // w(get_w()), - // h(get_h()); - - Glib::RefPtr gc(Gdk::GC::create(drawable)); - - //const synfig::Vector grid_size(get_grid_size()); - - const synfig::Vector::value_type window_startx(get_work_area()->get_window_tl()[0]); - // const synfig::Vector::value_type window_endx(get_work_area()->get_window_br()[0]); - const synfig::Vector::value_type window_starty(get_work_area()->get_window_tl()[1]); - // const synfig::Vector::value_type window_endy(get_work_area()->get_window_br()[1]); - const float pw(get_pw()),ph(get_ph()); - - // Draw out the guides - { - gc->set_function(Gdk::COPY); - gc->set_rgb_fg_color(Gdk::Color("#9f9fff")); - gc->set_line_attributes(1,Gdk::LINE_ON_OFF_DASH,Gdk::CAP_BUTT,Gdk::JOIN_MITER); - - Duckmatic::GuideList::const_iterator iter; - - // vertical - for(iter=get_guide_list_x().begin();iter!=get_guide_list_x().end();++iter) - { - const float x((*iter-window_startx)/pw); - - if(iter==get_work_area()->curr_guide) - gc->set_rgb_fg_color(Gdk::Color("#ff6f6f")); - else - gc->set_rgb_fg_color(Gdk::Color("#6f6fff")); - - drawable->draw_line(gc, - round_to_int(x), - 0, - round_to_int(x), - drawable_h - ); - } - // horizontal - for(iter=get_guide_list_y().begin();iter!=get_guide_list_y().end();++iter) - { - const float y((*iter-window_starty)/ph); - - if(iter==get_work_area()->curr_guide) - gc->set_rgb_fg_color(Gdk::Color("#ff6f6f")); - else - gc->set_rgb_fg_color(Gdk::Color("#6f6fff")); - - drawable->draw_line(gc, - 0, - round_to_int(y), - drawable_w, - round_to_int(y) - ); - } - } -}