Blame synfig-studio/src/gui/app.h

Carlos Lopez a09598
/* === S Y N F I G ========================================================= */
Carlos Lopez a09598
/*!	\file app.h
Carlos Lopez a09598
**	\brief writeme
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, 2013 Carlos Lรณpez
f084ff
**	Copyright (c) 2012 Konstantin Dmitriev
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_APP_H
Carlos Lopez a09598
#define __SYNFIG_STUDIO_APP_H
Carlos Lopez a09598
Carlos Lopez a09598
/* === H E A D E R S ======================================================= */
[d.j.a.y] Jerome Blanchi f8d04e
#include <sigc++ sigc++.h=""></sigc++>
Carlos Lopez a09598
#include <gtkmm main.h=""></gtkmm>
Carlos Lopez a09598
#include <string></string>
Carlos Lopez a09598
#include <list></list>
Carlos Lopez a09598
Carlos Lopez a09598
#include <etl smart_ptr=""></etl>
Carlos Lopez a09598
Carlos Lopez a09598
#include <synfig distance.h=""></synfig>
Carlos Lopez a09598
#include <synfig string.h=""></synfig>
Carlos Lopez a09598
#include <synfig time.h=""></synfig>
BobSynfig 366b65
#include <synfig color.h=""></synfig>
Ankit Kumar Dwivedi a2ee61
#include <synfig layer_bitmap.h="" layers=""></synfig>
ab723d
#include <synfig filecontainerzip.h=""></synfig>
ab723d
Carlos Lopez a09598
#include <gtkmm uimanager.h=""></gtkmm>
Carlos Lopez a09598
#include <synfigapp instance.h=""></synfigapp>
BobSynfig 366b65
#include <synfigapp canvasinterface.h=""></synfigapp>
bb9720
#include <synfigapp pluginmanager.h=""></synfigapp>
Carlos Lopez a09598
#include "iconcontroller.h"
[d.j.a.y] Jerome Blanchi 2ff5fa
#include "mainwindow.h"
Carlos Lopez a09598
Carlos Lopez a09598
/* === M A C R O S ========================================================= */
Carlos Lopez a09598
BobSynfig 366b65
#define MISC_DIR_PREFERENCE       "misc_dir"
BobSynfig 366b65
#define ANIMATION_DIR_PREFERENCE  "animation_dir"
BobSynfig 366b65
#define IMAGE_DIR_PREFERENCE      "image_dir"
BobSynfig 366b65
#define SKETCH_DIR_PREFERENCE     "sketch_dir"
BobSynfig 366b65
#define RENDER_DIR_PREFERENCE     "render_dir"
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
Carlos Lopez a09598
{
Carlos Lopez a09598
	class UIManager;
Carlos Lopez a09598
	class ActionGroup;
Carlos Lopez a09598
};
Carlos Lopez a09598
32d01d
namespace synfig
32d01d
{
32d01d
	class SoundProcessor;
32d01d
};
32d01d
Carlos Lopez a09598
namespace synfigapp
Carlos Lopez a09598
{
Carlos Lopez a09598
	class UIInterface;
Carlos Lopez a09598
	class Main;
Carlos Lopez a09598
};
Carlos Lopez a09598
Carlos Lopez a09598
class Preferences;
Carlos Lopez a09598
Carlos Lopez a09598
namespace studio {
Carlos Lopez a09598
Carlos Lopez a09598
typedef Gtk::UIManager UIManager;
Carlos Lopez a09598
Carlos Lopez a09598
class About;
9ec94f
class MainWindow;
Carlos Lopez a09598
class Instance;
Carlos Lopez a09598
class CanvasView;
Carlos Lopez a09598
class Dialog_Setup;
Carlos Lopez a09598
class Dialog_Gradient;
81cb2a
class Dialog_Input;
Carlos Lopez a09598
class Dialog_Color;
Carlos Lopez a09598
class Dialog_ToolOptions;
Ankit Kumar Dwivedi e8b88d
class VectorizerSettings;
Carlos Lopez a09598
class DeviceTracker;
Carlos Lopez a09598
class AutoRecover;
Carlos Lopez a09598
Carlos Lopez a09598
class DockManager;
Carlos Lopez a09598
839371
class Dock_Toolbox;
Carlos Lopez a09598
class Dock_History;
Carlos Lopez a09598
class Dock_Canvases;
Carlos Lopez a09598
Carlos Lopez a09598
class Dock_Keyframes;
Carlos Lopez a09598
class Dock_Params;
Carlos Lopez a09598
class Dock_Layers;
Carlos Lopez a09598
class Dock_MetaData;
Carlos Lopez a09598
class Dock_Children;
Carlos Lopez a09598
class Dock_Info;
Carlos Lopez a09598
class Dock_Navigator;
Carlos Lopez a09598
class Dock_LayerGroups;
Carlos Lopez a09598
class IPC;
Carlos Lopez a09598
Carlos Lopez a09598
class Module;
Carlos Lopez a09598
Carlos Lopez a09598
class StateManager;
Carlos Lopez a09598
class IconController;
Carlos Lopez a09598
Rodolfo Ribeiro Gomes 4d2447
class WorkspaceHandler;
Rodolfo Ribeiro Gomes 4d2447
Carlos Lopez a09598
class App : public Gtk::Main, private IconController
Carlos Lopez a09598
{
Carlos Lopez a09598
	friend class Preferences;
Carlos Lopez a09598
	friend class Dialog_Setup;
Carlos Lopez a09598
Carlos Lopez a09598
	/*
Carlos Lopez a09598
 -- ** -- P U B L I C   T Y P E S ---------------------------------------------
Carlos Lopez a09598
	*/
Carlos Lopez a09598
Carlos Lopez a09598
public:
Carlos Lopez a09598
Carlos Lopez a09598
	struct Busy
Carlos Lopez a09598
	{
Carlos Lopez a09598
		static int count;
Carlos Lopez a09598
		Busy(){count++;}
Carlos Lopez a09598
		~Busy(){count--;}
Carlos Lopez a09598
	};
Carlos Lopez a09598
ab723d
	enum Response
ab723d
	{
ab723d
		RESPONSE_ACCEPT_WITH_HISTORY = 1
ab723d
	};
ab723d
Carlos Lopez a09598
Carlos Lopez a09598
	/*
Carlos Lopez a09598
 -- ** -- P R I V A T E   D A T A ---------------------------------------------
Carlos Lopez a09598
	*/
Carlos Lopez a09598
Carlos Lopez a09598
private:
Carlos Lopez a09598
	//static etl::handle<synfigapp::uiinterface> ui_interface_;</synfigapp::uiinterface>
Carlos Lopez a09598
	//static int max_recent_files;
Carlos Lopez a09598
Nikita Kitaev a31f8b
/*      //declated as globals in app.cpp
Carlos Lopez a09598
	static Dock_Keyframes *dock_keyframes;
Carlos Lopez a09598
	static Dock_Layers *dock_layers;
Carlos Lopez a09598
	static Dock_Params *dock_params;
Carlos Lopez a09598
	static Dock_MetaData *dock_meta_data;
Carlos Lopez a09598
	static Dock_Children *dock_children;
Carlos Lopez a09598
	static Dock_Info *dock_info;
Carlos Lopez a09598
	static Dock_Navigator *dock_navigator;
Carlos Lopez a09598
	static Dock_History *dock_history;
Carlos Lopez a09598
	static Dock_Canvases *dock_canvases;
Carlos Lopez a09598
	static Dock_LayerGroups *dock_layer_groups;
Carlos Lopez a09598
Carlos Lopez a09598
	static IPC *ipc;
Carlos Lopez a09598
*/
Carlos Lopez a09598
Carlos Lopez a09598
	etl::smart_ptr<synfigapp::main> synfigapp_main;</synfigapp::main>
Carlos Lopez a09598
Carlos Lopez a09598
Carlos Lopez a09598
	static etl::handle<instance> selected_instance;</instance>
Carlos Lopez a09598
	static etl::handle<canvasview> selected_canvas_view;</canvasview>
Carlos Lopez a09598
Carlos Lopez a09598
	static Glib::RefPtr<uimanager>	ui_manager_;</uimanager>
Carlos Lopez a09598
4ceeb4
	static int jack_locks_;
4ceeb4
Carlos Lopez a09598
//	static std::list< etl::handle< Module > > module_list_;
Carlos Lopez a09598
Rodolfo Ribeiro Gomes 4d2447
	static WorkspaceHandler *workspaces;
Rodolfo Ribeiro Gomes 4d2447
Carlos Lopez a09598
	/*
Carlos Lopez a09598
 -- ** -- P U B L I C   D A T A -----------------------------------------------
Carlos Lopez a09598
	*/
Carlos Lopez a09598
Carlos Lopez a09598
public:
81cb2a
	static Dialog_Input* dialog_input;
Carlos Lopez a09598
Carlos Lopez a09598
	static DeviceTracker*	device_tracker;
Carlos Lopez a09598
	static AutoRecover*	auto_recover;
Carlos Lopez a09598
	static DockManager* dock_manager;
Carlos Lopez a09598
Carlos Lopez a09598
	static DockManager* get_dock_manager() { return dock_manager; }
Carlos Lopez a09598
Carlos Lopez a09598
	static Dialog_Setup* dialog_setup;
Carlos Lopez a09598
	static Dialog_Gradient* dialog_gradient;
Carlos Lopez a09598
	static Dialog_Color* dialog_color;
Carlos Lopez a09598
//	static Dialog_Palette* dialog_palette;
Carlos Lopez a09598
	static Dialog_ToolOptions *dialog_tool_options;
Ankit Kumar Dwivedi e8b88d
	static VectorizerSettings *vectorizerpopup;
Carlos Lopez a09598
	static synfig::Distance::System distance_system;
Carlos Lopez a09598
Carlos Lopez a09598
	static About *about;
9ec94f
	static MainWindow *main_window;
839371
	static Dock_Toolbox *dock_toolbox;
Carlos Lopez a09598
Carlos Lopez a09598
	static std::list<etl::handle<instance> > instance_list;</etl::handle<instance>
Carlos Lopez a09598
Carlos Lopez a09598
	static bool shutdown_in_progress;
Carlos Lopez a09598
Carlos Lopez a09598
	static bool restrict_radius_ducks;
Carlos Lopez a09598
	static bool resize_imported_images;
adbf94
	static bool enable_experimental_features;
12656b
	static bool use_dark_theme;
caryoscelus 6a5c29
	static bool show_file_toolbar;
Yu Chen 1bae28
bb9720
	static synfigapp::PluginManager plugin_manager;
Ankit Kumar Dwivedi a39ab8
	static synfig::String image_editor_path;
[d.j.a.y] Jerome Blanchi a782c3
	static std::set< synfig::String > brushes_path;
Carlos Lopez a09598
	static synfig::String custom_filename_prefix;
Carlos Lopez a09598
	static int preferred_x_size;
Carlos Lopez a09598
	static int preferred_y_size;
Carlos Lopez a09598
	static synfig::String predefined_size;
Carlos Lopez a09598
	static synfig::String predefined_fps;
Carlos Lopez a09598
	static float preferred_fps;
Carlos Lopez d89f58
	static synfig::String sequence_separator;
bw 30a6da
	static synfig::String navigator_renderer;
bw 30a6da
	static synfig::String workarea_renderer;
Yu Chen 1bae28
	static bool enable_mainwin_menubar;
Yu Chen 9a61f2
	static synfig::String ui_language;
[d.j.a.y] Jerome Blanchi 50f93d
	static long ui_handle_tooltip_flag;
BobSynfig 366b65
	static synfig::String default_background_layer_type;
BobSynfig 366b65
	static synfig::Color  default_background_layer_color;
BobSynfig 366b65
	static synfig::String default_background_layer_image;
BobSynfig 366b65
	static synfig::Color  preview_background_color;
Yu Chen 1bae28
BobSynfig 1d1ab7
	//The sound effects that will be used
32d01d
	static synfig::SoundProcessor* sound_render_done;
32d01d
	static bool use_render_done_sound;
BobSynfig 679eef
BobSynfig 56dae1
	static Dock_Info* dock_info_; //For Render ProgressBar
BobSynfig 56dae1
Rodolfo Ribeiro Gomes cbe448
	static WorkspaceHandler * get_workspace_handler() {return workspaces;}
Rodolfo Ribeiro Gomes cbe448
Carlos Lopez a09598
	/*
Carlos Lopez a09598
 -- ** -- S I G N A L S -------------------------------------------------------
Carlos Lopez a09598
	*/
Nikita Kitaev a31f8b
/*      //declated as globals in app.cpp
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::loose_handle<canvasview></canvasview>
Carlos Lopez a09598
	> signal_canvas_view_focus_;
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::handle<instance></instance>
Carlos Lopez a09598
	> signal_instance_selected_;
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::handle<instance></instance>
Carlos Lopez a09598
	> signal_instance_created_;
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::handle<instance></instance>
Carlos Lopez a09598
	> signal_instance_deleted_;
Carlos Lopez a09598
	static sigc::signal<void> signal_recent_files_changed_;</void>
Carlos Lopez a09598
	static sigc::signal<void> signal_present_all_;</void>
Carlos Lopez a09598
*/
Carlos Lopez a09598
public:
Carlos Lopez a09598
Carlos Lopez a09598
	static sigc::signal<void> &signal_present_all();</void>
Carlos Lopez a09598
Carlos Lopez a09598
	static sigc::signal<void> &signal_recent_files_changed();</void>
Carlos Lopez a09598
Rodolfo Ribeiro Gomes 4d2447
	static sigc::signal<void> &signal_custom_workspaces_changed();</void>
Rodolfo Ribeiro Gomes 4d2447
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::loose_handle<canvasview></canvasview>
Carlos Lopez a09598
	>& signal_canvas_view_focus();
Carlos Lopez a09598
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::handle<instance></instance>
Carlos Lopez a09598
	> &signal_instance_selected();
Carlos Lopez a09598
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::handle<instance></instance>
Carlos Lopez a09598
	> &signal_instance_created();
Carlos Lopez a09598
Carlos Lopez a09598
	static sigc::signal<
Carlos Lopez a09598
		void,
Carlos Lopez a09598
		etl::handle<instance></instance>
Carlos Lopez a09598
	> &signal_instance_deleted();
Carlos Lopez a09598
Carlos Lopez a09598
	/*
Carlos Lopez a09598
 -- ** -- P R I V A T E   M E T H O D S ---------------------------------------
Carlos Lopez a09598
	*/
Carlos Lopez a09598
Carlos Lopez a09598
private:
9ec94f
	static void add_recent_file(const std::string &filename);
Carlos Lopez a09598
Carlos Lopez a09598
	/*
Carlos Lopez a09598
 -- ** -- P U B L I C   M E T H O D S -----------------------------------------
Carlos Lopez a09598
	*/
Carlos Lopez a09598
Carlos Lopez a09598
public:
Carlos Lopez a09598
ac3d4b
	App(const synfig::String& basepath, int *argc, char ***argv);
Carlos Lopez a09598
	virtual ~App();
Carlos Lopez a09598
Carlos Lopez a09598
	/*
Carlos Lopez a09598
 -- ** -- S T A T I C   P U B L I C   M E T H O D S ---------------------------
Carlos Lopez a09598
	*/
Carlos Lopez a09598
Carlos Lopez a09598
public:
Carlos Lopez a09598
Carlos Lopez a09598
	static StateManager* get_state_manager();
Carlos Lopez a09598
Carlos Lopez a09598
	static Glib::RefPtr<uimanager>& ui_manager() { return ui_manager_; }</uimanager>
Carlos Lopez a09598
Carlos Lopez a09598
	static void add_recent_file(const etl::handle<instance> instance);</instance>
Carlos Lopez a09598
Carlos Lopez a09598
	static synfig::String get_base_path();
Carlos Lopez a09598
	static void save_settings();
36304c
	static bool load_settings(const synfig::String& key_filter = "");
d64d11
	static void load_accel_map();
d64d11
	static void load_file_window_size();
4675f3
	static void load_language_settings();
Yu Chen 1a0ab6
	static void set_workspace_default();
Yu Chen 1a0ab6
	static void set_workspace_compositing();
Yu Chen 1a0ab6
	static void set_workspace_animating();
Rodolfo Ribeiro Gomes 3d0424
	static void set_workspace_from_template(const std::string &tpl);
Rodolfo Ribeiro Gomes 4d2447
	static void set_workspace_from_name(const std::string &name);
Rodolfo Ribeiro Gomes 4d2447
	static void load_custom_workspaces();
Rodolfo Ribeiro Gomes 4d2447
	static void save_custom_workspace();
Rodolfo Ribeiro Gomes cbe448
	static void edit_custom_workspace_list();
Yu Chen 1a8bf4
	static void restore_default_settings();
caryoscelus 5b610c
	static void apply_gtk_settings();
Carlos Lopez a09598
Carlos Lopez a09598
	static const std::list<std::string>& get_recent_files();</std::string>
Carlos Lopez a09598
Rodolfo Ribeiro Gomes 4d2447
	static const std::vector<std::string> get_workspaces();</std::string>
Rodolfo Ribeiro Gomes 4d2447
Carlos Lopez a09598
	static const etl::handle<synfigapp::uiinterface>& get_ui_interface();</synfigapp::uiinterface>
Carlos Lopez a09598
Carlos Lopez a09598
Carlos Lopez a09598
	static void set_selected_instance(etl::loose_handle<instance> instance);</instance>
Carlos Lopez a09598
	static void set_selected_canvas_view(etl::loose_handle<canvasview>);</canvasview>
Carlos Lopez a09598
Carlos Lopez a09598
	static etl::loose_handle<instance> get_instance(etl::handle<synfig::canvas> canvas);</synfig::canvas></instance>
Carlos Lopez a09598
Carlos Lopez a09598
	static etl::loose_handle<instance> get_selected_instance() { return selected_instance; }</instance>
Carlos Lopez a09598
	static etl::loose_handle<canvasview> get_selected_canvas_view() { return selected_canvas_view; }</canvasview>
a4bbdd
	static synfig::Gamma get_selected_canvas_gamma();
Carlos Lopez a09598
0dde72
	static std::string get_temporary_directory();
0dde72
0dde72
	static synfig::FileSystemTemporary::Handle wrap_into_temporary_filesystem(
0dde72
		synfig::FileSystem::Handle canvas_file_system,
0dde72
		std::string filename,
0dde72
		std::string as,
0dde72
		synfig::FileContainerZip::file_size_t truncate_storage_size = 0 );
0dde72
Carlos Lopez a09598
	static bool open(std::string filename);
Carlos Lopez a09598
0dde72
	static bool open_as(
0dde72
		std::string filename,
0dde72
		std::string as,
0dde72
		synfig::FileContainerZip::file_size_t truncate_storage_size = 0 );
Carlos Lopez a09598
0dde72
	static bool open_from_temporary_filesystem(std::string temporary_filename);
c1419a
Carlos Lopez a09598
	static void new_instance();
Carlos Lopez a09598
Carlos Lopez a09598
	static void dialog_open(std::string filename = "");
Carlos Lopez a09598
Carlos Lopez a09598
	static void dialog_about();
Carlos Lopez a09598
Carlos Lopez a09598
	static void quit();
Carlos Lopez a09598
Carlos Lopez a09598
	static void show_setup();
Carlos Lopez a09598
Carlos Lopez a09598
	static void undo();
Carlos Lopez a09598
	static void redo();
Carlos Lopez a09598
Carlos Lopez a09598
	static int get_max_recent_files();
Carlos Lopez a09598
	static void set_max_recent_files(int x);
Carlos Lopez a09598
4ceeb4
	static bool jack_is_locked();
4ceeb4
	static void jack_lock();
4ceeb4
	static void jack_unlock();
Carlos Lopez a09598
Carlos Lopez a09598
	static synfig::Time::Format get_time_format();
Carlos Lopez a09598
	static void set_time_format(synfig::Time::Format x);
Carlos Lopez a09598
Carlos Lopez a09598
	static bool shutdown_request(GdkEventAny*bleh=NULL);
Carlos Lopez a09598
Carlos Lopez a09598
//	static bool dialog_file(const std::string &title, std::string &filename);
Carlos Lopez a09598
Carlos Lopez a09598
	static bool dialog_open_file(const std::string &title, std::string &filename, std::string preference);
Yu Chen 68bab0
	static bool dialog_open_file_spal(const std::string &title, std::string &filename, std::string preference);
[d.j.a.y] Jerome Blanchi 89241f
	static bool dialog_open_file_sketch(const std::string &title, std::string &filename, std::string preference);
Yu Chen f87f5d
	static bool dialog_open_file_image(const std::string &title, std::string &filename, std::string preference);
Yu Chen f87f5d
	static bool dialog_open_file_audio(const std::string &title, std::string &filename, std::string preference);
ab723d
	static bool dialog_open_file_with_history_button(const std::string &title, std::string &filename, bool &show_history, std::string preference);
[d.j.a.y] Jerome Blanchi 2ff5fa
	static bool dialog_open_folder(const std::string &title, std::string &filename, std::string preference, Gtk::Window& transientwind=*App::main_window);
Carlos Lopez a09598
	static bool dialog_save_file(const std::string &title, std::string &filename, std::string preference);
Yu Chen 68bab0
	static bool dialog_save_file_spal(const std::string &title, std::string &filename, std::string preference);
[d.j.a.y] Jerome Blanchi 89241f
	static bool dialog_save_file_sketch(const std::string &title, std::string &filename, std::string preference);
Yu Chen 7960fb
	static bool dialog_save_file_render(const std::string &title, std::string &filename, std::string preference);
Carlos Lopez a09598
ab723d
	static bool dialog_select_list_item(const std::string &title, const std::string &message, const std::list<std::string> &list, int &item_index);</std::string>
ab723d
Yu Chen cf6b61
	static bool dialog_entry(const std::string &action, const std::string &content, std::string &text, const std::string &button1, const std::string &button2);
Yu Chen cf6b61
Carlos Lopez a09598
	static bool dialog_paragraph(const std::string &title, const std::string &message,std::string &text);
Carlos Lopez a09598
Carlos Lopez a09598
	static void dialog_not_implemented();
Carlos Lopez a09598
Carlos Lopez a09598
	static void dialog_help();
Carlos Lopez a09598
Yu Chen 860ba6
	static void dialog_message_1b(
Yu Chen 860ba6
			const std::string &type,
Yu Chen 860ba6
			const std::string &message,
Yu Chen 381548
			const std::string &detials,
592ab3
			const std::string &button1,
592ab3
			const std::string &long_details = "long_details");
Yu Chen 381548
Yu Chen 16e2cf
	static bool dialog_message_2b(const std::string &message,
Yu Chen 381548
			const std::string &details,
Yu Chen 381548
			const Gtk::MessageType &type,
Yu Chen 381548
			const std::string &button1,
Yu Chen 381548
			const std::string &button2);
Yu Chen 381548
Yu Chen 16e2cf
	static int dialog_message_3b(const std::string &message,
Yu Chen 381548
			const std::string &details,
Yu Chen 381548
			const Gtk::MessageType &type,
Yu Chen 381548
			const std::string &button1,
Yu Chen 381548
			const std::string &button2,
Yu Chen 381548
			const std::string &button3);
Yu Chen 381548
de146d
	static void open_uri(const std::string &uri);
Ankit Kumar Dwivedi 0ca919
	static void open_img_in_external(const std::string &uri);
Ankit Kumar Dwivedi 90515f
	static void open_vectorizerpopup(const etl::handle<synfig::layer_bitmap> my_layer_bitmap,</synfig::layer_bitmap>
ankit-kumar-dwivedi 16a7cf
	const etl::handle<synfig::layer> reference_layer);</synfig::layer>
Ankit Kumar Dwivedi e8b88d
Ankit Kumar Dwivedi 0ca919
Carlos Lopez a09598
Carlos Lopez a09598
	static synfig::String get_config_file(const synfig::String& file);
Carlos Lopez a548fe
	// This will spread the changes made in preferences.
Carlos Lopez a548fe
	// (By now it updates the System Units or Time Format for all the canvases).
Carlos Lopez a548fe
	// This fixes bug 1890020
Carlos Lopez a548fe
	static void setup_changed();
923e52
32faf1
	static void process_all_events(long unsigned int us = 1);
Carlos Lopez a09598
}; // END of class App
Carlos Lopez a09598
Carlos Lopez a09598
	void delete_widget(Gtk::Widget *widget);
Carlos Lopez a09598
}; // END namespace studio
Carlos Lopez a09598
Carlos Lopez a09598
/* === E N D =============================================================== */
Carlos Lopez a09598
Carlos Lopez a09598
#endif