Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / gtkmm / canvasoptions.cpp
index 44d47a7..dfc15ed 100644 (file)
@@ -1,20 +1,21 @@
-/* === S I N F G =========================================================== */
+/* === S Y N F I G ========================================================= */
 /*!    \file canvasoptions.cpp
 **     \brief Template File
 **
-**     $Id: canvasoptions.cpp,v 1.1.1.1 2005/01/07 03:34:35 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
 */
 /* ========================================================================= */
 #include <gtkmm/table.h>
 #include <gtkmm/label.h>
 #include <gtkmm/notebook.h>
+#include <gtkmm/alignment.h>
 #include "canvasview.h"
 #include "workarea.h"
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
 
 using namespace std;
 using namespace etl;
-using namespace sinfg;
+using namespace synfig;
 using namespace studio;
 
 /* === M A C R O S ========================================================= */
@@ -53,35 +57,62 @@ using namespace studio;
 
 /* === M E T H O D S ======================================================= */
 
-CanvasOptions::CanvasOptions(loose_handle<studio::CanvasView> canvas_view):
+CanvasOptions::CanvasOptions(etl::loose_handle<CanvasView> 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);
@@ -98,15 +129,15 @@ CanvasOptions::CanvasOptions(loose_handle<studio::CanvasView> canvas_view):
        cancel_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_cancel_pressed));
 
        //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));
 
        vector_grid_size.set_digits(5);
-       
+
        update_title();
 }
 
@@ -127,14 +158,14 @@ CanvasOptions::refresh()
                toggle_grid_show.set_active(true);
        else
                toggle_grid_show.set_active(false);
-               
+
        if(canvas_view_->work_area->get_grid_snap())
                toggle_grid_snap.set_active(true);
        else
                toggle_grid_snap.set_active(false);
-       
+
        vector_grid_size.set_value(canvas_view_->work_area->get_grid_size());
-       
+
        tooltips.set_tip(toggle_time_snap,_("Not yet implemented"));
        toggle_time_snap.set_sensitive(false);
 
@@ -154,11 +185,13 @@ CanvasOptions::on_grid_show_toggle()
 void
 CanvasOptions::on_apply_pressed()
 {
+       canvas_view_->set_grid_snap_toggle(toggle_grid_snap.get_active());
        if(toggle_grid_snap.get_active())
                canvas_view_->work_area->enable_grid_snap();
        else
                canvas_view_->work_area->disable_grid_snap();
-               
+
+       canvas_view_->set_grid_show_toggle(toggle_grid_show.get_active());
        if(toggle_grid_show.get_active())
                canvas_view_->work_area->enable_grid();
        else