Commit 3e677f2c authored by Albert Gräf's avatar Albert Gräf
Browse files

Added the logic to conditionally show the editmode background

parent 3be6bd03
......@@ -762,8 +762,8 @@ function apply(save_prefs) {
);
// Send the gui prefs (currently just the name of the gui preset, the
// status of the save-zoom toggle and various options related to the help
// browser) to Pd
// status of the show_grid and save_zoom toggles and various options
// related to the help browser) to Pd
pdgui.pdsend("pd gui-prefs",
get_gui_preset(),
get_bool_elem("show_grid"),
......@@ -773,6 +773,8 @@ function apply(save_prefs) {
get_bool_elem("browser_init"),
get_autopatch_yoffset()
);
// Update the grid on all open windows.
pdgui.update_grid(get_bool_elem("show_grid"));
// Send the startup config data to Pd
pdgui.pdsend.apply(null, ["pd path-dialog", startup_use_stdpath, startup_verbose].concat(get_path_array()));
......
......@@ -1455,6 +1455,10 @@ function set_edit_menu_modals(state) {
canvas_menu.edit.font.enabled = state;
}
function get_editmode_checkbox() {
return canvas_menu.edit.editmode.checked;
}
function set_editmode_checkbox(state) {
canvas_menu.edit.editmode.checked = state;
}
......@@ -2107,4 +2111,4 @@ function init_menu_font_size(size) {
// LATER: we can use this to also update the undo state appropriately
function update_menu_items(cid) {
pdgui.pdsend(cid, "updatemenu");
}
\ No newline at end of file
}
......@@ -1283,9 +1283,11 @@ function canvas_set_editmode(cid, state) {
w.set_editmode_checkbox(state !== 0 ? true : false);
if (state !== 0) {
patchsvg.classList.add("editmode");
//post("editmode:" + gui_editmode_svg_background);
patchwin[cid].window.document.body.style.setProperty("background-image",
gui_editmode_svg_background);
if (showgrid[cid]) {
//post("editmode:" + gui_editmode_svg_background);
patchwin[cid].window.document.body.style.setProperty
("background-image", gui_editmode_svg_background);
}
} else {
patchsvg.classList.remove("editmode");
patchwin[cid].window.document.body.style.setProperty("background-image",
......@@ -1300,6 +1302,25 @@ function gui_canvas_set_editmode(cid, state) {
canvas_set_editmode(cid, state);
}
function update_grid(grid) {
// Update the grid background of all canvas windows when the corresponding
// option in the gui prefs changes.
var bg = grid != 0 ? gui_editmode_svg_background : "none";
for (var cid in patchwin) {
gui(cid).get_elem("patchsvg", function(patchsvg, w) {
var editmode = w.get_editmode_checkbox();
if (editmode) {
patchwin[cid].window.document.body.style.setProperty
("background-image", bg);
}
});
}
// Also update the showgrid flags.
set_showgrid(grid);
}
exports.update_grid = update_grid;
// requires nw.js API (Menuitem)
function gui_canvas_set_cordinspector(cid, state) {
patchwin[cid].window.set_cord_inspector_checkbox(state !== 0 ? true : false);
......@@ -1556,6 +1577,7 @@ var scroll = {},
redo = {},
font = {},
doscroll = {},
showgrid = {},
last_loaded, // last loaded canvas
last_focused, // last focused canvas (doesn't include Pd window or dialogs)
loading = {},
......@@ -1566,6 +1588,12 @@ var scroll = {},
var patchwin = {}; // object filled with cid: [Window object] pairs
var dialogwin = {}; // object filled with did: [Window object] pairs
var set_showgrid = function(grid) {
for (var cid in showgrid) {
showgrid[cid] = grid;
}
}
exports.get_patchwin = function(name) {
return patchwin[name];
}
......@@ -1725,7 +1753,7 @@ function create_window(cid, type, width, height, xpos, ypos, attr_array) {
}
// create a new canvas
function gui_canvas_new(cid, width, height, geometry, zoom, editmode, name, dir, dirty_flag, hide_scroll, hide_menu, has_toplevel_scalars, cargs) {
function gui_canvas_new(cid, width, height, geometry, grid, zoom, editmode, name, dir, dirty_flag, hide_scroll, hide_menu, has_toplevel_scalars, cargs) {
// hack for buggy tcl popups... should go away for node-webkit
//reset_ctrl_on_popup_window
......@@ -1752,6 +1780,7 @@ function gui_canvas_new(cid, width, height, geometry, zoom, editmode, name, dir,
redo[cid] = false;
font[cid] = 10;
doscroll[cid] = 0;
showgrid[cid] = grid != 0;
toplevel_scalars[cid] = has_toplevel_scalars;
// geometry is just the x/y screen offset "+xoff+yoff"
geometry = geometry.slice(1); // remove the leading "+"
......@@ -6780,4 +6809,4 @@ function gui_osx_dialog_appearance(id)
var close_button = dialogwin[id].window.document.getElementById("titlebar_close_button");
close_button.style.setProperty("line-height", "14px");
close_button.style.setProperty("border-radius", "10px");
}
\ No newline at end of file
}
......@@ -2692,6 +2692,7 @@ void canvas_vis(t_canvas *x, t_floatarg f)
t_gobj *g;
t_int properties;
extern int sys_grid;
int flag = (f != 0);
if (flag)
......@@ -2747,11 +2748,12 @@ void canvas_vis(t_canvas *x, t_floatarg f)
We may need to expand this to include scalars, as well. */
canvas_create_editor(x);
canvas_args_to_string(argsbuf, x);
gui_vmess("gui_canvas_new", "xiisiissiiiis",
gui_vmess("gui_canvas_new", "xiisiiissiiiis",
x,
(int)(x->gl_screenx2 - x->gl_screenx1),
(int)(x->gl_screeny2 - x->gl_screeny1),
geobuf,
sys_grid,
x->gl_zoom,
x->gl_edit,
x->gl_name->s_name,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment