16#include <glibmm/i18n.h>
43 saction->change_state((
int)value);
47 pref->setInt(
"/options/displaymode", (
int)value);
59 show_output(Glib::ustring(
"canvas_display_mode: value out of bound! : ") + Glib::ustring::format(value));
63 auto action = win->lookup_action(
"canvas-display-mode");
65 show_output(
"canvas_display_mode: action 'canvas-display-mode' missing!");
69 auto saction = std::dynamic_pointer_cast<Gio::SimpleAction>(action);
71 show_output(
"canvas_display_mode: action 'canvas-display-mode' not SimpleAction!");
84 auto action = win->lookup_action(
"canvas-display-mode");
86 show_output(
"canvas_display_mode_cycle: action 'canvas-display-mode' missing!");
90 auto saction = std::dynamic_pointer_cast<Gio::SimpleAction>(action);
92 show_output(
"canvas_display_mode_cycle: action 'canvas-display-mode' not SimpleAction!");
97 saction->get_state(value);
102 saction->activate_variant(Glib::Variant<int>::create(value));
112 auto action = win->lookup_action(
"canvas-display-mode");
114 show_output(
"canvas_display_mode_toggle: action 'canvas-display-mode' missing!");
118 auto saction = std::dynamic_pointer_cast<Gio::SimpleAction>(action);
120 show_output(
"canvas_display_mode_toogle: action 'canvas-display-mode' not SimpleAction!");
127 saction->get_state(value);
131 if (value == normal) {
132 new_value =
static_cast<int>(old_value);
137 saction->activate_variant(Glib::Variant<int>::create(new_value));
147 show_output(
"canvas_split_mode: value out of bound! : " + Glib::ustring::format(value));
151 auto action = win->lookup_action(
"canvas-split-mode");
153 show_output(
"canvas_split_mode: action 'canvas-split-mode' missing!");
157 auto saction = std::dynamic_pointer_cast<Gio::SimpleAction>(action);
159 show_output(
"canvas_split_mode: action 'canvas-split-mode' not SimpleAction!");
165 saction->get_state(old_value);
166 if (value == old_value) {
170 saction->change_state(value);
184 gdouble r = prefs->
getDoubleLimited(
"/options/rendering/grayscale/red-factor", 0.21, 0.0, 1.0);
185 gdouble g = prefs->
getDoubleLimited(
"/options/rendering/grayscale/green-factor", 0.72, 0.0, 1.0);
186 gdouble b = prefs->
getDoubleLimited(
"/options/rendering/grayscale/blue-factor", 0.072, 0.0, 1.0);
187 gdouble grayscale_value_matrix[20] =
202 auto action = win->lookup_action(
"canvas-color-mode");
204 show_output(
"canvas_color_mode_toggle: action missing!");
208 auto saction = std::dynamic_pointer_cast<Gio::SimpleAction>(action);
210 show_output(
"canvas_color_mode_toggle: action not SimpleAction!");
215 saction->get_state(state);
217 saction->change_state(state);
233 auto action = win->lookup_action(
"canvas-color-manage");
235 show_output(
"canvas_color_manage_toggle: action missing!");
239 auto saction = std::dynamic_pointer_cast<Gio::SimpleAction>(action);
241 show_output(
"canvas_color_manage_toggle: action not SimpleAction!");
246 saction->get_state(state);
248 saction->change_state(state);
252 pref->
setBool(
"/options/displayprofile/enable", state);
257 canvas->redraw_all();
260const Glib::ustring
SECTION = NC_(
"Action Section",
"Canvas Display");
265 {
"win.canvas-display-mode(0)", N_(
"Display Mode: Normal"),
SECTION, N_(
"Use normal rendering mode") },
266 {
"win.canvas-display-mode(1)", N_(
"Display Mode: Outline"),
SECTION, N_(
"Show only object outlines") },
267 {
"win.canvas-display-mode(2)", N_(
"Display Mode: No Filters"),
SECTION, N_(
"Do not render filters (for speed)") },
268 {
"win.canvas-display-mode(3)", N_(
"Display Mode: Enhance Thin Lines"),
SECTION, N_(
"Ensure all strokes are displayed on screen as at least 1 pixel wide")},
269 {
"win.canvas-display-mode(4)", N_(
"Display Mode: Outline Overlay"),
SECTION, N_(
"Show objects as outlines, and the actual drawing below them with reduced opacity")},
270 {
"win.canvas-display-mode-cycle", N_(
"Display Mode: Cycle"),
SECTION, N_(
"Cycle through display modes") },
271 {
"win.canvas-display-mode-toggle", N_(
"Display Mode: Toggle"),
SECTION, N_(
"Toggle between normal and last non-normal mode")},
272 {
"win.canvas-display-mode-toggle-preview", N_(
"Display Mode: Toggle Preview"),
SECTION, N_(
"Toggle between preview and previous mode") },
274 {
"win.canvas-split-mode(0)", N_(
"Split Mode: Normal"),
SECTION, N_(
"Do not split canvas") },
275 {
"win.canvas-split-mode(1)", N_(
"Split Mode: Split"),
SECTION, N_(
"Render part of the canvas in outline mode") },
276 {
"win.canvas-split-mode(2)", N_(
"Split Mode: X-Ray"),
SECTION, N_(
"Render a circular area in outline mode") },
278 {
"win.canvas-color-mode", N_(
"Color Mode"),
SECTION, N_(
"Toggle between normal and grayscale modes") },
279 {
"win.canvas-color-manage", N_(
"Color Managed Mode"),
SECTION, N_(
"Toggle between normal and color managed modes") }
291 bool color_manage = prefs->getBool(
"/options/displayprofile/enable");
294 win->add_action_radio_integer (
"canvas-display-mode", sigc::bind(sigc::ptr_fun(&
canvas_display_mode), win), display_mode);
316 int display_mode = prefs->getIntLimited(
318 bool color_manage = prefs->getBool(
"/options/displayprofile/enable");
void canvas_set_display_mode(Inkscape::RenderMode value, InkscapeWindow *win, Glib::RefPtr< Gio::SimpleAction > saction)
Helper function to set display mode.
void canvas_color_mode_toggle(InkscapeWindow *win)
Toggle Gray scale on/off.
const Glib::ustring SECTION
void canvas_color_mode_gray(InkscapeWindow *win)
Set gray scale for canvas.
void canvas_display_mode_cycle(InkscapeWindow *win)
Cycle between values.
void canvas_split_mode(int value, InkscapeWindow *win)
Set split mode.
std::vector< std::vector< Glib::ustring > > raw_data_canvas_mode
void add_actions_canvas_mode(InkscapeWindow *win)
void apply_preferences_canvas_mode(SPDesktop *dt)
void canvas_color_manage_toggle(InkscapeWindow *win)
Toggle Color management on/off.
void canvas_display_mode_toggle(InkscapeWindow *win)
Toggle between normal and last set other value.
void canvas_display_mode(int value, InkscapeWindow *win)
Set display mode.
void show_output(Glib::ustring const &data, bool const is_cerr)
static InkscapeApplication * instance()
Singleton instance.
SPDesktop * get_desktop()
Inkscape::Drawing * get_drawing()
void setGrayscaleMatrix(double[20])
Preference storage class.
static Preferences * get()
Access the singleton Preferences object.
void setBool(Glib::ustring const &pref_path, bool value)
Set a Boolean value.
double getDoubleLimited(Glib::ustring const &pref_path, double def=0.0, double min=DBL_MIN, double max=DBL_MAX, Glib::ustring const &unit="")
Retrieve a limited floating point value.
To do: update description of desktop.
Inkscape::UI::Widget::Canvas * getCanvas() const
void setRenderMode(Inkscape::RenderMode mode)
Inkscape::CanvasItemDrawing * getCanvasDrawing() const
void setColorMode(Inkscape::ColorMode mode)
Editable view implementation.
Inkscape - An SVG editor.
TODO: insert short description here.