From e10033355e7df3cd6b2dc9799cf9423d16e3c4ce Mon Sep 17 00:00:00 2001 From: xerakko Date: Thu, 31 Aug 2006 20:16:47 +0000 Subject: [PATCH] Applied user interface rework patch by David Roden (Bombe) git-svn-id: http://svn.voria.com/code@224 1f10aa63-cdf2-0310-b900-c93c546f37ac --- synfig-studio/trunk/src/gtkmm/canvasoptions.cpp | 66 +++- synfig-studio/trunk/src/gtkmm/canvasproperties.cpp | 48 ++- synfig-studio/trunk/src/gtkmm/dialog_preview.cpp | 99 ++++- synfig-studio/trunk/src/gtkmm/dialog_preview.h | 1 + synfig-studio/trunk/src/gtkmm/renddesc.cpp | 414 ++++++++++++++------- synfig-studio/trunk/src/gtkmm/renddesc.h | 11 +- synfig-studio/trunk/src/gtkmm/render.cpp | 79 ++-- synfig-studio/trunk/src/gtkmm/toolbox.cpp | 8 +- synfig-studio/trunk/src/gtkmm/widget_vector.cpp | 9 +- synfig-studio/trunk/src/gtkmm/widget_waypoint.cpp | 124 ++++-- synfig-studio/trunk/src/gtkmm/widget_waypoint.h | 4 +- 11 files changed, 618 insertions(+), 245 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasoptions.cpp b/synfig-studio/trunk/src/gtkmm/canvasoptions.cpp index 73c49d7..c937586 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasoptions.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasoptions.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include "canvasview.h" #include "workarea.h" @@ -57,32 +58,59 @@ using namespace studio; CanvasOptions::CanvasOptions(loose_handle canvas_view): Gtk::Dialog(_("Canvas Options"),*canvas_view,false,true), canvas_view_(canvas_view), - toggle_grid_snap(_("Grid Snap")), - toggle_grid_show(_("Grid Show")), - toggle_time_snap(_("Snap-To-Frame")) + toggle_grid_snap(_("_Snap to grid"), true), + toggle_grid_show(_("S_how grid"), true), + toggle_time_snap(_("Snap to _frame"), true) { vector_grid_size.set_canvas(canvas_view->get_canvas()); + + Gtk::Alignment *dialogPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + dialogPadding->set_padding(12, 12, 12, 12); Gtk::Notebook *notebook=manage(new class Gtk::Notebook()); + dialogPadding->add(*notebook); toggle_grid_snap.signal_toggled().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_grid_snap_toggle)); toggle_grid_show.signal_toggled().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_grid_show_toggle)); - Gtk::Table *grid_page=manage(new class Gtk::Table(2,2,false)); - notebook->append_page(*grid_page,_("Grids")); - grid_page->attach(vector_grid_size, 0, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - grid_page->attach(toggle_grid_snap, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - grid_page->attach(toggle_grid_show, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - - Gtk::Table *time_page=manage(new class Gtk::Table(2,2,false)); - notebook->append_page(*time_page,_("Time")); - time_page->attach(toggle_time_snap, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - - Gtk::Table *unit_page=manage(new class Gtk::Table(2,2,false)); - notebook->append_page(*unit_page,_("Units")); - unit_page->attach(*manage(new Gtk::Label(_("Not yet implemented"))), 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - + Gtk::Alignment *gridPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + gridPadding->set_padding(12, 12, 12, 12); + notebook->append_page(*gridPadding, _("Grid")); + + Gtk::VBox *gridBox = manage(new Gtk::VBox(false, 12)); + gridPadding->add(*gridBox); + Gtk::Table *gridTable = manage(new Gtk::Table(3, 2, false)); + gridTable->set_row_spacings(6); + gridTable->set_col_spacings(12); + gridBox->pack_start(*gridTable, false, false, 0); + + Gtk::Label *gridSizeLabel = manage(new Gtk::Label(_("_Grid size"), true)); + gridSizeLabel->set_alignment(0, 0.5); + gridSizeLabel->set_mnemonic_widget(vector_grid_size); + + toggle_grid_show.set_alignment(0, 0.5); + toggle_grid_snap.set_alignment(0, 0.5); + + gridTable->attach(*gridSizeLabel, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + gridTable->attach(vector_grid_size, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + gridTable->attach(toggle_grid_show, 0, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + gridTable->attach(toggle_grid_snap, 0, 2, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Alignment *timePadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + timePadding->set_padding(12, 12, 12, 12); + notebook->append_page(*timePadding, _("Time")); + + Gtk::VBox *timeBox = manage(new Gtk::VBox(false, 12)); + timePadding->add(*timeBox); + + timeBox->pack_start(toggle_time_snap, false, false, 0); + + Gtk::Alignment *unitPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + unitPadding->set_padding(12, 12, 12, 12); + notebook->append_page(*unitPadding, _("Units")); + unitPadding->add(*manage(new Gtk::Label(_("Not yet implemented!")))); + Gtk::Button *ok_button(manage(new class Gtk::Button(Gtk::StockID("gtk-ok")))); ok_button->show(); add_action_widget(*ok_button,2); @@ -101,8 +129,8 @@ CanvasOptions::CanvasOptions(loose_handle canvas_view): //set_default_response(1); - get_vbox()->pack_start(*notebook); - notebook->show_all(); + get_vbox()->pack_start(*dialogPadding); + get_vbox()->show_all(); signal_show().connect(sigc::mem_fun(*this, &studio::CanvasOptions::refresh)); diff --git a/synfig-studio/trunk/src/gtkmm/canvasproperties.cpp b/synfig-studio/trunk/src/gtkmm/canvasproperties.cpp index 5de901c..331f8b2 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasproperties.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasproperties.cpp @@ -33,7 +33,7 @@ #include #include #include -#include +#include #include #include "metadatatreestore.h" #include @@ -62,36 +62,51 @@ CanvasProperties::CanvasProperties(Gtk::Window& parent,handleset_padding(12, 12, 12, 12); + get_vbox()->pack_start(*dialogPadding, false, false, 0); + + Gtk::VBox *dialogBox = manage(new Gtk::VBox(false, 12)); + dialogPadding->add(*dialogBox); + Gtk::Frame *info_frame=manage(new Gtk::Frame(_("Canvas Info"))); + info_frame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) info_frame->get_label_widget())->set_markup(_("Canvas Info")); + dialogBox->pack_start(*info_frame, false, false, 0); + + Gtk::Alignment *infoPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + infoPadding->set_padding(6, 0, 24, 0); + info_frame->add(*infoPadding); Gtk::Table *info_table=manage(new Gtk::Table(2,2,false)); - info_frame->add(*info_table); + info_table->set_row_spacings(6); + info_table->set_col_spacings(12); + infoPadding->add(*info_table); // The root canvas doesn't have an ID, so don't // display it if this is a root canvas. if(!canvas_interface_->get_canvas()->is_root()) { - info_table->attach(*manage(new Gtk::Label(_("ID"))), 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + Gtk::Label *idLabel = manage(new Gtk::Label(_("_ID"), true)); + idLabel->set_alignment(0, 0.5); + idLabel->set_mnemonic_widget(entry_id); + info_table->attach(*idLabel, 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); info_table->attach(entry_id, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); } - info_table->attach(*manage(new Gtk::Label(_("Name"))), 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - info_table->attach(*manage(new Gtk::Label(_("Description"))), 0, 1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + Gtk::Label *nameLabel = manage(new Gtk::Label(_("_Name"), true)); + nameLabel->set_alignment(0, 0.5); + nameLabel->set_mnemonic_widget(entry_name); + Gtk::Label *descriptionLabel = manage(new Gtk::Label(_("_Description"), true)); + descriptionLabel->set_alignment(0, 0.5); + descriptionLabel->set_mnemonic_widget(entry_description); + info_table->attach(*nameLabel, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + info_table->attach(*descriptionLabel, 0, 1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); info_table->attach(entry_name, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); info_table->attach(entry_description, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - info_frame->show_all(); - - get_vbox()->pack_start(*info_frame); - - Gtk::Notebook* notebook(manage(new Gtk::Notebook())); - notebook->show(); - notebook->append_page(widget_rend_desc,_("RendDesc")); - //notebook->append_page(create_meta_data_view(),_("MetaData")); - - get_vbox()->pack_start(*notebook); + dialogBox->pack_start(widget_rend_desc, false, false, 0); canvas_interface_->signal_rend_desc_changed().connect(sigc::mem_fun(*this,&studio::CanvasProperties::refresh)); @@ -112,6 +127,7 @@ CanvasProperties::CanvasProperties(Gtk::Window& parent,handleshow_all(); refresh(); update_title(); diff --git a/synfig-studio/trunk/src/gtkmm/dialog_preview.cpp b/synfig-studio/trunk/src/gtkmm/dialog_preview.cpp index a1e6e00..d1b9e15 100644 --- a/synfig-studio/trunk/src/gtkmm/dialog_preview.cpp +++ b/synfig-studio/trunk/src/gtkmm/dialog_preview.cpp @@ -32,7 +32,9 @@ #include "dialog_preview.h" #include "preview.h" #include - +#include +#include +#include #endif /* === U S I N G =========================================================== */ @@ -84,40 +86,93 @@ Dialog_PreviewOptions::Dialog_PreviewOptions() :Dialog(_("Preview Options"),false,true), adj_zoom(0.5,0.1,5.0,0.1,0.2), adj_fps(15,1,120,1,5), -check_overbegin(_("Begin Time"),false), -check_overend(_("End Time"),false), +check_overbegin(_("_Begin Time"),false), +check_overend(_("_End Time"),false), settings(this,"prevoptions") { //framerate = 15.0f; //zoom = 0.2f; //set the fps of the time widgets - Gtk::Table *ot = manage(new class Gtk::Table); + Gtk::Alignment *dialogPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + dialogPadding->set_padding(12, 12, 12, 12); + get_vbox()->add(*dialogPadding); + + Gtk::VBox *dialogBox = manage(new Gtk::VBox(false, 12)); + dialogPadding->add(*dialogBox); + + Gtk::Frame *generalFrame = manage(new Gtk::Frame(_("General Settings"))); + generalFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) generalFrame->get_label_widget())->set_markup(_("General Settings")); + dialogBox->pack_start(*generalFrame, false, false, 0); + + Gtk::Alignment *generalPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + generalPadding->set_padding(6, 0, 24, 0); + generalFrame->add(*generalPadding); - ot->attach(*manage(new class Gtk::Label(_("Zoom"))),0,1,0,1); - ot->attach(*manage(new class Gtk::Label(_("FPS"))),1,2,0,1); + Gtk::Table *generalTable = manage(new Gtk::Table(2, 2, false)); + generalTable->set_row_spacings(6); + generalTable->set_col_spacings(12); + generalPadding->add(*generalTable); + + Gtk::Label *zoomLabel = manage(new Gtk::Label(_("_Zoom"))); + zoomLabel->set_alignment(0, 0.5); + zoomLabel->set_use_underline(TRUE); + Gtk::SpinButton *zoomSpinner = manage(new Gtk::SpinButton(adj_zoom, 0.1, 2)); + zoomLabel->set_mnemonic_widget(*zoomSpinner); + zoomSpinner->set_alignment(1); + generalTable->attach(*zoomLabel, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + generalTable->attach(*zoomSpinner, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *fpsLabel = manage(new Gtk::Label(_("_Frames per second"))); + fpsLabel->set_alignment(0, 0.5); + fpsLabel->set_use_underline(TRUE); + Gtk::SpinButton *fpsSpinner = manage(new Gtk::SpinButton(adj_fps, 1, 1)); + fpsLabel->set_mnemonic_widget(*fpsSpinner); + fpsSpinner->set_alignment(1); + generalTable->attach(*fpsLabel, 0, 1, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + generalTable->attach(*fpsSpinner, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); - ot->attach(*manage(new class Gtk::SpinButton(adj_zoom,0.1,2)),0,1,1,2); - ot->attach(*manage(new class Gtk::SpinButton(adj_fps,1,1)),1,2,1,2); + Gtk::Frame *timeFrame = manage(new Gtk::Frame(_("Time Settings"))); + timeFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) timeFrame->get_label_widget())->set_markup(_("Time Settings")); + dialogBox->pack_start(*timeFrame, false, false, 0); + + Gtk::Alignment *timePadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + timePadding->set_padding(6, 0, 24, 0); + timeFrame->add(*timePadding); + + Gtk::Table *timeTable = manage(new Gtk::Table(2, 2, false)); + timeTable->set_row_spacings(6); + timeTable->set_col_spacings(12); + timePadding->add(*timeTable); + + check_overbegin.set_alignment(0, 0.5); + check_overbegin.set_use_underline(TRUE); + check_overend.set_alignment(0, 0.5); + check_overend.set_use_underline(TRUE); + time_begin.set_alignment(1); + time_end.set_alignment(1); + timeTable->attach(check_overbegin, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + timeTable->attach(time_begin, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + timeTable->attach(check_overend, 0, 1, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + timeTable->attach(time_end, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); - ot->attach(check_overbegin,0,1,2,3); - ot->attach(check_overend,1,2,2,3); check_overbegin.signal_toggled().connect(sigc::mem_fun(*this,&Dialog_PreviewOptions::on_overbegin_toggle)); check_overend.signal_toggled().connect(sigc::mem_fun(*this,&Dialog_PreviewOptions::on_overend_toggle)); - ot->attach(time_begin,0,1,3,4); - ot->attach(time_end,1,2,3,4); - - Gtk::Button *okbutton = manage(new Gtk::Button(_("Preview"))); + Gtk::Button *cancelButton = manage(new Gtk::Button(Gtk::StockID("gtk-cancel"))); + cancelButton->signal_clicked().connect(sigc::mem_fun(*this, &Dialog_PreviewOptions::on_cancel_pressed)); + add_action_widget(*cancelButton, 1); + + Gtk::Button *okbutton = manage(new Gtk::Button(Gtk::StockID("gtk-go-forward"))); + okbutton->set_label(_("Preview")); okbutton->signal_clicked().connect(sigc::mem_fun(*this,&Dialog_PreviewOptions::on_ok_pressed)); - ot->attach(*okbutton,0,2,4,5); - - ot->show_all(); - - get_vbox()->pack_start(*ot); + add_action_widget(*okbutton, 0); time_begin.set_sensitive(false); time_end.set_sensitive(false); + show_all(); } Dialog_PreviewOptions::~Dialog_PreviewOptions() @@ -139,6 +194,12 @@ void Dialog_PreviewOptions::on_ok_pressed() signal_finish_.clear(); } +void +Dialog_PreviewOptions::on_cancel_pressed() +{ + hide(); +} + void Dialog_PreviewOptions::on_overbegin_toggle() { time_begin.set_sensitive(get_begin_override()); diff --git a/synfig-studio/trunk/src/gtkmm/dialog_preview.h b/synfig-studio/trunk/src/gtkmm/dialog_preview.h index a2272b5..b65c121 100644 --- a/synfig-studio/trunk/src/gtkmm/dialog_preview.h +++ b/synfig-studio/trunk/src/gtkmm/dialog_preview.h @@ -90,6 +90,7 @@ class Dialog_PreviewOptions : public Gtk::Dialog // for finishing void on_ok_pressed(); + void on_cancel_pressed(); //for ui stuff void on_overbegin_toggle(); diff --git a/synfig-studio/trunk/src/gtkmm/renddesc.cpp b/synfig-studio/trunk/src/gtkmm/renddesc.cpp index 49a7ef3..5d7cb63 100644 --- a/synfig-studio/trunk/src/gtkmm/renddesc.cpp +++ b/synfig-studio/trunk/src/gtkmm/renddesc.cpp @@ -32,6 +32,8 @@ #include "renddesc.h" #include #include +#include +#include #include #include //#include @@ -76,7 +78,7 @@ using namespace studio; /* === M E T H O D S ======================================================= */ Widget_RendDesc::Widget_RendDesc(): - Gtk::Table(1,2,false), + Gtk::Notebook(), adjustment_width(1,1,SYNFIG_MAX_PIXEL_WIDTH), adjustment_height(1,1,SYNFIG_MAX_PIXEL_HEIGHT), adjustment_xres(0,0,10000000), @@ -87,135 +89,19 @@ Widget_RendDesc::Widget_RendDesc(): 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); + create_widgets(); + connect_signals(); + + Gtk::Label *image_tab_label = manage(new Gtk::Label(_("Image"))); + Gtk::Label *time_tab_label = manage(new Gtk::Label(_("Time"))); + Gtk::Label *other_tab_label = manage(new Gtk::Label(_("Other"))); + Gtk::Widget *imageTab = create_image_tab(); + Gtk::Widget *timeTab = create_time_tab(); + Gtk::Widget *otherTab = create_other_tab(); + append_page(*imageTab, *image_tab_label); + append_page(*timeTab, *time_tab_label); + append_page(*otherTab, *other_tab_label); } Widget_RendDesc::~Widget_RendDesc() @@ -225,7 +111,7 @@ Widget_RendDesc::~Widget_RendDesc() void Widget_RendDesc::set_rend_desc(const synfig::RendDesc &rend_desc) { if(update_lock)return; - + rend_desc_=rend_desc; refresh(); } @@ -258,7 +144,7 @@ Widget_RendDesc::refresh() 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)); + toggle_im_span->set_active((bool)(rend_desc_.get_flags()&RendDesc::IM_SPAN)); } void Widget_RendDesc::apply_rend_desc(const synfig::RendDesc &rend_desc) @@ -303,7 +189,7 @@ Widget_RendDesc::on_lock_changed() DO_TOGGLE(im_span,IM_SPAN); #undef DO_TOGGLE - + refresh(); signal_changed()(); } @@ -454,15 +340,15 @@ 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() { @@ -476,3 +362,261 @@ Widget_RendDesc::enable_time_section() */ } + +void +Widget_RendDesc::create_widgets() +{ + entry_width=manage(new Gtk::SpinButton(adjustment_width,1,0)); + entry_width->set_alignment(1); + entry_height=manage(new Gtk::SpinButton(adjustment_height,1,0)); + entry_height->set_alignment(1); + entry_xres=manage(new Gtk::SpinButton(adjustment_xres,0.5,1)); + entry_xres->set_alignment(1); + entry_yres=manage(new Gtk::SpinButton(adjustment_yres,0.5,1)); + entry_yres->set_alignment(1); + entry_phy_width=manage(new Gtk::SpinButton(adjustment_phy_width,0.25,2)); + entry_phy_width->set_alignment(1); + entry_phy_height=manage(new Gtk::SpinButton(adjustment_phy_height,0.25,2)); + entry_phy_height->set_alignment(1); + entry_span=manage(new Gtk::SpinButton(adjustment_span,0.1,4)); + entry_span->set_alignment(1); + entry_tl=manage(new Widget_Vector()); + entry_br=manage(new Widget_Vector()); + 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_focus=manage(new Widget_Vector()); + toggle_px_aspect=manage(new Gtk::CheckButton(_("_Pixel Aspect"), true)); + toggle_px_aspect->set_alignment(0, 0.5); + toggle_px_width=manage(new Gtk::CheckButton(_("Pi_xel Width"), true)); + toggle_px_width->set_alignment(0, 0.5); + toggle_px_height=manage(new Gtk::CheckButton(_("Pix_el Height"), true)); + toggle_px_height->set_alignment(0, 0.5); + toggle_im_aspect=manage(new Gtk::CheckButton(_("Image _Aspect"), true)); + toggle_im_aspect->set_alignment(0, 0.5); + toggle_im_width=manage(new Gtk::CheckButton(_("Image _Width"), true)); + toggle_im_width->set_alignment(0, 0.5); + toggle_im_height=manage(new Gtk::CheckButton(_("Image _Height"), true)); + toggle_im_height->set_alignment(0, 0.5); + toggle_im_span=manage(new Gtk::CheckButton(_("Image _Span"), true)); + toggle_im_span->set_alignment(0, 0.5); + time_frame=manage(new Gtk::Frame(_("Time"))); +} + +void +Widget_RendDesc::connect_signals() +{ + 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)); + 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)); + 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)); + entry_span->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_span_changed)); + 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)); + 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)); + entry_focus->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_RendDesc::on_focus_changed)); + 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)); +} + +Gtk::Widget * +Widget_RendDesc::create_image_tab() +{ + Gtk::Alignment *paddedPanel = manage(new Gtk::Alignment(0, 0, 1, 1)); + paddedPanel->set_padding(12, 12, 12, 12); + + Gtk::VBox *panelBox = manage(new Gtk::VBox(false, 12)); + paddedPanel->add(*panelBox); + + Gtk::Frame *imageFrame = manage(new Gtk::Frame(_("Image Size"))); + imageFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) imageFrame->get_label_widget())->set_markup(_("Image Size")); + panelBox->pack_start(*imageFrame, false, false, 0); + + Gtk::Alignment *tablePadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + tablePadding->set_padding(6, 0, 24, 0); + Gtk::Table *imageSizeTable = manage(new Gtk::Table(2, 6, false)); + imageSizeTable->set_row_spacings(6); + imageSizeTable->set_col_spacings(12); + tablePadding->add(*imageSizeTable); + imageFrame->add(*tablePadding); + + Gtk::Label *size_width_label = manage(new Gtk::Label(_("_Width"), 0, 0.5, true)); + size_width_label->set_mnemonic_widget(*entry_width); + + Gtk::Label *size_height_label = manage(new Gtk::Label(_("_Height"), 0, 0.5, true)); + size_height_label->set_mnemonic_widget(*entry_height); + + Gtk::Label *size_xres_label = manage(new Gtk::Label(_("_XRes"), 0, 0.5, true)); + size_xres_label->set_mnemonic_widget(*entry_xres); + + Gtk::Label *size_yres_label = manage(new Gtk::Label(_("_YRes"), 0, 0.5, true)); + size_yres_label->set_mnemonic_widget(*entry_yres); + + Gtk::Label *size_physwidth_label = manage(new Gtk::Label(_("_Physical Width"), 0, 0.5, true)); + size_physwidth_label->set_mnemonic_widget(*entry_phy_width); + + Gtk::Label *size_physheight_label = manage(new Gtk::Label(_("Phy_sical Height"), 0, 0.5, true)); + size_physheight_label->set_mnemonic_widget(*entry_phy_height); + + Gtk::Label *size_span = manage(new Gtk::Label(_("I_mage Span"), 0, 0.5, true)); + size_span->set_mnemonic_widget(*entry_span); + + imageSizeTable->attach(*size_width_label, 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + imageSizeTable->attach(*size_height_label, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + imageSizeTable->attach(*entry_width, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + imageSizeTable->attach(*entry_height, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + + imageSizeTable->attach(*size_xres_label, 2, 3, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageSizeTable->attach(*size_yres_label, 2, 3, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageSizeTable->attach(*entry_xres, 3, 4, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageSizeTable->attach(*entry_yres, 3, 4, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + imageSizeTable->attach(*size_physwidth_label, 4, 5, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageSizeTable->attach(*size_physheight_label, 4, 5, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageSizeTable->attach(*entry_phy_width, 5, 6, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageSizeTable->attach(*entry_phy_height, 5, 6, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + imageSizeTable->attach(*size_span, 0, 1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + imageSizeTable->attach(*entry_span, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + + Gtk::Frame *imageAreaFrame = manage(new Gtk::Frame(_("Image Area"))); + imageAreaFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) imageAreaFrame->get_label_widget())->set_markup(_("Image Area")); + panelBox->pack_start(*imageAreaFrame, false, false, 0); + + Gtk::Alignment *imageAreaPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + imageAreaPadding->set_padding(6, 0, 24, 0); + imageAreaFrame->add(*imageAreaPadding); + + Gtk::Table *imageAreaTable = manage(new Gtk::Table(2, 2, false)); + imageAreaTable->set_row_spacings(6); + imageAreaTable->set_col_spacings(12); + imageAreaPadding->add(*imageAreaTable); + + Gtk::Label *imageAreaTopLeftLabel = manage(new Gtk::Label(_("_Top Left"), 0, 0.5, true)); + imageAreaTopLeftLabel->set_mnemonic_widget(*entry_tl); + + Gtk::Label *imageAreaBottomRightLabel = manage(new Gtk::Label(_("_Bottom Right"), 0, 0.5, true)); + imageAreaBottomRightLabel->set_mnemonic_widget(*entry_br); + + imageAreaTable->attach(*imageAreaTopLeftLabel, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageAreaTable->attach(*imageAreaBottomRightLabel, 0, 1, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageAreaTable->attach(*entry_tl, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + imageAreaTable->attach(*entry_br, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + paddedPanel->show_all(); + return paddedPanel; +} + +Gtk::Widget * +Widget_RendDesc::create_time_tab() +{ + Gtk::Alignment *paddedPanel = manage(new Gtk::Alignment(0, 0, 1, 1)); + paddedPanel->set_padding(12, 12, 12, 12); + + Gtk::VBox *panelBox = manage(new Gtk::VBox(false, 12)); // for future widgets + paddedPanel->add(*panelBox); + + Gtk::Frame *time_frame = manage(new Gtk::Frame("Time Settings")); + time_frame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) time_frame->get_label_widget())->set_markup("Time Settings"); + panelBox->pack_start(*time_frame, false, false, 0); + + Gtk::Alignment *timeFramePadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + timeFramePadding->set_padding(6, 0, 24, 0); + time_frame->add(*timeFramePadding); + + Gtk::Table *timeFrameTable = manage(new Gtk::Table(3, 2, false)); + timeFrameTable->set_row_spacings(6); + timeFrameTable->set_col_spacings(12); + timeFramePadding->add(*timeFrameTable); + + Gtk::Label *timeFPSLabel = manage(new Gtk::Label(_("_Frames per second"), 0, 0.5, true)); + timeFPSLabel->set_mnemonic_widget(*entry_fps); + timeFrameTable->attach(*timeFPSLabel, 0, 1, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + timeFrameTable->attach(*entry_fps, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *timeStartLabel = manage(new Gtk::Label(_("_Start Time"), 0, 0.5, true)); + timeStartLabel->set_mnemonic_widget(*entry_start_time); + timeFrameTable->attach(*timeStartLabel, 0, 1, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + timeFrameTable->attach(*entry_start_time, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *timeEndLabel = manage(new Gtk::Label(_("_End Time"), 0, 0.5, true)); + timeEndLabel->set_mnemonic_widget(*entry_end_time); + timeFrameTable->attach(*timeEndLabel, 0, 1, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + timeFrameTable->attach(*entry_end_time, 1, 2, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + paddedPanel->show_all(); + return paddedPanel; +} + +Gtk::Widget * +Widget_RendDesc::create_other_tab() +{ + Gtk::Alignment *paddedPanel = manage(new Gtk::Alignment(0, 0, 1, 1)); + paddedPanel->set_padding(12, 12, 12, 12); + + Gtk::VBox *panelBox = manage(new Gtk::VBox(false, 12)); + paddedPanel->add(*panelBox); + + Gtk::Frame *lockFrame = manage(new Gtk::Frame(_("Locks and Links"))); + lockFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) lockFrame->get_label_widget())->set_markup(_("Locks and Links")); + panelBox->pack_start(*lockFrame, false, false, 0); + + Gtk::Alignment *lockPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + lockPadding->set_padding(6, 0, 24, 0); + lockFrame->add(*lockPadding); + + Gtk::Table *lockTable = manage(new Gtk::Table(2, 4, false)); + lockTable->set_row_spacings(6); + lockTable->set_col_spacings(12); + lockPadding->add(*lockTable); + + lockTable->attach(*toggle_im_width, 0, 1, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + lockTable->attach(*toggle_im_height, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + lockTable->attach(*toggle_im_aspect, 2, 3, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + lockTable->attach(*toggle_im_span, 3, 4, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + lockTable->attach(*toggle_px_width, 0, 1, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + lockTable->attach(*toggle_px_height, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + lockTable->attach(*toggle_px_aspect, 2, 3, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Frame *focusFrame = manage(new Gtk::Frame(_("Focus Point"))); + focusFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) focusFrame->get_label_widget())->set_markup(_("Focus Point")); + panelBox->pack_start(*focusFrame, false, false, 0); + + Gtk::Alignment *focusPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + focusPadding->set_padding(6, 0, 24, 0); + focusFrame->add(*focusPadding); + + Gtk::HBox *focusBox = manage(new Gtk::HBox(false, 12)); + focusPadding->add(*focusBox); + + Gtk::Label *focusLabel = manage(new Gtk::Label(_("_Focus Point"), 0, 0.5, true)); + focusLabel->set_mnemonic_widget(*entry_focus); + focusBox->pack_start(*focusLabel, false, false, 0); + focusBox->pack_start(*entry_focus, true, true, 0); + + paddedPanel->show_all(); + return paddedPanel; +} + +/* + * vim:ts=4:sw=4 + */ diff --git a/synfig-studio/trunk/src/gtkmm/renddesc.h b/synfig-studio/trunk/src/gtkmm/renddesc.h index 88e78f1..a6c688d 100644 --- a/synfig-studio/trunk/src/gtkmm/renddesc.h +++ b/synfig-studio/trunk/src/gtkmm/renddesc.h @@ -32,6 +32,7 @@ #include #include #include +#include #include "widget_vector.h" #include "widget_time.h" @@ -43,7 +44,7 @@ namespace studio { -class Widget_RendDesc : public Gtk::Table +class Widget_RendDesc : public Gtk::Notebook { synfig::RendDesc rend_desc_; sigc::signal signal_changed_; @@ -83,7 +84,7 @@ class Widget_RendDesc : public Gtk::Table Gtk::CheckButton *toggle_im_height; Gtk::CheckButton *toggle_im_span; - Gtk::Table *time_table; + /* Gtk::Table *time_table; */ Gtk::Frame *time_frame; Widget_Vector *entry_tl; @@ -142,6 +143,12 @@ private: void on_lock_changed(); void on_focus_changed(); void on_span_changed(); + + void create_widgets(); + void connect_signals(); + Gtk::Widget *create_image_tab(); + Gtk::Widget *create_time_tab(); + Gtk::Widget *create_other_tab(); }; }; // END of namespace studio diff --git a/synfig-studio/trunk/src/gtkmm/render.cpp b/synfig-studio/trunk/src/gtkmm/render.cpp index ac6e907..9c25a77 100644 --- a/synfig-studio/trunk/src/gtkmm/render.cpp +++ b/synfig-studio/trunk/src/gtkmm/render.cpp @@ -32,6 +32,7 @@ #include "render.h" #include "app.h" #include +#include #include #include #include "asyncrenderer.h" @@ -60,7 +61,7 @@ RenderSettings::RenderSettings(Gtk::Window& parent,handleset_padding(12, 12, 12, 12); + get_vbox()->pack_start(*dialogPadding, false, false, 0); + + Gtk::VBox *dialogBox = manage(new Gtk::VBox(false, 12)); + dialogPadding->add(*dialogBox); Gtk::Button *choose_button(manage(new class Gtk::Button(Gtk::StockID(_("Choose..."))))); choose_button->show(); choose_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::RenderSettings::on_choose_pressed)); Gtk::Frame *target_frame=manage(new Gtk::Frame(_("Target"))); - Gtk::Table *target_table=manage(new Gtk::Table(2,2,false)); - target_frame->add(*target_table); - target_table->attach(*manage(new Gtk::Label(_("Filename"))), 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - target_table->attach(entry_filename, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + target_frame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) target_frame->get_label_widget())->set_markup(_("Target")); + dialogBox->pack_start(*target_frame); + Gtk::Alignment *targetPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + targetPadding->set_padding(6, 0, 24, 0); + target_frame->add(*targetPadding); + + Gtk::Table *target_table = manage(new Gtk::Table(2, 3, false)); + target_table->set_row_spacings(6); + target_table->set_col_spacings(12); + targetPadding->add(*target_table); + + Gtk::Label *filenameLabel = manage(new Gtk::Label(_("_Filename"), true)); + filenameLabel->set_alignment(0, 0.5); + filenameLabel->set_mnemonic_widget(entry_filename); + target_table->attach(*filenameLabel, 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + target_table->attach(entry_filename, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); target_table->attach(*choose_button, 2, 3, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - target_table->attach(*manage(new Gtk::Label(_("Target"))), 3, 4, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - target_table->attach(optionmenu_target, 4, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - get_vbox()->pack_start(*target_frame); + + Gtk::Label *targetLabel = manage(new Gtk::Label(_("_Target"), true)); + targetLabel->set_alignment(0, 0.5); + targetLabel->set_mnemonic_widget(optionmenu_target); + target_table->attach(*targetLabel, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + target_table->attach(optionmenu_target, 1, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); toggle_single_frame.signal_toggled().connect(sigc::mem_fun(*this, &studio::RenderSettings::on_single_frame_toggle)); - Gtk::Frame *settings_frame=manage(new Gtk::Frame(_("Settings"))); + settings_frame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) settings_frame->get_label_widget())->set_markup(_("Settings")); + dialogBox->pack_start(*settings_frame); + + Gtk::Alignment *settingsPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + settingsPadding->set_padding(6, 0, 24, 0); + settings_frame->add(*settingsPadding); + Gtk::Table *settings_table=manage(new Gtk::Table(2,2,false)); - settings_frame->add(*settings_table); - settings_table->attach(*manage(new Gtk::Label(_("Quality"))), 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + settings_table->set_row_spacings(6); + settings_table->set_col_spacings(12); + settingsPadding->add(*settings_table); + + Gtk::Label *qualityLabel = manage(new Gtk::Label(_("_Quality"), true)); + qualityLabel->set_alignment(0, 0.5); + qualityLabel->set_mnemonic_widget(entry_quality); + settings_table->attach(*qualityLabel, 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); settings_table->attach(entry_quality, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - settings_table->attach(*manage(new Gtk::Label(_("Anti-Alias"))), 2, 3, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - settings_table->attach(entry_antialias, 3, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - settings_table->attach(toggle_single_frame, 4, 5, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - get_vbox()->pack_start(*settings_frame); - - + Gtk::Label *antiAliasLabel = manage(new Gtk::Label(_("_Anti-Aliasing"), true)); + antiAliasLabel->set_alignment(0, 0.5); + antiAliasLabel->set_mnemonic_widget(entry_antialias); + settings_table->attach(*antiAliasLabel, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + settings_table->attach(entry_antialias, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); + + toggle_single_frame.set_alignment(0, 0.5); + settings_table->attach(toggle_single_frame, 0, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - get_vbox()->pack_start(widget_rend_desc); + dialogBox->pack_start(widget_rend_desc); Gtk::Button *render_button(manage(new class Gtk::Button(Gtk::StockID("Render")))); diff --git a/synfig-studio/trunk/src/gtkmm/toolbox.cpp b/synfig-studio/trunk/src/gtkmm/toolbox.cpp index 2edd9d5..880dd11 100644 --- a/synfig-studio/trunk/src/gtkmm/toolbox.cpp +++ b/synfig-studio/trunk/src/gtkmm/toolbox.cpp @@ -193,11 +193,11 @@ Toolbox::Toolbox(): { GRAB_HINT_DATA( "toolbox", -#ifdef __APPLE__ +//#ifdef __APPLE__ Gdk::WINDOW_TYPE_HINT_NORMAL -#else - Gdk::WINDOW_TYPE_HINT_UTILITY -#endif +//#else +// Gdk::WINDOW_TYPE_HINT_UTILITY +//#endif ); set_keep_above(false); set_role("toolbox"); diff --git a/synfig-studio/trunk/src/gtkmm/widget_vector.cpp b/synfig-studio/trunk/src/gtkmm/widget_vector.cpp index 98b1152..e99b3a3 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_vector.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_vector.cpp @@ -53,16 +53,19 @@ using namespace studio; /* === M E T H O D S ======================================================= */ Widget_Vector::Widget_Vector(): + Gtk::HBox(false, 5), x_adjustment(0,-100000000,100000000,0.05,0.05,0.05), y_adjustment(0,-100000000,100000000,0.05,0.05,0.05) { Gtk::Label *label; - label=manage(new class Gtk::Label("x:")); + label=manage(new class Gtk::Label("X:")); + label->set_alignment(0, 0.5); label->show(); pack_start(*label, Gtk::PACK_SHRINK); spinbutton_x=manage(new class Gtk::SpinButton(x_adjustment,0.05,DIGITS)); + spinbutton_x->set_alignment(1); spinbutton_x->set_update_policy(Gtk::UPDATE_ALWAYS); spinbutton_x->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_Vector::on_value_changed)); pack_start(*spinbutton_x, Gtk::PACK_EXPAND_WIDGET); @@ -73,11 +76,13 @@ Widget_Vector::Widget_Vector(): distance_x->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_Vector::on_value_changed)); pack_start(*distance_x, Gtk::PACK_EXPAND_WIDGET); - label=manage(new class Gtk::Label("y:")); + label=manage(new class Gtk::Label("Y:")); + label->set_alignment(0, 0.5); label->show(); pack_start(*label, Gtk::PACK_SHRINK); spinbutton_y=manage(new class Gtk::SpinButton(y_adjustment,0.05,DIGITS)); + spinbutton_y->set_alignment(1); spinbutton_y->set_update_policy(Gtk::UPDATE_ALWAYS); spinbutton_y->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_Vector::on_value_changed)); spinbutton_y->signal_activate().connect(sigc::mem_fun(*this,&studio::Widget_Vector::activate)); diff --git a/synfig-studio/trunk/src/gtkmm/widget_waypoint.cpp b/synfig-studio/trunk/src/gtkmm/widget_waypoint.cpp index 0f9dca2..054fd14 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_waypoint.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_waypoint.cpp @@ -30,6 +30,8 @@ #endif #include +#include +#include #include "dialog_waypoint.h" #include #include @@ -57,7 +59,7 @@ using namespace studio; /* === M E T H O D S ======================================================= */ Widget_Waypoint::Widget_Waypoint(etl::handle canvas): - Gtk::Table(4,3,false), + Gtk::Alignment(0, 0, 1, 1), waypoint(synfig::ValueBase(),0), adj_tension(0.0,-20,20,0.1,1), adj_continuity(0.0,-20,20,0.1,1), @@ -108,34 +110,108 @@ Widget_Waypoint::Widget_Waypoint(etl::handle canvas): spin_temporal_tension=manage(new class Gtk::SpinButton(adj_temporal_tension,0.1,3)); spin_temporal_tension->show(); + set_padding(12, 12, 12, 12); - Gtk::HBox *hbox(manage(new Gtk::HBox())); - hbox->show(); - hbox->pack_start(*value_widget); - hbox->pack_start(*value_node_label); + Gtk::VBox *widgetBox = manage(new Gtk::VBox(false, 12)); + add(*widgetBox); - attach(*manage(new Gtk::Label(_("ValueBase:"))), 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - //attach(*value_widget, 1, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - //attach(*value_node_label, 0, 4, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - attach(*manage(new Gtk::Label(_("Time:"))), 0, 1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - attach(*time_widget, 1, 4, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - attach(*manage(new Gtk::Label(_("In:"))), 0, 1, 3, 4, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - attach(*before, 1, 2, 3, 4, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - attach(*manage(new Gtk::Label(_("Out:"))), 2, 3, 3, 4, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - attach(*after, 3, 4, 3, 4, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - - attach(*manage(new Gtk::Label(_("Tension:"))), 0, 1, 4, 5, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - attach(*spin_tension, 1, 2, 4, 5, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - attach(*manage(new Gtk::Label(_("Continuity:"))), 2, 3, 4, 5, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - attach(*spin_continuity, 3, 4, 4, 5, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - attach(*manage(new Gtk::Label(_("Bias:"))), 0, 1, 5, 6, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - attach(*spin_bias, 1, 2, 5, 6, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - attach(*manage(new Gtk::Label(_("Temporal Tension:"))), 2, 3, 5, 6, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0); - attach(*spin_temporal_tension, 3, 4, 5, 6, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + Gtk::Frame *waypointFrame = manage(new Gtk::Frame(_("Waypoint"))); + waypointFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) waypointFrame->get_label_widget())->set_markup(_("Waypoint")); + widgetBox->pack_start(*waypointFrame, false, false, 0); + + Gtk::Alignment *waypointPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + waypointPadding->set_padding(6, 0, 24, 0); + waypointFrame->add(*waypointPadding); + + Gtk::Table *waypointTable = manage(new Gtk::Table(2, 2, false)); + waypointTable->set_row_spacings(6); + waypointTable->set_col_spacings(12); + waypointPadding->add(*waypointTable); + + Gtk::Label *waypointValueLabel = manage(new Gtk::Label(_("_Value"), true)); + waypointValueLabel->set_alignment(0, 0.5); + waypointValueLabel->set_mnemonic_widget(*value_widget); + waypointTable->attach(*waypointValueLabel, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + waypointTable->attach(*value_widget, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *waypointTimeLabel = manage(new Gtk::Label(_("_Time"), true)); + waypointTimeLabel->set_alignment(0, 0.5); + waypointTimeLabel->set_mnemonic_widget(*time_widget); + waypointTable->attach(*waypointTimeLabel, 0, 1, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + waypointTable->attach(*time_widget, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Frame *interpolationFrame = manage(new Gtk::Frame(_("Interpolation"))); + interpolationFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) interpolationFrame->get_label_widget())->set_markup(_("Interpolation")); + widgetBox->pack_start(*interpolationFrame, false, false, 0); + + Gtk::Alignment *interpolationPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + interpolationPadding->set_padding(6, 0, 24, 0); + interpolationFrame->add(*interpolationPadding); + + Gtk::Table *interpolationTable = manage(new Gtk::Table(2, 2, false)); + interpolationTable->set_row_spacings(6); + interpolationTable->set_col_spacings(12); + interpolationPadding->add(*interpolationTable); + + Gtk::Label *interpolationInLabel = manage(new Gtk::Label(_("_In Interpolation"), true)); + interpolationInLabel->set_alignment(0, 0.5); + interpolationInLabel->set_mnemonic_widget(*before); + interpolationTable->attach(*interpolationInLabel, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + interpolationTable->attach(*before, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *interpolationOutLabel = manage(new Gtk::Label(_("_Out Interpolation"), true)); + interpolationOutLabel->set_alignment(0, 0.5); + interpolationOutLabel->set_mnemonic_widget(*after); + interpolationTable->attach(*interpolationOutLabel, 0, 1, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + interpolationTable->attach(*after, 1, 2, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Frame *tcbFrame = manage(new Gtk::Frame(_("TCB Parameters"))); + tcbFrame->set_shadow_type(Gtk::SHADOW_NONE); + ((Gtk::Label *) tcbFrame->get_label_widget())->set_markup(_("TCB Parameter")); + widgetBox->pack_start(*tcbFrame, false, false, 0); + + Gtk::Alignment *tcbPadding = manage(new Gtk::Alignment(0, 0, 1, 1)); + tcbPadding->set_padding(6, 0, 24, 0); + tcbFrame->add(*tcbPadding); + + Gtk::Table *tcbTable = manage(new Gtk::Table(4, 2, false)); + tcbTable->set_row_spacings(6); + tcbTable->set_col_spacings(12); + tcbPadding->add(*tcbTable); + + Gtk::Label *tensionLabel = manage(new Gtk::Label(_("T_ension"), true)); + tensionLabel->set_alignment(0, 0.5); + tensionLabel->set_mnemonic_widget(*spin_tension); + spin_tension->set_alignment(1); + tcbTable->attach(*tensionLabel, 0, 1, 0, 1, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + tcbTable->attach(*spin_tension, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *continuityLabel = manage(new Gtk::Label(_("_Continuity"), true)); + continuityLabel->set_alignment(0, 0.5); + continuityLabel->set_mnemonic_widget(*spin_continuity); + spin_continuity->set_alignment(1); + tcbTable->attach(*continuityLabel, 0, 1, 1, 2, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + tcbTable->attach(*spin_continuity, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *biasLabel = manage(new Gtk::Label(_("_Bias"), true)); + biasLabel->set_alignment(0, 0.5); + biasLabel->set_mnemonic_widget(*spin_bias); + spin_bias->set_alignment(1); + tcbTable->attach(*biasLabel, 0, 1, 2, 3, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + tcbTable->attach(*spin_bias, 1, 2, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + + Gtk::Label *temporalTensionLabel = manage(new Gtk::Label(_("Te_mporal Tension"), true)); + temporalTensionLabel->set_alignment(0, 0.5); + temporalTensionLabel->set_mnemonic_widget(*spin_temporal_tension); + spin_temporal_tension->set_alignment(1); + tcbTable->attach(*temporalTensionLabel, 0, 1, 3, 4, Gtk::SHRINK | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); + tcbTable->attach(*spin_temporal_tension, 1, 2, 3, 4, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); show_all(); hide(); - attach(*hbox, 1, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); + //attach(*hbox, 1, 4, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); set_canvas(canvas); } diff --git a/synfig-studio/trunk/src/gtkmm/widget_waypoint.h b/synfig-studio/trunk/src/gtkmm/widget_waypoint.h index 0331a2f..eb60288 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_waypoint.h +++ b/synfig-studio/trunk/src/gtkmm/widget_waypoint.h @@ -44,7 +44,7 @@ #include #include #include - +#include #include #include @@ -65,7 +65,7 @@ class Widget_ValueBase; class Widget_Time; class Widget_Waypoint; -class Widget_Waypoint : public Gtk::Table +class Widget_Waypoint : public Gtk::Alignment { Widget_ValueBase *value_widget; Gtk::Label *value_node_label; -- 2.7.4