X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Frenderer_guides.cpp;h=c1f5d9f8779ff3b259f2b2b21f419736a665a4d4;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=4394ff671ac2d00087e133d57affa49199e34657;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/renderer_guides.cpp b/synfig-studio/trunk/src/gtkmm/renderer_guides.cpp index 4394ff6..c1f5d9f 100644 --- a/synfig-studio/trunk/src/gtkmm/renderer_guides.cpp +++ b/synfig-studio/trunk/src/gtkmm/renderer_guides.cpp @@ -1,20 +1,21 @@ /* === S Y N F I G ========================================================= */ -/*! \file template.cpp +/*! \file renderer_guides.cpp ** \brief Template File ** -** $Id: renderer_guides.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** 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 */ /* ========================================================================= */ @@ -32,6 +33,8 @@ #include "workarea.h" #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -52,7 +55,7 @@ using namespace studio; Renderer_Guides::Renderer_Guides(): dragging(false) { - + } Renderer_Guides::~Renderer_Guides() @@ -81,13 +84,13 @@ 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); + // 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 || @@ -108,8 +111,8 @@ Renderer_Guides::event_vfunc(GdkEvent* event) device=event->button.device; modifier=Gdk::ModifierType(event->button.state); } - - // Make sure we recognise the device + + // Make sure we recognize the device /*if(curr_input_device) { if(curr_input_device!=device) @@ -118,15 +121,15 @@ Renderer_Guides::event_vfunc(GdkEvent* event) 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 @@ -150,14 +153,14 @@ Renderer_Guides::event_vfunc(GdkEvent* event) //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) @@ -165,11 +168,11 @@ Renderer_Guides::event_vfunc(GdkEvent* event) //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; + // button_pressed=0; } } switch(event->type) @@ -183,56 +186,56 @@ Renderer_Guides::event_vfunc(GdkEvent* event) default: break; } - + return false; } void Renderer_Guides::render_vfunc( const Glib::RefPtr& drawable, - const Gdk::Rectangle& expose_area + 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::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 + // 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()); - + // 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_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 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 @@ -240,19 +243,19 @@ Renderer_Guides::render_vfunc( 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,