Index: plugins/excel/ms-excel-write.c
===================================================================
RCS file: /cvs/gnome/gnumeric/plugins/excel/ms-excel-write.c,v
retrieving revision 1.142
diff -u -p -r1.142 ms-excel-write.c
--- plugins/excel/ms-excel-write.c 2002/01/20 17:43:06 1.142
+++ plugins/excel/ms-excel-write.c 2002/02/20 18:38:45
@@ -2060,7 +2060,7 @@ log_xf_data (ExcelWorkbook *wb, BiffXFDa
* See S59E1E.HTM
*
* All BIFF V7 features are implemented, except:
- * - hidden and locked - not yet in gnumeric.
+ * - hidden - not yet in gnumeric.
*
* Apart from font, the style elements we retrieve do *not* need to be unrefed.
*
Index: src/cell-draw.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/cell-draw.c,v
retrieving revision 1.76
diff -u -p -r1.76 cell-draw.c
--- src/cell-draw.c 2001/12/21 23:50:47 1.76
+++ src/cell-draw.c 2002/02/20 18:38:46
@@ -162,7 +162,8 @@ cell_split_text (GdkFont *font, char con
void
cell_draw (Cell const *cell, MStyle const *mstyle,
GdkGC *gc, GdkDrawable *drawable,
- int x1, int y1, int width, int height, int h_center)
+ int x1, int y1, int width, int height, int h_center,
+ gboolean is_workbook_protected)
{
StyleFont *style_font;
GdkFont *font;
@@ -259,6 +260,17 @@ cell_draw (Cell const *cell, MStyle cons
fore = mstyle_get_color (mstyle, MSTYLE_COLOR_FORE);
g_return_if_fail (fore != NULL); /* Be extra careful */
gdk_gc_set_foreground (gc, &fore->color);
+ /* grey out the color if the cell is locked */
+ if (is_workbook_protected && mstyle_get_content_locked(mstyle)) {
+ StyleColor *back = mstyle_get_color (mstyle, MSTYLE_COLOR_BACK);
+ /* compute alpha blend of foreground and background colors. */
+ StyleColor *alpha = style_color_new
+ (fore->red + (back->red - fore->red)/2,
+ fore->green + (back->green - fore->green)/2,
+ fore->blue + (back->blue - fore->blue)/2);
+ gdk_gc_set_foreground (gc, &alpha->color);
+ style_color_unref(alpha);
+ }
/* Handle underlining and strikethrough */
switch (mstyle_get_font_uline (mstyle)) {
Index: src/cell-draw.h
===================================================================
RCS file: /cvs/gnome/gnumeric/src/cell-draw.h,v
retrieving revision 1.12
diff -u -p -r1.12 cell-draw.h
--- src/cell-draw.h 2001/12/21 23:50:47 1.12
+++ src/cell-draw.h 2002/02/20 18:38:46
@@ -6,6 +6,7 @@
void cell_draw (Cell const *cell, MStyle const *mstyle,
GdkGC *gc, GdkDrawable *drawable,
- int x, int y, int height, int width, int h_center);
+ int x, int y, int height, int width, int h_center,
+ gboolean is_workbook_protected);
#endif /* GNUMERIC_CELL_DRAW_H */
Index: src/gnumeric-canvas.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/gnumeric-canvas.c,v
retrieving revision 1.268
diff -u -p -r1.268 gnumeric-canvas.c
--- src/gnumeric-canvas.c 2001/12/29 19:08:53 1.268
+++ src/gnumeric-canvas.c 2002/02/20 18:38:46
@@ -283,7 +283,8 @@ gnm_canvas_key_mode_sheet (GnumericCanva
return TRUE;
case GDK_F2:
- wbcg_edit_start (wbcg, FALSE, FALSE);
+ if (!wbcg_edit_start (wbcg, FALSE, FALSE))
+ return FALSE; /* attempt to edit failed */
/* fall down */
case GDK_BackSpace:
@@ -303,7 +304,8 @@ gnm_canvas_key_mode_sheet (GnumericCanva
if (event->length == 0)
return FALSE;
- wbcg_edit_start (wbcg, TRUE, TRUE);
+ if (!wbcg_edit_start (wbcg, TRUE, TRUE))
+ return FALSE; /* attempt to edit failed */
}
scg_rangesel_stop (gcanvas->simple.scg, FALSE);
Index: src/item-grid.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/item-grid.c,v
retrieving revision 1.276
diff -u -p -r1.276 item-grid.c
--- src/item-grid.c 2002/01/23 06:50:55 1.276
+++ src/item-grid.c 2002/02/20 18:38:46
@@ -170,6 +170,8 @@ item_grid_draw_merged_range (GdkDrawable
GdkGC *gc = ig->gc.empty;
Sheet const *sheet = ((SheetControl *) ig->scg)->sheet;
Cell const *cell = sheet_cell_get (sheet, range->start.col, range->start.row);
+ gboolean protected =
+ wb_control_view (sc_wbc ((SheetControl *) ig->scg))->protected;
/* load style from corner which may not be visible */
MStyle const *style = sheet_style_get (sheet, range->start.col, range->start.row);
@@ -225,7 +227,8 @@ item_grid_draw_merged_range (GdkDrawable
cell_draw (cell, style, ig->gc.cell, drawable,
l, t,
r - l - (ci->margin_b + ci->margin_a + 1),
- b - t - (ri->margin_b + ri->margin_a + 1), -1);
+ b - t - (ri->margin_b + ri->margin_a + 1), -1,
+ protected);
}
style_border_draw_diag (style, drawable, l, t, r, b);
}
@@ -269,6 +272,8 @@ item_grid_draw (GnomeCanvasItem *item, G
Cell const * const edit_cell = gcanvas->simple.scg->wbcg->editing_cell;
ItemGrid *ig = ITEM_GRID (item);
ColRowInfo const *ri = NULL, *next_ri = NULL;
+ gboolean protected =
+ wb_control_view (sc_wbc ((SheetControl *) gcanvas->simple.scg))->protected;
/* To ensure that far and near borders get drawn we pretend to draw +-2
* pixels around the target area which would include the surrounding
@@ -517,7 +522,8 @@ item_grid_draw (GnomeCanvasItem *item, G
if (!cell_is_blank (cell) && cell != edit_cell)
cell_draw (cell, style,
ig->gc.cell, drawable,
- x, y, -1, -1, -1);
+ x, y, -1, -1, -1,
+ protected);
/* Only draw spaning cells after all the backgrounds
* that we are goign to draw have been drawn. No need
@@ -563,7 +569,8 @@ item_grid_draw (GnomeCanvasItem *item, G
cell_draw (cell, style,
ig->gc.cell, drawable,
- real_x, y, tmp_width, -1, center_offset);
+ real_x, y, tmp_width, -1, center_offset,
+ protected);
} else if (col != span->left)
sr.vertical [col] = NULL;
Index: src/preview-grid.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/preview-grid.c,v
retrieving revision 1.24
diff -u -p -r1.24 preview-grid.c
--- src/preview-grid.c 2001/12/21 23:50:53 1.24
+++ src/preview-grid.c 2002/02/20 18:38:46
@@ -534,7 +534,7 @@ preview_grid_draw (GnomeCanvasItem *item
if (!cell_is_blank (cell))
cell_draw (cell, style, pg->gc.cell, drawable,
- x, y, -1, -1, -1);
+ x, y, -1, -1, -1, FALSE);
pg_destruct_cell (cell);
x += colwidths [col];
Index: src/workbook-control-gui.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-control-gui.c,v
retrieving revision 1.220.2.2
diff -u -p -r1.220.2.2 workbook-control-gui.c
--- src/workbook-control-gui.c 2002/01/29 01:40:43 1.220.2.2
+++ src/workbook-control-gui.c 2002/02/20 18:38:46
@@ -299,7 +299,7 @@ static void
cb_prefs_update (gpointer key, gpointer value, gpointer user_data)
{
Sheet *sheet = value;
- sheet_adjust_preferences (sheet, FALSE, FALSE);
+ sheet_adjust_preferences (sheet, TRUE, FALSE);
}
static void
@@ -2443,11 +2443,13 @@ cb_autosum (GtkWidget *widget, WorkbookC
entry = GTK_ENTRY (wbcg_get_entry (wbcg));
txt = gtk_entry_get_text (entry);
if (strncmp (txt, "=sum(", 5)) {
- wbcg_edit_start (wbcg, TRUE, TRUE);
+ if (!wbcg_edit_start (wbcg, TRUE, TRUE))
+ return; /* attempt to edit failed */
gtk_entry_set_text (entry, "=sum()");
gtk_entry_set_position (entry, 5);
} else {
- wbcg_edit_start (wbcg, FALSE, TRUE);
+ if (!wbcg_edit_start (wbcg, FALSE, TRUE))
+ return; /* attempt to edit failed */
/*
* FIXME : This is crap!
@@ -3461,7 +3463,7 @@ cb_editline_focus_in (GtkWidget *w, GdkE
WorkbookControlGUI *wbcg)
{
if (!wbcg->editing)
- wbcg_edit_start (wbcg, FALSE, TRUE);
+ return wbcg_edit_start (wbcg, FALSE, TRUE);
return TRUE;
}
@@ -3500,11 +3502,13 @@ cb_autofunction (GtkWidget *widget, Work
entry = GTK_ENTRY (wbcg_get_entry (wbcg));
txt = gtk_entry_get_text (entry);
if (strncmp (txt, "=", 1)) {
- wbcg_edit_start (wbcg, TRUE, TRUE);
+ if (!wbcg_edit_start (wbcg, TRUE, TRUE))
+ return; /* attempt to edit failed */
gtk_entry_set_text (entry, "=");
gtk_entry_set_position (entry, 1);
} else {
- wbcg_edit_start (wbcg, FALSE, TRUE);
+ if (!wbcg_edit_start (wbcg, FALSE, TRUE))
+ return; /* attempt to edit failed */
/* FIXME : This is crap!
* When the function druid is more complete use that.
@@ -4401,6 +4405,30 @@ wbcg_validation_msg (WorkbookControl *wb
}
static void
+wbcg_locked_msg (WorkbookControl *wbc, Cell const *cell)
+{
+ WorkbookControlGUI *wbcg = (WorkbookControlGUI *)wbc;
+ GtkWidget *dialog;
+ char *msg;
+
+ msg = g_strdup_printf(_("Cell %s is locked.\n"
+ "You must unprotect this worksheet\n"
+ "(in the "
+ "Format->Workbook->Protection dialog)\n"
+ "or unlock this cell (in "
+ "Format->Cells->Protection)\n"
+ "before you can edit this "
+ "value."), cell_name(cell));
+ dialog = gnome_message_box_new (msg, GNOME_MESSAGE_BOX_INFO,
+ _("Ok"), NULL);
+ gtk_window_set_title (GTK_WINDOW (dialog), _("Cell locked."));
+ gnome_dialog_set_default (GNOME_DIALOG (dialog), 0);
+ gnumeric_dialog_run (wbcg, GNOME_DIALOG (dialog));
+ g_free(msg);
+ return;
+}
+
+static void
workbook_control_gui_ctor_class (GtkObjectClass *object_class)
{
WorkbookControlClass *wbc_class = WORKBOOK_CONTROL_CLASS (object_class);
@@ -4451,6 +4479,7 @@ workbook_control_gui_ctor_class (GtkObje
wbc_class->claim_selection = wbcg_claim_selection;
wbc_class->paste_from_selection = wbcg_paste_from_selection;
wbc_class->validation_msg = wbcg_validation_msg;
+ wbc_class->locked_msg = wbcg_locked_msg;
}
E_MAKE_TYPE(workbook_control_gui, "WorkbookControlGUI", WorkbookControlGUI,
Index: src/workbook-control-priv.h
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-control-priv.h,v
retrieving revision 1.16
diff -u -p -r1.16 workbook-control-priv.h
--- src/workbook-control-priv.h 2002/01/12 08:06:59 1.16
+++ src/workbook-control-priv.h 2002/02/20 18:38:46
@@ -54,6 +54,7 @@ typedef struct {
PasteTarget const *pt, guint32 time);
int (*validation_msg) (WorkbookControl *wbc, Validation const *v,
char const *title, char const *msg);
+ void (*locked_msg) (WorkbookControl *wbc, Cell const *cell);
} WorkbookControlClass;
#define WORKBOOK_CONTROL_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), WORKBOOK_CONTROL_TYPE, WorkbookControlClass))
Index: src/workbook-control.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-control.c,v
retrieving revision 1.36.2.1
diff -u -p -r1.36.2.1 workbook-control.c
--- src/workbook-control.c 2002/02/01 15:26:17 1.36.2.1
+++ src/workbook-control.c 2002/02/20 18:38:46
@@ -173,6 +173,21 @@ wb_control_validation_msg (WorkbookContr
return 1; /* no handler, always accept */
}
+/**
+ * wb_control_locked_msg : notify user that this cell is locked.
+ */
+void
+wb_control_locked_msg (WorkbookControl *wbc, Cell const *cell)
+{
+ WorkbookControlClass *wbc_class;
+
+ g_return_if_fail (IS_WORKBOOK_CONTROL (wbc));
+
+ wbc_class = WBC_CLASS (wbc);
+ if (wbc_class != NULL && wbc_class->locked_msg != NULL)
+ wbc_class->locked_msg (wbc, cell);
+}
+
WorkbookView *
wb_control_view (WorkbookControl *wbc)
{
Index: src/workbook-control.h
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-control.h,v
retrieving revision 1.25
diff -u -p -r1.25 workbook-control.h
--- src/workbook-control.h 2002/01/12 08:06:59 1.25
+++ src/workbook-control.h 2002/02/20 18:38:46
@@ -43,6 +43,7 @@ void wb_control_undo_redo_labels (Wo
char const *undo, char const *redo);
int wb_control_validation_msg (WorkbookControl *wbc, Validation const *v,
char const *title, char const *msg);
+void wb_control_locked_msg (WorkbookControl *wbc, Cell const *cell);
/* Menu state update flags, use them to specify which menu items to update */
enum {
Index: src/workbook-edit.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-edit.c,v
retrieving revision 1.72.2.1
diff -u -p -r1.72.2.1 workbook-edit.c
--- src/workbook-edit.c 2002/02/19 15:05:43 1.72.2.1
+++ src/workbook-edit.c 2002/02/20 18:38:46
@@ -322,8 +322,11 @@ entry_changed (GtkEntry *entry, void *da
* editing:
* 1) in-cell editing when you just start typing, and
* 2) above sheet editing when you hit F2.
+ *
+ * Returns TRUE if we did indeed start editing. Returns FALSE if the
+ * cell-to-be-edited was locked.
*/
-void
+gboolean
wbcg_edit_start (WorkbookControlGUI *wbcg,
gboolean blankp, gboolean cursorp)
{
@@ -335,14 +338,14 @@ wbcg_edit_start (WorkbookControlGUI *wbc
int col, row;
WorkbookView *wbv;
- g_return_if_fail (IS_WORKBOOK_CONTROL_GUI (wbcg));
+ g_return_val_if_fail (IS_WORKBOOK_CONTROL_GUI (wbcg), FALSE);
if (wbcg->editing)
- return;
+ return TRUE;
/* Avoid recursion, and do not begin editing if a guru is up */
if (inside_editing || wbcg_edit_has_guru (wbcg))
- return;
+ return TRUE;
inside_editing = TRUE;
@@ -353,11 +356,19 @@ wbcg_edit_start (WorkbookControlGUI *wbc
col = sheet->edit_pos.col;
row = sheet->edit_pos.row;
+ cell = sheet_cell_get (sheet, col, row);
+
+ /* don't edit a locked cell */
+ if (wbv->protected &&
+ mstyle_get_content_locked(cell_get_mstyle(cell))) {
+ inside_editing = FALSE;
+ wb_control_locked_msg(WORKBOOK_CONTROL (wbcg), cell);
+ return FALSE;
+ }
+
application_clipboard_unant ();
workbook_edit_set_sensitive (wbcg, TRUE, FALSE);
- cell = sheet_cell_get (sheet, col, row);
-
if (!blankp) {
if (cell != NULL)
text = cell_get_entered_text (cell);
@@ -416,6 +427,7 @@ wbcg_edit_start (WorkbookControlGUI *wbc
g_free (text);
inside_editing = FALSE;
+ return TRUE;
}
GnumericExprEntry *
Index: src/workbook-edit.h
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-edit.h,v
retrieving revision 1.13
diff -u -p -r1.13 workbook-edit.h
--- src/workbook-edit.h 2001/11/11 00:18:57 1.13
+++ src/workbook-edit.h 2002/02/20 18:38:46
@@ -8,7 +8,7 @@
void wbcg_edit_ctor (WorkbookControlGUI *wbcg);
void wbcg_edit_dtor (WorkbookControlGUI *wbcg);
gboolean wbcg_edit_finish (WorkbookControlGUI *wbcg, gboolean accept);
-void wbcg_edit_start (WorkbookControlGUI *wbcg,
+gboolean wbcg_edit_start (WorkbookControlGUI *wbcg,
gboolean blankp, gboolean cursorp);
void wbcg_edit_attach_guru (WorkbookControlGUI *wbcg, GtkWidget *guru);
Index: src/workbook-view.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-view.c,v
retrieving revision 1.79.2.1
diff -u -p -r1.79.2.1 workbook-view.c
--- src/workbook-view.c 2002/01/31 03:11:27 1.79.2.1
+++ src/workbook-view.c 2002/02/20 18:38:46
@@ -53,6 +53,7 @@ enum {
ARG_VIEW_VSCROLLBAR,
ARG_VIEW_TABS,
ARG_VIEW_DO_AUTO_COMPLETION,
+ ARG_VIEW_PROTECTED,
};
/* WorkbookView signals */
@@ -402,6 +403,9 @@ wb_view_set_arg (GtkObject *object, GtkA
case ARG_VIEW_DO_AUTO_COMPLETION:
wbv->do_auto_completion = GTK_VALUE_BOOL (*arg);
break;
+ case ARG_VIEW_PROTECTED:
+ wbv->protected = GTK_VALUE_BOOL (*arg);
+ break;
}
wb_view_prefs_update (wbv);
}
@@ -429,6 +433,10 @@ wb_view_get_arg (GtkObject *object, GtkA
case ARG_VIEW_DO_AUTO_COMPLETION:
GTK_VALUE_BOOL (*arg) = wbv->do_auto_completion;
break;
+
+ case ARG_VIEW_PROTECTED:
+ GTK_VALUE_BOOL (*arg) = wbv->protected;
+ break;
}
}
@@ -513,6 +521,7 @@ workbook_view_init (WorkbookView *wbv, W
wbv->show_vertical_scrollbar = TRUE;
wbv->show_notebook_tabs = TRUE;
wbv->do_auto_completion = application_use_auto_complete ();
+ wbv->protected = FALSE;
/* Set the default operation to be performed over selections */
wbv->auto_expr = NULL;
@@ -557,6 +566,9 @@ workbook_view_class_init (GtkObjectClass
gtk_object_add_arg_type ("WorkbookView::do_auto_completion",
GTK_TYPE_BOOL, GTK_ARG_READWRITE,
ARG_VIEW_DO_AUTO_COMPLETION);
+ gtk_object_add_arg_type ("WorkbookView::protected",
+ GTK_TYPE_BOOL, GTK_ARG_READWRITE,
+ ARG_VIEW_PROTECTED);
workbook_view_signals [SHEET_ENTERED] =
gtk_signal_new (
Index: src/workbook-view.h
===================================================================
RCS file: /cvs/gnome/gnumeric/src/workbook-view.h,v
retrieving revision 1.25.2.1
diff -u -p -r1.25.2.1 workbook-view.h
--- src/workbook-view.h 2002/01/31 03:11:27 1.25.2.1
+++ src/workbook-view.h 2002/02/20 18:38:46
@@ -18,6 +18,7 @@ struct _WorkbookView {
gboolean show_vertical_scrollbar;
gboolean show_notebook_tabs;
gboolean do_auto_completion;
+ gboolean protected;
/* Non-normative size information */
int preferred_width, preferred_height;
Index: src/dialogs/cell-format.glade
===================================================================
RCS file: /cvs/gnome/gnumeric/src/dialogs/cell-format.glade,v
retrieving revision 1.46
diff -u -p -r1.46 cell-format.glade
--- src/dialogs/cell-format.glade 2002/01/21 02:08:58 1.46
+++ src/dialogs/cell-format.glade 2002/02/18 21:06:56
@@ -3235,7 +3235,6 @@ Double
GtkCheckButton
protection_sheet_protected
- False
True
False
Index: src/dialogs/dialog-cell-format.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/dialogs/dialog-cell-format.c,v
retrieving revision 1.195
diff -u -p -r1.195 dialog-cell-format.c
--- src/dialogs/dialog-cell-format.c 2002/01/12 08:07:01 1.195
+++ src/dialogs/dialog-cell-format.c 2002/02/20 18:38:46
@@ -33,6 +33,7 @@
#include
#include
#include
+#include
#include
#include
@@ -158,7 +159,10 @@ typedef struct _FormatState
PatternPicker pattern;
} back;
struct {
- GtkCheckButton *hidden, *locked;
+ GtkCheckButton *hidden, *locked, *sheet_protected;
+
+ gboolean sheet_protected_changed;
+ gboolean sheet_protected_value;
} protection;
struct {
GtkTable *criteria_table;
@@ -1977,6 +1981,17 @@ cb_protection_hidden_toggle (GtkToggleBu
}
static void
+cb_protection_sheet_protected_toggle (GtkToggleButton *button, FormatState *state)
+{
+ if (state->enable_edit) {
+ state->protection.sheet_protected_value =
+ gtk_toggle_button_get_active (button);
+ state->protection.sheet_protected_changed = TRUE;
+ fmt_dialog_changed (state);
+ }
+}
+
+static void
fmt_dialog_init_protection_page (FormatState *state)
{
GtkWidget *w;
@@ -1999,6 +2014,15 @@ fmt_dialog_init_protection_page (FormatS
gtk_signal_connect (GTK_OBJECT (w),
"toggled", GTK_SIGNAL_FUNC (cb_protection_hidden_toggle),
state);
+
+ state->protection.sheet_protected_changed = FALSE;
+ flag = wb_control_view (WORKBOOK_CONTROL (state->wbcg))->protected;
+ w = glade_xml_get_widget (state->gui, "protection_sheet_protected");
+ state->protection.sheet_protected = GTK_CHECK_BUTTON (w);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), flag);
+ gtk_signal_connect (GTK_OBJECT (w),
+ "toggled", GTK_SIGNAL_FUNC (cb_protection_sheet_protected_toggle),
+ state);
}
/*****************************************************************************/
@@ -2320,6 +2353,11 @@ cb_fmt_dialog_dialog_apply (GtkObject *w
if (state->validation.changed)
validation_rebuild_validation (state);
+ if (state->protection.sheet_protected_changed) {
+ wb_control_view (WORKBOOK_CONTROL (state->wbcg))->protected
+ = state->protection.sheet_protected_value;
+ state->protection.sheet_protected_changed = FALSE;
+ }
mstyle_ref (state->result);
Index: src/dialogs/dialog-workbook-attr.c
===================================================================
RCS file: /cvs/gnome/gnumeric/src/dialogs/dialog-workbook-attr.c,v
retrieving revision 1.19
diff -u -p -r1.19 dialog-workbook-attr.c
--- src/dialogs/dialog-workbook-attr.c 2002/01/03 07:28:51 1.19
+++ src/dialogs/dialog-workbook-attr.c 2002/02/20 18:38:46
@@ -48,6 +48,7 @@ typedef struct _AttrState
GtkToggleButton *show_vsb;
GtkToggleButton *show_tabs;
GtkToggleButton *autocomplete;
+ GtkToggleButton *protected;
} view;
} AttrState;
@@ -95,6 +96,8 @@ cb_attr_dialog_dialog_apply (GtkObject *
gtk_toggle_button_get_active (state->view.show_tabs);
state->wbv->do_auto_completion =
gtk_toggle_button_get_active (state->view.autocomplete);
+ state->wbv->protected =
+ gtk_toggle_button_get_active (state->view.protected);
wb_view_prefs_update (state->wbv);
}
@@ -148,6 +151,9 @@ attr_dialog_init_view_page (AttrState *s
state->view.autocomplete = attr_dialog_init_toggle (state,
"WorkbookView::do_auto_completion",
state->wbv->do_auto_completion);
+ state->view.protected = attr_dialog_init_toggle (state,
+ "WorkbookView::workbook_protected",
+ state->wbv->protected);
}
/*****************************************************************************/
Index: src/dialogs/workbook-attr.glade
===================================================================
RCS file: /cvs/gnome/gnumeric/src/dialogs/workbook-attr.glade,v
retrieving revision 1.9
diff -u -p -r1.9 workbook-attr.glade
--- src/dialogs/workbook-attr.glade 2001/11/01 20:43:38 1.9
+++ src/dialogs/workbook-attr.glade 2002/02/20 18:38:46
@@ -161,6 +161,54 @@
0
0
+
+
+ GtkTable
+ table2
+ 4
+ 1
+ 2
+ False
+ 0
+ 0
+
+
+ GtkCheckButton
+ WorkbookView::workbook_protected
+ True
+
+ False
+ True
+
+ 0
+ 2
+ 0
+ 1
+ 0
+ 0
+ False
+ False
+ False
+ False
+ True
+ False
+
+
+
+
+
+ GtkLabel
+ Notebook:tab
+ label2
+
+ GTK_JUSTIFY_CENTER
+ False
+ 0.5
+ 0.5
+ 0
+ 0
+
+