Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / gtkmm / renderer_timecode.cpp
index 21fcbaa..48cc42b 100644 (file)
@@ -1,11 +1,12 @@
 /* === S Y N F I G ========================================================= */
-/*!    \file template.cpp
+/*!    \file renderer_timecode.cpp
 **     \brief Template File
 **
-**     $Id: renderer_timecode.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $
+**     $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
@@ -37,6 +38,8 @@
 #include "app.h"
 #include <cassert>
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
@@ -75,22 +78,22 @@ Renderer_Timecode::get_grid_size()const
 void
 Renderer_Timecode::render_vfunc(
        const Glib::RefPtr<Gdk::Drawable>& 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::Vector focus_point(get_work_area()->get_focus_point());
 
        //std::vector< std::pair<Glib::RefPtr<Gdk::Pixbuf>,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
@@ -109,9 +112,9 @@ Renderer_Timecode::render_vfunc(
 //     const int
 //             w(get_w()),
 //             h(get_h());
-       
+
        Glib::RefPtr<Gdk::GC> 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]);
@@ -122,11 +125,11 @@ Renderer_Timecode::render_vfunc(
 
        Canvas::Handle canvas(get_work_area()->get_canvas());
        synfig::Time cur_time(canvas->get_time());
-       
+
        // Print out the timecode
        {
                Glib::RefPtr<Pango::Layout> layout(Pango::Layout::create(get_work_area()->get_pango_context()));
-               
+
 /*             Glib::ustring timecode(cur_time.get_string(rend_desc.get_frame_rate(),App::get_time_format()));
 
                try
@@ -139,23 +142,28 @@ Renderer_Timecode::render_vfunc(
                        return;
                        gc->set_rgb_fg_color(Gdk::Color("#000000"));
                }
-               
-               layout->set_text(timecode);             
+
+               layout->set_text(timecode);
 */
 
                gc->set_rgb_fg_color(Gdk::Color("#5f0000"));
                try
                {
-                       layout->set_text(canvas->keyframe_list().find(cur_time)->get_description());            
+                       int w, h;
+                       layout->set_text(canvas->keyframe_list().find(cur_time)->get_description());
+                       layout->get_size(w, h);
+                       get_work_area()->timecode_width = int(w*1.0/Pango::SCALE);
+                       get_work_area()->timecode_height = int(h*1.0/Pango::SCALE);
                }
                catch(synfig::Exception::NotFound)
                {
+                       get_work_area()->timecode_width = get_work_area()->timecode_height = 0;
                        return;
                }
                catch(...) {
                        assert(0);
                }
-               
+
                drawable->draw_layout(gc, 4, 4, layout);
-       }       
+       }
 }