1 /* === S Y N F I G ========================================================= */
2 /*! \file canvasoptions.cpp
3 ** \brief Template File
5 ** $Id: canvasoptions.cpp,v 1.1.1.1 2005/01/07 03:34:35 darco Exp $
8 ** Copyright (c) 2002 Robert B. Quattlebaum Jr.
10 ** This software and associated documentation
11 ** are CONFIDENTIAL and PROPRIETARY property of
12 ** the above-mentioned copyright holder.
14 ** You may not copy, print, publish, or in any
15 ** other way distribute this software without
16 ** a prior written agreement with
17 ** the copyright holder.
20 /* ========================================================================= */
22 /* === H E A D E R S ======================================================= */
31 #include "canvasoptions.h"
32 #include <gtkmm/frame.h>
33 #include <gtkmm/table.h>
34 #include <gtkmm/label.h>
35 #include <gtkmm/notebook.h>
36 #include "canvasview.h"
41 /* === U S I N G =========================================================== */
45 using namespace synfig;
46 using namespace studio;
48 /* === M A C R O S ========================================================= */
50 /* === G L O B A L S ======================================================= */
52 /* === P R O C E D U R E S ================================================= */
54 /* === M E T H O D S ======================================================= */
56 CanvasOptions::CanvasOptions(loose_handle<studio::CanvasView> canvas_view):
57 Gtk::Dialog(_("Canvas Options"),*canvas_view,false,true),
58 canvas_view_(canvas_view),
59 toggle_grid_snap(_("Grid Snap")),
60 toggle_grid_show(_("Grid Show")),
61 toggle_time_snap(_("Snap-To-Frame"))
63 vector_grid_size.set_canvas(canvas_view->get_canvas());
65 Gtk::Notebook *notebook=manage(new class Gtk::Notebook());
67 toggle_grid_snap.signal_toggled().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_grid_snap_toggle));
68 toggle_grid_show.signal_toggled().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_grid_show_toggle));
70 Gtk::Table *grid_page=manage(new class Gtk::Table(2,2,false));
71 notebook->append_page(*grid_page,_("Grids"));
72 grid_page->attach(vector_grid_size, 0, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
73 grid_page->attach(toggle_grid_snap, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
74 grid_page->attach(toggle_grid_show, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
76 Gtk::Table *time_page=manage(new class Gtk::Table(2,2,false));
77 notebook->append_page(*time_page,_("Time"));
78 time_page->attach(toggle_time_snap, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
80 Gtk::Table *unit_page=manage(new class Gtk::Table(2,2,false));
81 notebook->append_page(*unit_page,_("Units"));
82 unit_page->attach(*manage(new Gtk::Label(_("Not yet implemented"))), 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
85 Gtk::Button *ok_button(manage(new class Gtk::Button(Gtk::StockID("gtk-ok"))));
87 add_action_widget(*ok_button,2);
88 ok_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_ok_pressed));
90 Gtk::Button *apply_button(manage(new class Gtk::Button(Gtk::StockID("gtk-apply"))));
92 add_action_widget(*apply_button,1);
93 apply_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_apply_pressed));
95 Gtk::Button *cancel_button(manage(new class Gtk::Button(Gtk::StockID("gtk-close"))));
96 cancel_button->show();
97 add_action_widget(*cancel_button,0);
98 cancel_button->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasOptions::on_cancel_pressed));
100 //set_default_response(1);
103 get_vbox()->pack_start(*notebook);
104 notebook->show_all();
106 signal_show().connect(sigc::mem_fun(*this, &studio::CanvasOptions::refresh));
108 vector_grid_size.set_digits(5);
113 CanvasOptions::~CanvasOptions()
118 CanvasOptions::update_title()
120 set_title(_("Options")+String(" - ")+canvas_view_->get_canvas()->get_name());
124 CanvasOptions::refresh()
126 if(canvas_view_->work_area->grid_status())
127 toggle_grid_show.set_active(true);
129 toggle_grid_show.set_active(false);
131 if(canvas_view_->work_area->get_grid_snap())
132 toggle_grid_snap.set_active(true);
134 toggle_grid_snap.set_active(false);
136 vector_grid_size.set_value(canvas_view_->work_area->get_grid_size());
138 tooltips.set_tip(toggle_time_snap,_("Not yet implemented"));
139 toggle_time_snap.set_sensitive(false);
145 CanvasOptions::on_grid_snap_toggle()
150 CanvasOptions::on_grid_show_toggle()
155 CanvasOptions::on_apply_pressed()
157 if(toggle_grid_snap.get_active())
158 canvas_view_->work_area->enable_grid_snap();
160 canvas_view_->work_area->disable_grid_snap();
162 if(toggle_grid_show.get_active())
163 canvas_view_->work_area->enable_grid();
165 canvas_view_->work_area->disable_grid();
167 canvas_view_->work_area->set_grid_size(vector_grid_size.get_value());
171 CanvasOptions::on_ok_pressed()
178 CanvasOptions::on_cancel_pressed()