Module: environment-tools Synopsis: Environment options Author: Chris Page Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND /// Environment options define constant = one-of(#"no", // Do nothing #"start-dialog", // Show startup options dialog #"open-file"); // Open a file (shows Open dialog) define settings () key-name "Environment"; slot start-action :: = #"start-dialog"; slot start-dialog-action :: = #"example"; slot about-box-action :: = #"initial"; slot default-save-databases :: = #t; slot default-copy-sources :: = #f; //FIXME: this should be reverted to #"ask" once library dylan //builds without serious warnings slot default-link-mode :: = #"force"; slot default-upgrade-warnings :: = #f; slot application-confirm-stop :: = #t; slot opened-project-active :: = #t; slot started-project-active :: = #t; slot qualify-names :: = #t; // The type of the next two is really ... slot auto-raise-all-frames :: = #"primary-frame"; slot auto-lower-all-frames :: = #"primary-frame"; end settings ; define constant $environment-settings = make(); define function environment-start-action () => (action :: ) $environment-settings.start-action end function environment-start-action; define function environment-start-dialog-action () => (action :: ) $environment-settings.start-dialog-action end function environment-start-dialog-action; define function environment-start-dialog-action-setter (action :: ) => (action :: ) $environment-settings.start-dialog-action := action end function environment-start-dialog-action-setter; /*---*** andrewa: we aren't using this, for the moment define function environment-about-box-action () => (action :: ) $environment-settings.about-box-action end function environment-about-box-action; */ define function environment-default-save-databases () => (save? :: ) $environment-settings.default-save-databases end function environment-default-save-databases; define function environment-default-copy-sources () => (copy? :: ) $environment-settings.default-copy-sources end function environment-default-copy-sources; define function environment-default-link-mode () => (mode :: ) $environment-settings.default-link-mode end function environment-default-link-mode; define function environment-default-upgrade-warnings () => (upgrade? :: ) $environment-settings.default-upgrade-warnings end function environment-default-upgrade-warnings; define function environment-application-confirm-stop? () => (confirm? :: ) $environment-settings.application-confirm-stop end function environment-application-confirm-stop?; define function environment-active-on-starting? () => (confirm? :: ) $environment-settings.started-project-active end function environment-active-on-starting?; define function environment-active-on-opening? () => (confirm? :: ) $environment-settings.opened-project-active end function environment-active-on-opening?; define function environment-qualify-names? () => (qualify? :: ) $environment-settings.qualify-names end function environment-qualify-names?; define function environment-auto-raise-all-frames () => (auto-raise :: ) $environment-settings.auto-raise-all-frames end function environment-auto-raise-all-frames; define function environment-auto-lower-all-frames () => (auto-lower :: ) $environment-settings.auto-lower-all-frames end function environment-auto-lower-all-frames; /// Environment options dialog define pane () sealed slot %start-action :: , required-init-keyword: start-action:; sealed slot %confirm-stop? :: , required-init-keyword: confirm-stop?:; sealed slot %qualify-names? :: , required-init-keyword: qualify-names?:; sealed slot %active-on-opening? :: , required-init-keyword: active-on-opening?:; sealed slot %active-on-starting? :: , required-init-keyword: active-on-starting?:; pane %start-action-pane (pane) make(, orientation: #"vertical", items: #[#["Show start options &dialog", #"start-dialog"], #["&Open a file", #"open-file"], #["Do ¬hing", #"no"]], value: pane.%start-action, label-key: first, value-key: second, value-changed-callback: method (box) pane.%start-action := gadget-value(box) end); pane %qualify-names-pane (pane) make(, label: "&Qualify object names using module and/or library", value: pane.%qualify-names?, value-changed-callback: method (button) pane.%qualify-names? := gadget-value(button) end); pane %confirm-stop-pane (pane) make(, label: "&Confirm before stopping application", value: pane.%confirm-stop?, value-changed-callback: method (button) pane.%confirm-stop? := gadget-value(button) end); pane %active-on-opening-pane (pane) make(, label: "Project becomes active when &opened", value: pane.%active-on-opening?, value-changed-callback: method (button) pane.%active-on-opening? := gadget-value(button) end); pane %active-on-starting-pane (pane) make(, label: "Project becomes active when application &started", value: pane.%active-on-starting?, value-changed-callback: method (button) pane.%active-on-starting? := gadget-value(button) end); layout (pane) vertically (spacing: 2) grouping ("Startup", max-width: $fill) vertically (spacing: 8) make(