initial version
[synfig.git] / synfig-studio / trunk / src / gtkmm / renddesc.cpp
diff --git a/synfig-studio/trunk/src/gtkmm/renddesc.cpp b/synfig-studio/trunk/src/gtkmm/renddesc.cpp
new file mode 100644 (file)
index 0000000..8a709d7
--- /dev/null
@@ -0,0 +1,477 @@
+/* === S I N F G =========================================================== */
+/*!    \file renddesc.cpp
+**     \brief Template File
+**
+**     $Id: renddesc.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $
+**
+**     \legal
+**     Copyright (c) 2002 Robert B. Quattlebaum Jr.
+**
+**     This software and associated documentation
+**     are CONFIDENTIAL and PROPRIETARY property of
+**     the above-mentioned copyright holder.
+**
+**     You may not copy, print, publish, or in any
+**     other way distribute this software without
+**     a prior written agreement with
+**     the copyright holder.
+**     \endlegal
+*/
+/* ========================================================================= */
+
+/* === H E A D E R S ======================================================= */
+
+#ifdef USING_PCH
+#      include "pch.h"
+#else
+#ifdef HAVE_CONFIG_H
+#      include <config.h>
+#endif
+
+#include "renddesc.h"
+#include <gtkmm/label.h>
+#include <gtkmm/frame.h>
+#include <ETL/misc>
+#include <sinfg/general.h>
+//#include <gtkmm/seperator.h>
+
+#endif
+
+/* === U S I N G =========================================================== */
+
+using namespace std;
+using namespace etl;
+using namespace sinfg;
+using namespace studio;
+
+/* === M A C R O S ========================================================= */
+
+#ifndef SINFG_MAX_PIXEL_WIDTH
+#define SINFG_MAX_PIXEL_WIDTH  (~(1<<31))
+#endif
+
+#ifndef SINFG_MAX_PIXEL_HEIGHT
+#define SINFG_MAX_PIXEL_HEIGHT (~(1<<31))
+#endif
+
+#if ! defined(_)
+#define _(x)   (x)
+#endif
+
+#ifndef DPM2DPI
+#define DPM2DPI(x)     ((x)/39.3700787402)
+#define DPI2DPM(x)     ((x)*39.3700787402)
+#endif
+
+#ifndef METERS2INCHES
+#define METERS2INCHES(x)       ((x)*39.3700787402)
+#define INCHES2METERS(x)       ((x)/39.3700787402)
+#endif
+
+/* === G L O B A L S ======================================================= */
+
+/* === P R O C E D U R E S ================================================= */
+
+/* === M E T H O D S ======================================================= */
+
+Widget_RendDesc::Widget_RendDesc():
+       Gtk::Table(1,2,false),
+       adjustment_width(1,1,SINFG_MAX_PIXEL_WIDTH),
+       adjustment_height(1,1,SINFG_MAX_PIXEL_HEIGHT),
+       adjustment_xres(0,0,10000000),
+       adjustment_yres(0,0,10000000),
+       adjustment_phy_width(0,0,10000000),
+       adjustment_phy_height(0,0,10000000),
+       adjustment_fps(0,0,10000000),
+       adjustment_span(0,0,10000000)
+{
+       update_lock=0;
+       
+       Gtk::Frame *size_frame=manage(new Gtk::Frame(_("Image Size")));
+       Gtk::Frame *area_frame=manage(new Gtk::Frame(_("Image Area")));
+       time_frame=manage(new Gtk::Frame(_("Time")));
+       
+       Gtk::Table *size_table=manage(new Gtk::Table(2,2,false));
+       size_frame->add(*size_table);
+
+       Gtk::Table *area_table=manage(new Gtk::Table(2,2,false));
+       area_frame->add(*area_table);
+
+       time_table=manage(new Gtk::Table(2,2,false));
+       time_frame->add(*time_table);
+
+       Gtk::Frame *other_frame=manage(new Gtk::Frame(_("Other")));
+       Gtk::Table *other_table=manage(new Gtk::Table(2,2,false));
+       other_frame->add(*other_table);
+
+       Gtk::Frame *lock_frame=manage(new Gtk::Frame(_("Locks and Links")));
+       Gtk::Table *lock_table=manage(new Gtk::Table(2,2,false));
+       lock_frame->add(*lock_table);
+       
+       entry_width=manage(new Gtk::SpinButton(adjustment_width,1,0));
+       entry_height=manage(new Gtk::SpinButton(adjustment_height,1,0));        
+       entry_width->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_width_changed));
+       entry_height->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_height_changed));
+       size_table->attach(*manage(new Gtk::Label(_("Width"))), 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);        
+       size_table->attach(*manage(new Gtk::Label(_("Height"))), 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);       
+       size_table->attach(*entry_width, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0); 
+       size_table->attach(*entry_height, 1, 2, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);        
+       
+       entry_xres=manage(new Gtk::SpinButton(adjustment_xres,0.5,1));
+       entry_yres=manage(new Gtk::SpinButton(adjustment_yres,0.5,1));  
+       entry_xres->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_xres_changed));
+       entry_yres->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_yres_changed));
+       size_table->attach(*manage(new Gtk::Label(_("XRes"))), 2, 3, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); 
+       size_table->attach(*manage(new Gtk::Label(_("YRes"))), 2, 3, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); 
+       size_table->attach(*entry_xres, 3, 4, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);  
+       size_table->attach(*entry_yres, 3, 4, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);  
+
+       entry_phy_width=manage(new Gtk::SpinButton(adjustment_phy_width,0.25,2));
+       entry_phy_height=manage(new Gtk::SpinButton(adjustment_phy_height,0.25,2));     
+       entry_phy_width->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_phy_width_changed));
+       entry_phy_height->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_phy_height_changed));
+       size_table->attach(*manage(new Gtk::Label(_("PhyWidth"))), 4, 5, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);     
+       size_table->attach(*manage(new Gtk::Label(_("PhyHeight"))), 4, 5, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+       size_table->attach(*entry_phy_width, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);     
+       size_table->attach(*entry_phy_height, 5, 6, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+
+
+       entry_span=manage(new Gtk::SpinButton(adjustment_span,0.1,4));  
+       entry_span->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_span_changed));
+       size_table->attach(*manage(new Gtk::Label(_("Span"))), 0, 1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); 
+       size_table->attach(*entry_span, 1, 2, 2, 3, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);  
+
+       entry_tl=manage(new Widget_Vector());
+       entry_br=manage(new Widget_Vector());
+       entry_tl->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_tl_changed));
+       entry_br->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_br_changed));
+       area_table->attach(*manage(new Gtk::Label(_("Top-Left"))), 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);       
+       area_table->attach(*manage(new Gtk::Label(_("Bottom-Right"))), 0, 1, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);   
+       area_table->attach(*entry_tl, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+       area_table->attach(*entry_br, 1, 2, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+
+       entry_fps=manage(new Gtk::SpinButton(adjustment_fps,1,5));
+       entry_start_time=manage(new Widget_Time());
+       entry_end_time=manage(new Widget_Time());       
+       //entry_start_frame=manage(new Gtk::SpinButton(adjustment_start_frame,1,0));
+       //entry_end_frame=manage(new Gtk::SpinButton(adjustment_end_frame,1,0));        
+       entry_fps->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_fps_changed));
+       entry_start_time->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_start_time_changed));
+       entry_end_time->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_end_time_changed));
+       //entry_start_frame->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_start_frame_changed));
+       //entry_end_frame->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_end_frame_changed));
+       time_table->attach(*manage(new Gtk::Label(_("FPS"))), 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);  
+       time_table->attach(*manage(new Gtk::Label(_("Start Time"))), 2, 3, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);   
+       time_table->attach(*manage(new Gtk::Label(_("End Time"))), 2, 3, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);     
+       //time_table->attach(*manage(new Gtk::Label(_("Start Frame"))), 4, 5, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);        
+       //time_table->attach(*manage(new Gtk::Label(_("End Frame"))), 4, 5, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);  
+       time_table->attach(*entry_fps, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);   
+       time_table->attach(*entry_start_time, 3, 4, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+       time_table->attach(*entry_end_time, 3, 4, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);      
+       //time_table->attach(*entry_start_frame, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0); 
+       //time_table->attach(*entry_end_frame, 5, 6, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);   
+
+       entry_focus=manage(new Widget_Vector());
+       entry_focus->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_focus_changed));
+       other_table->attach(*manage(new Gtk::Label(_("Focus Point"))), 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);   
+       other_table->attach(*entry_focus, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);        
+
+
+
+       toggle_px_aspect=manage(new Gtk::CheckButton(_("Pixel Aspect")));
+       toggle_px_width=manage(new Gtk::CheckButton(_("Pixel Width")));
+       toggle_px_height=manage(new Gtk::CheckButton(_("Pixel Height")));
+
+       toggle_im_aspect=manage(new Gtk::CheckButton(_("Image Aspect")));
+       toggle_im_width=manage(new Gtk::CheckButton(_("Image Width")));
+       toggle_im_height=manage(new Gtk::CheckButton(_("Image Height")));
+       toggle_im_span=manage(new Gtk::CheckButton(_("Image Span")));
+
+       toggle_px_aspect->signal_toggled().connect(sigc::mem_fun(*this, &studio::Widget_RendDesc::on_lock_changed));
+       toggle_px_width->signal_toggled().connect(sigc::mem_fun(*this, &studio::Widget_RendDesc::on_lock_changed));
+       toggle_px_height->signal_toggled().connect(sigc::mem_fun(*this, &studio::Widget_RendDesc::on_lock_changed));
+       toggle_im_aspect->signal_toggled().connect(sigc::mem_fun(*this, &studio::Widget_RendDesc::on_lock_changed));
+       toggle_im_width->signal_toggled().connect(sigc::mem_fun(*this, &studio::Widget_RendDesc::on_lock_changed));
+       toggle_im_height->signal_toggled().connect(sigc::mem_fun(*this, &studio::Widget_RendDesc::on_lock_changed));
+       toggle_im_span->signal_toggled().connect(sigc::mem_fun(*this, &studio::Widget_RendDesc::on_lock_changed));
+
+       lock_table->attach(*toggle_px_aspect, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+       lock_table->attach(*toggle_px_width, 0, 1, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);     
+       lock_table->attach(*toggle_px_height, 0, 1, 2, 3, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+
+       lock_table->attach(*toggle_im_aspect, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+       lock_table->attach(*toggle_im_width, 1, 2, 1, 2, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);     
+       lock_table->attach(*toggle_im_height, 1, 2, 2, 3, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);    
+       lock_table->attach(*toggle_im_span, 1, 2, 3, 4, Gtk::SHRINK, Gtk::SHRINK|Gtk::FILL, 0, 0);      
+
+
+       lock_frame->show_all();
+       other_frame->show_all();
+       size_frame->show_all();
+       area_frame->show_all();
+       time_frame->show_all();
+       attach(*size_frame, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);    
+       attach(*area_frame, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);    
+       attach(*lock_frame, 0, 1, 2,3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);     
+       attach(*time_frame, 0, 1, 3, 4, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);    
+       attach(*other_frame, 0, 1, 4, 5, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);   
+}
+
+Widget_RendDesc::~Widget_RendDesc()
+{
+}
+
+void Widget_RendDesc::set_rend_desc(const sinfg::RendDesc &rend_desc)
+{
+       if(update_lock)return;
+       
+       rend_desc_=rend_desc;
+       refresh();
+}
+
+void
+Widget_RendDesc::refresh()
+{
+       UpdateLock lock(update_lock);
+       adjustment_width.set_value(rend_desc_.get_w());
+       adjustment_height.set_value(rend_desc_.get_h());
+       adjustment_phy_width.set_value(METERS2INCHES(rend_desc_.get_physical_w()));
+       adjustment_phy_height.set_value(METERS2INCHES(rend_desc_.get_physical_h()));
+       adjustment_xres.set_value(DPM2DPI(rend_desc_.get_x_res()));
+       adjustment_yres.set_value(DPM2DPI(rend_desc_.get_y_res()));
+       entry_start_time->set_fps(rend_desc_.get_frame_rate());
+       entry_start_time->set_value(rend_desc_.get_time_start());
+       entry_end_time->set_fps(rend_desc_.get_frame_rate());
+       entry_end_time->set_value(rend_desc_.get_time_end());
+
+       adjustment_fps.set_value(rend_desc_.get_frame_rate());
+       adjustment_span.set_value(rend_desc_.get_span());
+       entry_tl->set_value(rend_desc_.get_tl());
+       entry_br->set_value(rend_desc_.get_br());
+       entry_focus->set_value(rend_desc_.get_focus());
+
+       toggle_px_aspect->set_active((bool)(rend_desc_.get_flags()&RendDesc::PX_ASPECT));
+       toggle_px_width->set_active((bool)(rend_desc_.get_flags()&RendDesc::PX_W));
+       toggle_px_height->set_active((bool)(rend_desc_.get_flags()&RendDesc::PX_H));
+
+       toggle_im_aspect->set_active((bool)(rend_desc_.get_flags()&RendDesc::IM_ASPECT));
+       toggle_im_width->set_active((bool)(rend_desc_.get_flags()&RendDesc::IM_W));
+       toggle_im_height->set_active((bool)(rend_desc_.get_flags()&RendDesc::IM_H));
+       toggle_im_span->set_active((bool)(rend_desc_.get_flags()&RendDesc::IM_SPAN));   
+}
+
+void Widget_RendDesc::apply_rend_desc(const sinfg::RendDesc &rend_desc)
+{
+       set_rend_desc(rend_desc);
+}
+
+const sinfg::RendDesc &
+Widget_RendDesc::get_rend_desc()
+{
+       return rend_desc_;
+}
+
+void
+Widget_RendDesc::on_width_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_w(round_to_int(adjustment_width.get_value()));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_lock_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+
+#define DO_TOGGLE(x,y) if(toggle_ ## x->get_active()) \
+               rend_desc_.set_flags(rend_desc_.get_flags()|RendDesc:: y); \
+       else \
+               rend_desc_.set_flags(rend_desc_.get_flags()&~RendDesc:: y)
+
+       DO_TOGGLE(px_aspect,PX_ASPECT);
+       DO_TOGGLE(px_width,PX_W);
+       DO_TOGGLE(px_height,PX_H);
+
+       DO_TOGGLE(im_aspect,IM_ASPECT);
+       DO_TOGGLE(im_width,IM_W);
+       DO_TOGGLE(im_height,IM_H);
+       DO_TOGGLE(im_span,IM_SPAN);
+
+#undef DO_TOGGLE
+       
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_height_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_h(round_to_int(adjustment_height.get_value()));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_phy_width_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_physical_w(INCHES2METERS(adjustment_phy_width.get_value()));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_phy_height_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_physical_h(INCHES2METERS(adjustment_phy_height.get_value()));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_xres_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_x_res(DPI2DPM(adjustment_xres.get_value()));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_yres_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_y_res(DPI2DPM(adjustment_yres.get_value()));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_start_time_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_time_start(entry_start_time->get_value());
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_end_time_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_time_end(entry_end_time->get_value());
+       refresh();
+       signal_changed()();
+}
+
+/*
+void
+Widget_RendDesc::on_start_frame_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_frame_start((int)(adjustment_start_frame.get_value()+0.5));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_end_frame_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_frame_end((int)(adjustment_end_frame.get_value()+0.5));
+       refresh();
+       signal_changed()();
+}
+*/
+
+void
+Widget_RendDesc::on_fps_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_frame_rate((int)(adjustment_fps.get_value()+0.5));
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_tl_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_tl(entry_tl->get_value());
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_br_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_br(entry_br->get_value());
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_focus_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_focus(entry_focus->get_value());
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::on_span_changed()
+{
+       if(update_lock)return;
+       UpdateLock lock(update_lock);
+       rend_desc_.set_span(adjustment_span.get_value());
+       refresh();
+       signal_changed()();
+}
+
+void
+Widget_RendDesc::disable_time_section()
+{
+       time_frame->set_sensitive(false);
+       
+/*
+       Gtk::Table::TableList &list=time_table->children();
+       Gtk::Table::TableList::iterator iter;
+       for(iter=list.begin();iter!=list.end();iter++)
+               iter->get_widget()->set_sensitive(false);
+*/     
+}
+       
+void
+Widget_RendDesc::enable_time_section()
+{
+       time_frame->set_sensitive(true);
+
+/*
+       Gtk::Table::TableList &list=time_table->children();
+       Gtk::Table::TableList::iterator iter;
+       for(iter=list.begin();iter!=list.end();iter++)
+               iter->get_widget()->set_sensitive(true);
+
+*/
+}