Blame synfig-studio/src/gui/dialogs/dialog_setup.h

Carlos Lopez a09598
/* === S Y N F I G ========================================================= */
Nikita Kitaev 76ba27
/*!	\file dialogs/dialog_setup.h
[d.j.a.y] Jerome Blanchi 0a3ff4
**	\brief Dialog Preference Header
Carlos Lopez a09598
**
Carlos Lopez a09598
**	$Id$
Carlos Lopez a09598
**
Carlos Lopez a09598
**	\legal
Carlos Lopez a09598
**	Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
Carlos Lopez a09598
**	Copyright (c) 2007, 2008 Chris Moore
Carlos Lopez e83454
**	Copyright (c) 2008, 2009. 2012 Carlos Lรณpez
[d.j.a.y] Jerome Blanchi 0a3ff4
**	Copyright (c) 2015 Jerome Blanchi
Carlos Lopez a09598
**
Carlos Lopez a09598
**	This package is free software; you can redistribute it and/or
Carlos Lopez a09598
**	modify it under the terms of the GNU General Public License as
Carlos Lopez a09598
**	published by the Free Software Foundation; either version 2 of
Carlos Lopez a09598
**	the License, or (at your option) any later version.
Carlos Lopez a09598
**
Carlos Lopez a09598
**	This package is distributed in the hope that it will be useful,
Carlos Lopez a09598
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
Carlos Lopez a09598
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Carlos Lopez a09598
**	General Public License for more details.
Carlos Lopez a09598
**	\endlegal
Carlos Lopez a09598
*/
Carlos Lopez a09598
/* ========================================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
/* === S T A R T =========================================================== */
Carlos Lopez a09598
Carlos Lopez a09598
#ifndef __SYNFIG_STUDIO_DIALOG_SETUP_H
Carlos Lopez a09598
#define __SYNFIG_STUDIO_DIALOG_SETUP_H
Carlos Lopez a09598
Carlos Lopez a09598
/* === H E A D E R S ======================================================= */
[d.j.a.y] Jerome Blanchi 9375e9
#include <dialogs dialog_template.h=""></dialogs>
Carlos Lopez a09598
Carlos Lopez a09598
#include <gtkmm adjustment.h=""></gtkmm>
Carlos Lopez a09598
#include <gtkmm button.h=""></gtkmm>
Carlos Lopez a09598
#include <gtkmm checkbutton.h=""></gtkmm>
BobSynfig 366b65
#include <gtkmm colorbutton.h=""></gtkmm>
BobSynfig 366b65
#include <gtkmm radiobutton.h=""></gtkmm>
BobSynfig 366b65
#include <gtkmm filechooser.h=""></gtkmm>
BobSynfig 366b65
#include <gtkmm filechooserbutton.h=""></gtkmm>
BobSynfig 366b65
#include <gtkmm filechooserdialog.h=""></gtkmm>
BobSynfig 366b65
#include <gtkmm filechooserwidget.h=""></gtkmm>
BobSynfig 366b65
#include <gtkmm filefilter.h=""></gtkmm>
Carlos Lopez a09598
#include <gtkmm comboboxtext.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 96cb18
#include <gtkmm drawingarea.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 96cb18
#include <gtkmm listviewtext.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 96cb18
#include <gtkmm spinbutton.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 96cb18
#include <gtkmm switch.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 96cb18
#include <gtkmm tooltip.h=""></gtkmm>
[d.j.a.y] Jerome Blanchi 19fa49
[d.j.a.y] Jerome Blanchi 2d4b75
#include <gui widget_time.h="" widgets=""></gui>
Carlos Lopez a09598
a4bbdd
#include <synfig color.h=""></synfig>
Carlos Lopez a09598
#include <synfig time.h=""></synfig>
Carlos Lopez a09598
#include <algorithm></algorithm>
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi a782c3
#include <synfigapp settings.h=""></synfigapp>
[d.j.a.y] Jerome Blanchi a782c3
557ee3
#include "app.h"
557ee3
Carlos Lopez a09598
/* === M A C R O S ========================================================= */
Carlos Lopez a09598
#ifndef DEFAULT_PREDEFINED_SIZE
Carlos Lopez a09598
#define DEFAULT_PREDEFINED_SIZE _("Custom Size")
Carlos Lopez a09598
#endif
Carlos Lopez a09598
#ifndef DEFAULT_PREDEFINED_FPS
Carlos Lopez a09598
#define DEFAULT_PREDEFINED_FPS _("Custom fps")
Carlos Lopez a09598
#endif
Carlos Lopez a09598
Carlos Lopez a09598
/* === T Y P E D E F S ===================================================== */
Carlos Lopez a09598
Carlos Lopez a09598
/* === C L A S S E S & S T R U C T S ======================================= */
Carlos Lopez a09598
Carlos Lopez a09598
namespace Gtk { class Menu; };
Carlos Lopez a09598
Carlos Lopez a09598
namespace studio {
Carlos Lopez a09598
Carlos Lopez a09598
class Widget_Enum;
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi 9375e9
class Dialog_Setup : public Dialog_Template
Carlos Lopez a09598
{
[d.j.a.y] Jerome Blanchi f34e20
	/* Draft for change resume */
[d.j.a.y] Jerome Blanchi f34e20
	enum Change
[d.j.a.y] Jerome Blanchi f34e20
	{
BobSynfig 366b65
		CHANGE_NONE              = (0),       //    0
BobSynfig 366b65
		CHANGE_UI_LANGUAGE       = (1 <<  0), //    1
BobSynfig 366b65
		CHANGE_AUTOBACKUP        = (1 <<  1), //    2
BobSynfig 366b65
		CHANGE_UI_HANDLE_TOOLTIP = (1 <<  2), //    4
BobSynfig 366b65
		CHANGE_WIDTH             = (1 <<  3), //    8
BobSynfig 366b65
		CHANGE_ANGLE             = (1 <<  4), //   16
BobSynfig 366b65
		CHANGE_VERTEX            = (1 <<  5), //   32
BobSynfig 366b65
		CHANGE_BONE_RECURSIVE    = (1 <<  6), //   64
BobSynfig 366b65
		CHANGE_BRUSH_PATH        = (1 <<  7), //  128
BobSynfig 366b65
		CHANGE_SCALE             = (1 <<  8), //  256
BobSynfig 366b65
		CHANGE_SCALE_X           = (1 <<  9), //  512
BobSynfig 366b65
		CHANGE_SCALE_Y           = (1 << 10), // 1024
BobSynfig 366b65
		CHANGE_SKEW              = (1 << 11), // 2048
BobSynfig 366b65
BobSynfig 366b65
		CHANGE_ALL               = (~0)
[d.j.a.y] Jerome Blanchi f34e20
	};
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi b85adb
	// Change mechanism
[d.j.a.y] Jerome Blanchi b85adb
	// TODO on change class
[d.j.a.y] Jerome Blanchi b85adb
	void on_value_change(int valueflag);
[d.j.a.y] Jerome Blanchi 6e9dee
	//Signal handlers pages
Carlos Lopez a09598
	void on_size_template_combo_change();
Carlos Lopez a09598
	void on_fps_template_combo_change();
Yu Chen 72e6ac
	void on_ui_language_combo_change();
6d3ca8
	void on_time_format_changed();
[d.j.a.y] Jerome Blanchi 19fa49
	void on_autobackup_changed();
[d.j.a.y] Jerome Blanchi b85adb
	void on_tooltip_transformation_changed();
BobSynfig 1d1ab7
	void on_play_sound_on_render_done_changed();
BobSynfig 366b65
	void on_def_background_type_changed(); //bound on clicked
BobSynfig 366b65
	void on_def_background_color_changed();
BobSynfig 366b65
	void on_def_background_image_set();
BobSynfig 366b65
	void on_preview_background_color_changed();
[d.j.a.y] Jerome Blanchi f34e20
	void on_brush_path_add_clicked();
[d.j.a.y] Jerome Blanchi f34e20
	void on_brush_path_remove_clicked();
Ankit Kumar Dwivedi 6b475c
	void on_choose_editor_pressed();
Ankit Kumar Dwivedi 73a12d
	bool select_path_dialog(const std::string &title, std::string &filename);
[d.j.a.y] Jerome Blanchi f34e20
[d.j.a.y] Jerome Blanchi 9375e9
	void create_system_page(PageInfo pi);
[d.j.a.y] Jerome Blanchi 9375e9
	void create_document_page(PageInfo pi);
[d.j.a.y] Jerome Blanchi 9375e9
	void create_render_page(PageInfo pi);
[d.j.a.y] Jerome Blanchi 9375e9
	void create_interface_page(PageInfo pi);
[d.j.a.y] Jerome Blanchi 9375e9
	void create_editing_page(PageInfo pi);
[d.j.a.y] Jerome Blanchi 6e9dee
[d.j.a.y] Jerome Blanchi a782c3
	synfigapp::Settings &input_settings;
[d.j.a.y] Jerome Blanchi a782c3
[d.j.a.y] Jerome Blanchi 6e9dee
	// Widget for pages
6d3ca8
	Gtk::ComboBoxText timestamp_comboboxtext;
6d3ca8
	std::map<std::string, synfig::time::format=""> time_formats;</std::string,>
Carlos Lopez a09598
536d22
	Glib::RefPtr<gtk::adjustment> adj_recent_files;</gtk::adjustment>
536d22
	Glib::RefPtr<gtk::adjustment> adj_undo_depth;</gtk::adjustment>
Carlos Lopez a09598
Carlos Lopez a09598
	synfig::Time::Format time_format;
Carlos Lopez a09598
Carlos Lopez a09598
	Widget_Enum *widget_enum;
Carlos Lopez a09598
Carlos Lopez a09598
	Widget_Time auto_backup_interval;
Carlos Lopez a09598
caryoscelus 9ad299
	Gtk::Switch toggle_restrict_radius_ducks;
caryoscelus 9ad299
	Gtk::Switch toggle_resize_imported_images;
GinPachi 96768b
	Gtk::Switch toggle_enable_experimental_features;
caryoscelus 4ea811
	Gtk::Switch toggle_use_dark_theme;
caryoscelus 4ea811
	Gtk::Switch toggle_show_file_toolbar;
Carlos Lopez a09598
[d.j.a.y] Jerome Blanchi f34e20
	Gtk::Entry textbox_brushe_path;
[d.j.a.y] Jerome Blanchi f34e20
	Gtk::ListViewText* listviewtext_brushes_path;
[d.j.a.y] Jerome Blanchi 6e9dee
	Glib::RefPtr<gtk::liststore> brushpath_refmodel;</gtk::liststore>
Carlos Lopez a09598
Carlos Lopez a09598
	Gtk::ComboBoxText* size_template_combo;
Carlos Lopez a09598
	Gtk::ComboBoxText* fps_template_combo;
Yu Chen 72e6ac
	Gtk::ComboBoxText ui_language_combo;
caryoscelus e49ce4
	Gtk::Switch toggle_handle_tooltip_transfo_value;
caryoscelus e49ce4
	Gtk::Switch toggle_handle_tooltip_transfo_name;
Yu Chen 72e6ac
Carlos Lopez a09598
	Gtk::Entry textbox_custom_filename_prefix;
536d22
	Glib::RefPtr<gtk::adjustment> adj_pref_x_size;</gtk::adjustment>
536d22
	Glib::RefPtr<gtk::adjustment> adj_pref_y_size;</gtk::adjustment>
536d22
	Glib::RefPtr<gtk::adjustment> adj_pref_fps;</gtk::adjustment>
Carlos Lopez a09598
	Gtk::SpinButton* pref_fps_spinbutton;
Carlos Lopez a09598
	Gtk::SpinButton* pref_y_size_spinbutton;
Carlos Lopez a09598
	Gtk::SpinButton* pref_x_size_spinbutton;
Carlos Lopez d89f58
BobSynfig 366b65
	Gtk::RadioButton::Group group_def_background;
BobSynfig 366b65
	Gtk::RadioButton        def_background_none;
BobSynfig 366b65
	Gtk::RadioButton        def_background_color;
BobSynfig 366b65
	Gtk::RadioButton        def_background_image;
BobSynfig 366b65
	Gtk::ColorButton        def_background_color_button;
BobSynfig 366b65
	Gtk::FileChooserButton  fcbutton_image;
BobSynfig 366b65
	Gtk::ColorButton        preview_background_color_button;
BobSynfig 366b65
	//Gtk::FileFilter         filter_images;
BobSynfig 366b65
	//Gtk::FileFilter         filter_any;
BobSynfig 366b65
BobSynfig 1d1ab7
	Gtk::Entry        image_sequence_separator;
bw 30a6da
	Gtk::ComboBoxText workarea_renderer_combo;
BobSynfig 1d1ab7
	Gtk::Switch       toggle_play_sound_on_render_done;
Yu Chen 72e6ac
[d.j.a.y] Jerome Blanchi 2d4b75
	Gtk::Switch toggle_handle_tooltip_widthpoint;
[d.j.a.y] Jerome Blanchi 2d4b75
	Gtk::Switch toggle_handle_tooltip_radius;
[d.j.a.y] Jerome Blanchi 2d4b75
	Gtk::Switch toggle_handle_tooltip_transformation;
[d.j.a.y] Jerome Blanchi 6ee861
	Gtk::Switch toggle_autobackup;
Ankit Kumar Dwivedi a39ab8
	Gtk::Entry image_editor_path_entry;
[d.j.a.y] Jerome Blanchi f34e20
	long pref_modification_flag;
[d.j.a.y] Jerome Blanchi 19fa49
	//! Do not update state flag on refreshing
[d.j.a.y] Jerome Blanchi 19fa49
	bool refreshing;
[d.j.a.y] Jerome Blanchi f34e20
[d.j.a.y] Jerome Blanchi 6e9dee
	//Brush path Tree model columns:
[d.j.a.y] Jerome Blanchi 6e9dee
	class PrefsBrushPath : public Gtk::TreeModel::ColumnRecord
[d.j.a.y] Jerome Blanchi 6e9dee
	{
[d.j.a.y] Jerome Blanchi 6e9dee
		public:
[d.j.a.y] Jerome Blanchi 6e9dee
		PrefsBrushPath() { add(path); }
[d.j.a.y] Jerome Blanchi a782c3
		Gtk::TreeModelColumn<synfig::string> path;</synfig::string>
[d.j.a.y] Jerome Blanchi 6e9dee
	};
[d.j.a.y] Jerome Blanchi 6e9dee
	PrefsBrushPath prefs_brushpath;
[d.j.a.y] Jerome Blanchi 087a05
Carlos Lopez a09598
public:
[d.j.a.y] Jerome Blanchi 9375e9
	/*
[d.j.a.y] Jerome Blanchi 9375e9
 -- ** -- S I G N A L S -------------------------------------------------------
[d.j.a.y] Jerome Blanchi 9375e9
	*/
[d.j.a.y] Jerome Blanchi 9375e9
[d.j.a.y] Jerome Blanchi 9375e9
	//Signal handlers dialog
[d.j.a.y] Jerome Blanchi 9375e9
	virtual void on_apply_pressed();
[d.j.a.y] Jerome Blanchi 9375e9
	virtual void on_restore_pressed();
[d.j.a.y] Jerome Blanchi 9375e9
[d.j.a.y] Jerome Blanchi 9375e9
public:
Carlos Lopez a09598
49f8c0
	Dialog_Setup(Gtk::Window& parent);
Carlos Lopez a09598
	~Dialog_Setup();
Carlos Lopez a09598
af3c11
	void set_time_format(synfig::Time::Format time_format);
af3c11
	const synfig::Time::Format& get_time_format()const { return time_format; }
Carlos Lopez a09598
af3c11
    void refresh();
Carlos Lopez a09598
}; // END of Dialog_Waypoint
Carlos Lopez a09598
Carlos Lopez a09598
}; // END of namespace studio
Carlos Lopez a09598
Carlos Lopez a09598
/* === E N D =============================================================== */
Carlos Lopez a09598
Carlos Lopez a09598
#endif