home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
p2demo21.exe
/
PEL
/
SETTINGS.PEL
< prev
next >
Wrap
Text File
|
1995-03-20
|
71KB
|
2,050 lines
# $Header: P:\source\wmacros\settings.pev 1.143 20 Mar 1995 16:54:30 NOBLE $
## $Tabs:4 7$
##############################################################################
#
# Compuware Corporation
# 31440 Northwestern Highway
# Farmington Hills, Michigan 48334-2564
#
# This source code listing contains information that is
# proprietary to Compuware Corporation and may not be copied
# duplicated, translated, transmitted, stored, retrieved
# or in any manner or by any method conveyed or disclosed
# to a third party or parties without express written
# permission from Compuware Corporation.
#
#
##############################################################################
#### $Workfile: settings.pel $: Notebook settings
local key_bindings_set = 0
local IDD_CURSOR_PAGE = 1580;
local IDE_CURSOR_WIDTH = 104;
local IDE_CURSOR_HEIGHT = 105;
local IDC_CURSOR_GRAY = 103;
local IDR_CURSOR_VERTICAL = 106;
local IDR_CURSOR_HORIZONTAL = 107;
local IDR_CURSOR_CUSTOM = 108;
local local_cur_text; # Name of the cursor currently being used modified
local save_normal; # Variables used to save the cursor settings
local save_overtype;
local save_virtual;
local save_virtual_overtype;
local default_vert = 0x02FF; # default vertical normal cursor
local default_horz = 0xFF03; # default horizontal normal cursor
local NORMAL = "Normal";
local OVERTYPE = "Overtype";
local VIRTUAL = "Virtual";
local VOVERTYPE = "Virtual Overtype";
global STB_MASK2 = STB_LEVELS + STB_PAUSEONERR;
global STB_MASK1 = STB_DYNA_SIZE + STB_CLOCK + STB_TOTAL_INDS + STB_PROMPTS + STB_MESSAGES + STB_POSITION;
local IDC_STB_BUFFER_OFFSET = 1120
local IDB_ISPF_SETTINGS = 1001
local ph
local dh
local IDQ # array containing control ids for Quick Settings dialog
global emulations[] # array containing all possible emulation modes
local modified_types[] # array containing extensions for all modified types
local language_modified = 0
local new_mdi_mode = 0
local new_one_buff = 0
# this line causes init_constants to be called when globals are initialized
local dummy = init_constants()
local function init_constants()
{
dummy++ # line to stop warning about variable declared and not used.
emulations["brief"] = "Brief"
emulations["vi"] = "vi"
emulations["cua"] = "CUA"
emulations["emacs"] = "Emacs"
emulations["ispf"] = "ISPF"
emulations["native"] = "Native"
IDQ.QUICK_SETTINGS_DLG = 1650
IDQ.EMULATION = 1651
IDQ.CURSOR_HORZ = 1652
IDQ.CURSOR_VERT = 1653
IDQ.SBAR_PROMPTS = 1654
IDQ.SBAR_DYNASIZE = 1655
IDQ.SAVE_BACKUP = 1656
IDQ.SAVE_AUTOSAVE = 1657
IDQ.WINDOW_SINGLE = 1658
IDQ.WINDOW_MULT = 1659
IDQ.WINDOW_DETACHED = 1660
IDQ.WINDOW_ONEBUFF = 1661
IDQ.WINDOW_LINENUMS = 1662
IDQ.WINDOW_VERT = 1663
IDQ.WINDOW_HORZ = 1664
IDQ.TYPES_TYPE = 1665
IDQ.TYPES_EXTENSION = 1666
IDQ.TYPES_TEMPLATE = 1667
IDQ.BUFF_COLOR = 1668
IDQ.BUFF_INDENT = 1669
IDQ.BUFF_EXPAND = 1670
if(isWindows())
IDQ.HELP = "Quick Settings"
else
IDQ.HELP = "quick_settings"
dh.EditSettings = 0;
dh.SaveSettings = 0;
dh.SearchSettings = 0;
dh.DirectorySettings = 0;
dh.CursorSettings = 0;
dh.StatusBarSettings1 = 0;
dh.StatusBarSettings2 = 0;
dh.VCSSettings = 0;
ph.EditSettings = 0;
ph.SaveSettings = 0;
ph.SearchSettings = 0;
ph.DirectorySettings = 0;
ph.CursorSettings = 0;
ph.StatusBarSettings1 = 0;
ph.StatusBarSettings2 = 0;
ph.VCSSettings = 0;
ph.KeysSettings = 0;
}
global function editor_settings_notebook(dlgid)
{
local dhHelpSettings = 0, phHelpSettings;
STB_MASK1 = STB_DYNA_SIZE + STB_CLOCK + STB_TOTAL_INDS + STB_PROMPTS + STB_MESSAGES + STB_POSITION;
STB_MASK2 = STB_LEVELS + STB_PAUSEONERR;
nb_initializing = TRUE;
if (dlgid)
{
if(status_bar_flags )
message( "Creating Editor Settings pages..." );
# Add the pages to the notebook
#
# dhHelpSettings = create_page(function_id( "nop_settings_callback"),
# dlgid, IDD_EDITOR_HELP_PAGE, resource_dll );
phHelpSettings = append_notebook_page( dlgid, dhHelpSettings,
" ",
"Editor", NBTAB_MAJOR )
# nbPagePrefix[phHelpSettings].dialog_handle = dhHelpSettings;
nbPagePrefix[phHelpSettings].name = "edithelp";
# create_edithelp_page(phHelpSettings, dlgid);
ph.EditSettings = append_notebook_page(dlgid, dh.EditSettings,
" Emulation Mode",
"Emulation", NBTAB_MINOR )
nbPagePrefix[ph.EditSettings].name = "edit";
ph.SaveSettings = append_notebook_page(dlgid, dh.SaveSettings,
" Save Options", "Save", NBTAB_MINOR )
nbPagePrefix[ph.SaveSettings].name = "save";
ph.SearchSettings = append_notebook_page(dlgid, dh.SearchSettings,
" Search Options", "Search", NBTAB_MINOR )
nbPagePrefix[ph.SearchSettings].name = "search";
ph.StatusBarSettings1 = append_notebook_page(dlgid, dh.StatusBarSettings1,
" Status Bar Options",
"Status Bar", NBTAB_MINOR )
nbPagePrefix[ph.StatusBarSettings1].name = "stb1";
ph.StatusBarSettings2 = append_notebook_page(dlgid, dh.StatusBarSettings2,
" Message Level",
"Msg. Level", NBTAB_MINOR)
nbPagePrefix[ph.StatusBarSettings2].name = "stb2";
ph.DirectorySettings = append_notebook_page(dlgid, dh.DirectorySettings,
" Backup and Tags Paths",
"Directories", NBTAB_MINOR )
nbPagePrefix[ph.DirectorySettings].name = "dir";
ph.CursorSettings = append_notebook_page(dlgid, dh.CursorSettings,
" Cursor Size",
"Cursor", NBTAB_MINOR )
nbPagePrefix[ph.CursorSettings].name = "cursor";
if(function_id("create_vcs_page"))
{
ph.VCSSettings = append_notebook_page(dlgid, dh.VCSSettings,
" Version Control System",
"VCS", NBTAB_MINOR )
nbPagePrefix[ph.VCSSettings].name = "vcs";
}
}
else
{
warning("Illegal call to window_settings_notebook()");
}
nb_initializing = FALSE;
}
global function reset_editor_settings_notebook()
{
dh.EditSettings = 0
dh.SaveSettings = 0
dh.SearchSettings = 0
dh.DirectorySettings = 0
dh.CursorSettings = 0
dh.StatusBarSettings1 = 0
dh.StatusBarSettings2 = 0
dh.VCSSettings = 0
ph.EditSettings = 0
ph.SaveSettings = 0
ph.SearchSettings = 0
ph.DirectorySettings = 0
ph.CursorSettings = 0
ph.StatusBarSettings1 = 0
ph.StatusBarSettings2 = 0
ph.VCSSettings = 0
ph.KeysSettings = 0
key_bindings_set = 0
local_cur_text = "";
}
########################## EDITOR NOTEBOOK #################################
global function create_edithelp_page(pageid, dlgid)
{
local dhHelpSettings;
dhHelpSettings = create_page(function_id( "nop_settings_callback"),
dlgid, IDD_EDITOR_HELP_PAGE, resource_dll );
attach_help(editor_helpfile, dhHelpSettings);
if(isWindows())
nbPagePrefix[pageid].help = "Emulation Settings";
else
nbPagePrefix[pageid].help = "editpages";
set_notebook_page_dialog(dlgid, pageid, dhHelpSettings);
nbPagePrefix[pageid].dialog_handle = dhHelpSettings;
}
global function create_edit_page(pageid, dlgid)
{
dh.EditSettings = create_page(function_id( "edit_settings_callback" ),
dlgid, IDD_EDIT_SETTINGS, resource_dll )
add_dialog_item( dh.EditSettings, IDB_UNDO, DCTRL_PUSH_BUTTON )
attach_help(editor_helpfile, dh.EditSettings);
if(isWindows())
nbPagePrefix[pageid].help = "Emulation Settings";
else
nbPagePrefix[pageid].help = "emulationpage";
initialize_edit_settings( dh.EditSettings )
set_notebook_page_dialog(dlgid, pageid, dh.EditSettings);
nbPagePrefix[pageid].dialog_handle = dh.EditSettings;
}
global function create_save_page(pageid, dlgid)
{
dh.SaveSettings = create_page(function_id( "save_settings_callback" ),
dlgid, IDD_SAVE_SETTINGS, resource_dll);
add_dialog_item( dh.SaveSettings, IDB_UNDO, DCTRL_PUSH_BUTTON )
attach_help(editor_helpfile, dh.SaveSettings)
if(isWindows())
nbPagePrefix[pageid].help = "Save Settings";
else
nbPagePrefix[pageid].help = "savepage";
initialize_save_settings( dh.SaveSettings );
set_notebook_page_dialog(dlgid, pageid, dh.SaveSettings);
nbPagePrefix[pageid].dialog_handle = dh.SaveSettings;
}
global function create_search_page(pageid, dlgid)
{
dh.SearchSettings = create_page(function_id( "search_settings_callback" ),
dlgid, IDD_SEARCH_SETTINGS, resource_dll);
add_dialog_item( dh.SearchSettings, IDB_UNDO, DCTRL_PUSH_BUTTON )
attach_help(editor_helpfile, dh.SearchSettings)
if(isWindows())
nbPagePrefix[pageid].help = "Search Settings";
else
nbPagePrefix[pageid].help = "searchpage";
initialize_search_settings( dh.SearchSettings ) ;
set_notebook_page_dialog(dlgid, pageid, dh.SearchSettings);
nbPagePrefix[pageid].dialog_handle = dh.SearchSettings;
}
global function create_stb1_page(pageid, dlgid)
{
dh.StatusBarSettings1 = create_page(function_id( "stb1_settings_callback" ),
dlgid, IDD_STATUS_BAR_SETTINGS1, resource_dll);
add_dialog_item( dh.StatusBarSettings1, IDB_UNDO, DCTRL_PUSH_BUTTON );
attach_help(editor_helpfile, dh.StatusBarSettings1);
if(isWindows())
nbPagePrefix[pageid].help = "Status Bar Settings";
else
nbPagePrefix[pageid].help = "statusbarpage";
initialize_stb1_settings( dh.StatusBarSettings1 );
set_notebook_page_dialog(dlgid, pageid, dh.StatusBarSettings1);
nbPagePrefix[pageid].dialog_handle = dh.StatusBarSettings1;
}
global function create_stb2_page(pageid, dlgid)
{
dh.StatusBarSettings2 = create_page(function_id( "stb2_settings_callback" ),
dlgid, IDD_STATUS_BAR_SETTINGS2, resource_dll)
add_dialog_item( dh.StatusBarSettings2, IDB_UNDO, DCTRL_PUSH_BUTTON);
attach_help(editor_helpfile, dh.StatusBarSettings2);
if(isWindows())
nbPagePrefix[pageid].help = "Message Level Settings";
else
nbPagePrefix[pageid].help = "msgpage";
initialize_stb2_settings( dh.StatusBarSettings2 );
set_notebook_page_dialog(dlgid, pageid, dh.StatusBarSettings2);
nbPagePrefix[pageid].dialog_handle = dh.StatusBarSettings2;
}
global function create_dir_page(pageid, dlgid)
{
dh.DirectorySettings = create_page(function_id( "directories_settings_callback" ),
dlgid, IDD_DIRECTORIES_SETTINGS, resource_dll);
add_dialog_item( dh.DirectorySettings, IDB_UNDO, DCTRL_PUSH_BUTTON );
attach_help(editor_helpfile, dh.DirectorySettings);
if(isWindows())
nbPagePrefix[pageid].help = "Directory Settings";
else
nbPagePrefix[pageid].help = "dirspage";
initialize_dir_settings( dh.DirectorySettings );
set_notebook_page_dialog(dlgid, pageid, dh.DirectorySettings);
nbPagePrefix[pageid].dialog_handle = dh.DirectorySettings;
}
global function create_cursor_page(pageid, dlgid)
{
dh.CursorSettings = create_page(function_id( "cursor_settings_callback" ),
dlgid, IDD_CURSOR_PAGE, resource_dll);
add_dialog_item( dh.CursorSettings, IDB_UNDO, DCTRL_PUSH_BUTTON );
attach_help(editor_helpfile, dh.CursorSettings);
if(isWindows())
nbPagePrefix[pageid].help = "Cursor Settings";
else
nbPagePrefix[pageid].help = "cursorpage";
save_cursor_settings();
initialize_cursor_settings( dh.CursorSettings );
set_notebook_page_dialog(dlgid, pageid, dh.CursorSettings);
nbPagePrefix[pageid].dialog_handle = dh.CursorSettings;
}
########################## EDITOR PAGE #################################
# local undo_emulation_mode;
local function initialize_edit_settings( handle )
{
local i
nb_initializing = TRUE;
add_dialog_item( handle, IDB_ISPF_SETTINGS, DCTRL_PUSH_BUTTON )
if(!key_bindings_set )
{
key_bindings_set = 1
for (i in emulations)
{
if (function_id( i ))
set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_ADD_ITEM, emulations[i])
}
if (function_id( "ispf" ))
{
set_dialog_item(handle, IDB_ISPF_SETTINGS, DAC_DISABLE );
}
else
set_dialog_item(handle, IDB_ISPF_SETTINGS, DAC_HIDE );
# if (function_id( "brief" ))
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_ADD_ITEM, "Brief")
#
# if (function_id( "cua" ))
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_ADD_ITEM, "CUA")
#
# if (function_id( "emacs" ))
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_ADD_ITEM, "Emacs")
#
# if (function_id( "ispf" ))
# {
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_ADD_ITEM, "ISPF")
# set_dialog_item(handle, IDB_ISPF_SETTINGS, DAC_DISABLE );
# }
# else
# set_dialog_item(handle, IDB_ISPF_SETTINGS, DAC_HIDE );
#
#
# if (function_id( "native" ))
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_ADD_ITEM, "Native")
#
# if (function_id( "vi" ))
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_ADD_ITEM, "vi")
}
set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, emulations[emulation_mode])
# if(emulation_mode == "cua" )
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, "CUA")
#
# else if(emulation_mode == "brief" )
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, "Brief")
#
# else if(emulation_mode == "emacs" )
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, "Emacs")
#
# else if(emulation_mode == "native" )
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, "Native")
#
# else if(emulation_mode == "vi" )
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, "vi")
#
# else if(emulation_mode == "ispf" )
# {
# set_dialog_item(handle, IDB_ISPF_SETTINGS, DAC_ENABLE );
# set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, "ISPF")
# }
nb_initializing = FALSE;
}
global function nop_settings_callback()
{
if (callback_msg == DM_CANCEL )
return DRC_MSG_PROCESSED;
else if(callback_msg == DM_HELPREQUESTED)
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
return DRC_CONTINUE
}
global function edit_settings_callback()
{
local ret_val, return_msg = DRC_CONTINUE;
local handle = callback_dialog_handle
# enable_undo( callback_dialog_handle, callback_index )
if( callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
return_msg = DRC_MSG_PROCESSED
}
else if(callback_msg == DM_CANCEL )
{
nbPagePrefix[current_nb_page].modified = FALSE;
return_msg = DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
if ( callback_index == IDB_ISPF_SETTINGS )
{
optional_function("create_ispf_page", handle )
nbPagePrefix[current_nb_page].modified = FALSE;
return_msg = DRC_MSG_PROCESSED
}
else
{
enable_undo(handle, callback_index);
return_msg = DRC_MSG_PROCESSED;
if(callback_index == IDB_UNDO)
{
nbPagePrefix[current_nb_page].modified = FALSE;
initialize_edit_settings(handle)
}
else if(callback_index == IDB_DEFAULT )
{
nbPagePrefix[current_nb_page].modified = TRUE;
default_edit_settings(handle)
}
}
}
else if(callback_msg == DM_SELECT )
{
enable_undo(handle, callback_index);
if ( query_dialog_item( handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM) == "ISPF" )
set_dialog_item(handle, IDB_ISPF_SETTINGS, DAC_ENABLE );
else
set_dialog_item(handle, IDB_ISPF_SETTINGS, DAC_DISABLE );
nbPagePrefix[current_nb_page].modified = TRUE;
return_msg = DRC_MSG_PROCESSED
}
return return_msg;
}
########################## SAVE PAGE #################################
#local undo_save_state;
#local undo_save_flags
#local undo_autosave_time;
#local undo_backup_files_enabled;
#local undo_autosave;
local function initialize_save_settings( handle )
{
nb_initializing = TRUE;
set_dialog_item( handle, IDE_AUTOSAVE_DELAY, DAC_SPIN_LIMITS, 1, 360 )
set_dialog_item( handle, IDE_AUTOSAVE_DELAY, DAC_SPIN_VALUE, autosave_time/60)
if(autosave_active() )
{
set_dialog_item( handle, IDC_AUTOSAVE, DAC_CHECK)
set_dialog_item( handle, IDE_AUTOSAVE_DELAY, DAC_ENABLE)
}
else
{
set_dialog_item( handle, IDC_AUTOSAVE, DAC_UNCHECK)
set_dialog_item( handle, IDE_AUTOSAVE_DELAY, DAC_DISABLE)
}
if(and( save_flags, SAVE_DIRECTORY) )
set_dialog_item( handle, IDC_SAVE_DIRECTORY, DAC_CHECK)
else
set_dialog_item( handle, IDC_SAVE_DIRECTORY, DAC_UNCHECK)
if(save_state )
{
set_dialog_item( handle, IDC_SAVE_STATE, DAC_CHECK)
set_dialog_item( handle, IDC_SAVE_DIRECTORY, DAC_ENABLE)
}
else
{
set_dialog_item( handle, IDC_SAVE_STATE, DAC_UNCHECK)
set_dialog_item( handle, IDC_SAVE_DIRECTORY, DAC_DISABLE)
}
if(and( save_flags, SAVE_SETTINGS ) )
set_dialog_item( handle, IDC_SAVE_SETTINGS, DAC_CHECK)
else
set_dialog_item( handle, IDC_SAVE_SETTINGS, DAC_UNCHECK)
if(and( save_flags, SAVE_SEARCH) )
set_dialog_item( handle, IDC_SAVE_SEARCH, DAC_CHECK)
else
set_dialog_item( handle, IDC_SAVE_SEARCH, DAC_UNCHECK)
if(and( save_flags, SAVE_COMMANDS) )
set_dialog_item( handle, IDC_SAVE_COMMANDS, DAC_CHECK)
else
set_dialog_item( handle, IDC_SAVE_COMMANDS, DAC_UNCHECK)
if(backup_files_enabled )
set_dialog_item( handle, IDC_BACKUP_FILES, DAC_CHECK)
else
set_dialog_item( handle, IDC_BACKUP_FILES, DAC_UNCHECK)
nb_initializing = FALSE
}
global function save_settings_callback()
{
local ret_val = DRC_CONTINUE
local is_checked = FALSE
local bit = 0
enable_undo( callback_dialog_handle, callback_index )
if(nb_initializing)
return DRC_MSG_PROCESSED
if( callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
return DRC_MSG_PROCESSED
}
if(callback_msg == DM_CANCEL )
{
nbPagePrefix[current_nb_page].modified = FALSE;
return DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
if(callback_index == IDB_UNDO )
{
nbPagePrefix[current_nb_page].modified = FALSE;
initialize_save_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDB_DEFAULT )
{
nbPagePrefix[current_nb_page].modified = TRUE;
default_save_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDE_AUTOSAVE_DELAY )
{
nbPagePrefix[current_nb_page].modified = TRUE;
return DRC_MSG_PROCESSED
}
is_checked = query_dialog_item( callback_dialog_handle, callback_index, DAC_CHECK )
if(callback_index == IDC_AUTOSAVE )
{
if(is_checked )
{
set_dialog_item( callback_dialog_handle, IDE_AUTOSAVE_DELAY, DAC_ENABLE )
}
else
{
set_dialog_item( callback_dialog_handle, IDE_AUTOSAVE_DELAY, DAC_DISABLE )
}
nbPagePrefix[current_nb_page].modified = TRUE;
ret_val = DRC_MSG_PROCESSED
}
else if(callback_index == IDC_SAVE_STATE )
{
if(is_checked )
set_dialog_item( callback_dialog_handle, IDC_SAVE_DIRECTORY,
DAC_ENABLE)
else
set_dialog_item( callback_dialog_handle, IDC_SAVE_DIRECTORY,
DAC_DISABLE)
nbPagePrefix[current_nb_page].modified = TRUE;
ret_val = DRC_MSG_PROCESSED
}
}
else if ( callback_msg == DM_SPIN_CHANGE )
{
if ( callback_index == IDE_AUTOSAVE_DELAY )
{
# validate the value the user entered
query_dialog_item( callback_dialog_handle, IDE_AUTOSAVE_DELAY, DAC_SPIN_VALUE )
nbPagePrefix[current_nb_page].modified = TRUE;
}
}
return ret_val
}
########################## SEARCH PAGE #################################
#local undo_search_flags;
#local undo_word_delimiter;
local function initialize_search_settings( handle )
{
nb_initializing = TRUE;
if(and( search_flags, SEARCH_FORWARD) )
set_dialog_item( handle, IDC_SEARCH_FORWARD, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_FORWARD, DAC_UNCHECK)
if(and( search_flags, SEARCH_WHOLE_WORD) )
set_dialog_item( handle, IDC_SEARCH_WORD, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_WORD, DAC_UNCHECK)
if(and( search_flags, SEARCH_MAXIMAL_MATCH) )
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_UNCHECK)
if(and( search_flags, SEARCH_REGEX) )
{
set_dialog_item( handle, IDC_SEARCH_REGEX, DAC_CHECK)
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_ENABLE)
}
else
{
set_dialog_item( handle, IDC_SEARCH_REGEX, DAC_UNCHECK)
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_DISABLE)
}
if(and( search_flags, SEARCH_CASE) )
set_dialog_item( handle, IDC_SEARCH_CASE, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_CASE, DAC_UNCHECK)
if(and( search_flags, SEARCH_WRAPS) )
set_dialog_item( handle, IDC_SEARCH_WRAP, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_WRAP, DAC_UNCHECK)
if(and( search_flags, SEARCH_HIGHLIGHT) )
set_dialog_item( handle, IDC_SEARCH_HIGHLIGHT, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_HIGHLIGHT, DAC_UNCHECK)
if(and( search_flags, SEARCH_CENTER_CURSOR) )
set_dialog_item( handle, IDC_SEARCH_CENTER, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_CENTER, DAC_UNCHECK)
set_dialog_item( handle, IDE_WORD_DELIMITER, DAC_EDIT_TEXT,
word_delimiter)
set_dialog_item(handle, IDE_WORD_DELIMITER, DAC_SET_TEXT_LEN, 256);
nb_initializing = FALSE
}
global function search_settings_callback()
{
local ret_val, check, new_val;
enable_undo( callback_dialog_handle, callback_index )
if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
return DRC_MSG_PROCESSED
}
if(callback_msg == DM_CANCEL )
{
nbPagePrefix[current_nb_page].modified = FALSE;
return DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
if(callback_index == IDB_UNDO )
{
nbPagePrefix[current_nb_page].modified = FALSE;
initialize_search_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDB_DEFAULT )
{
nbPagePrefix[current_nb_page].modified = TRUE;
default_search_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDC_SEARCH_REGEX )
{
nbPagePrefix[current_nb_page].modified = TRUE;
ret_val = query_dialog_item( callback_dialog_handle, callback_index, DAC_CHECK)
check = ret_val ? DAC_ENABLE : DAC_DISABLE
set_dialog_item(callback_dialog_handle, IDC_SEARCH_MAX_MATCH, check)
}
else
{
nbPagePrefix[current_nb_page].modified = TRUE;
}
return DRC_MSG_PROCESSED
}
return DRC_CONTINUE
}
########################## STATUS BAR PAGE 1 #################################
local function initialize_stb1_settings( handle )
{
nb_initializing = TRUE
if(and( status_bar_flags, STB_MESSAGES) )
set_dialog_item( handle, IDC_STB_MESSAGE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_MESSAGE, DAC_UNCHECK)
if(and( status_bar_flags, STB_PROMPTS) )
set_dialog_item( handle, IDC_STB_PROMPT, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_PROMPT, DAC_UNCHECK)
if(and( status_bar_flags, STB_LINE) )
set_dialog_item( handle, IDC_STB_LINE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_LINE, DAC_UNCHECK)
if(and( status_bar_flags, STB_COLUMN) )
set_dialog_item( handle, IDC_STB_COLUMN, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_COLUMN, DAC_UNCHECK)
if(and( status_bar_flags, STB_LAST_LINE) )
set_dialog_item( handle, IDC_STB_LAST_LINE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_LAST_LINE, DAC_UNCHECK)
if(and( status_bar_flags, STB_OFFSET) )
set_dialog_item( handle, IDC_STB_BUFFER_OFFSET, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_BUFFER_OFFSET, DAC_UNCHECK)
if(and( status_bar_flags, STB_DYNA_SIZE) )
set_dialog_item( handle, IDC_STB_DYNA_SIZE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_DYNA_SIZE, DAC_UNCHECK)
if(and( status_bar_flags, STB_EMULATION) )
set_dialog_item( handle, IDC_STB_EMULATION, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_EMULATION, DAC_UNCHECK)
if(and( status_bar_flags, STB_INDICATORS) )
set_dialog_item( handle, IDC_STB_INDICATOR, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_INDICATOR, DAC_UNCHECK)
if(and( status_bar_flags, STB_DATE) )
set_dialog_item( handle, IDC_STB_DATE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_DATE, DAC_UNCHECK)
if(and( status_bar_flags, STB_DAYOFWEEK) )
set_dialog_item( handle, IDC_STB_DOW, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_DOW, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_TIME24, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_TIME12, DAC_UNCHECK)
if(and( status_bar_flags, STB_TIME12) )
set_dialog_item( handle, IDR_STB_TIME12, DAC_CHECK)
else if(and( status_bar_flags, STB_TIME24) )
set_dialog_item( handle, IDR_STB_TIME24, DAC_CHECK)
if(and( status_bar_flags, STB_TIME ) )
{
set_dialog_item( handle, IDC_STB_TIME, DAC_CHECK)
set_dialog_item( handle, IDR_STB_TIME24, DAC_ENABLE)
set_dialog_item( handle, IDR_STB_TIME12, DAC_ENABLE)
}
else
{
set_dialog_item( handle, IDC_STB_TIME, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_TIME24, DAC_DISABLE)
set_dialog_item( handle, IDR_STB_TIME12, DAC_DISABLE)
}
nb_initializing = FALSE
}
global function stb1_settings_callback()
{
local ret_val;
enable_undo( callback_dialog_handle, callback_index )
if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
return DRC_MSG_PROCESSED
}
if(callback_msg == DM_CANCEL )
{
nbPagePrefix[current_nb_page].modified = FALSE;
return DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
if(callback_index == IDB_UNDO )
{
nbPagePrefix[current_nb_page].modified = FALSE;
initialize_stb1_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDB_DEFAULT )
{
nbPagePrefix[current_nb_page].modified = TRUE;
default_stb1_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDC_STB_TIME )
{
nbPagePrefix[current_nb_page].modified = TRUE;
ret_val = query_dialog_item( callback_dialog_handle, callback_index, DAC_CHECK )
if(ret_val)
{
set_dialog_item( callback_dialog_handle, IDR_STB_TIME24, DAC_ENABLE)
set_dialog_item( callback_dialog_handle, IDR_STB_TIME12, DAC_ENABLE)
set_dialog_item( callback_dialog_handle, IDR_STB_TIME12, DAC_CHECK);
# set_dialog_item( callback_dialog_handle, IDC_STB_TIME, DAC_CHECK)
}
else
{
# status_bar_flags = and(status_bar_flags, not(STB_TIME) )
set_dialog_item( callback_dialog_handle, IDR_STB_TIME24, DAC_DISABLE)
set_dialog_item( callback_dialog_handle, IDR_STB_TIME12, DAC_DISABLE)
# set_dialog_item( callback_dialog_handle, IDR_STB_TIME24, DAC_UNCHECK)
# set_dialog_item( callback_dialog_handle, IDC_STB_TIME, DAC_UNCHECK)
}
}
else
{
nbPagePrefix[current_nb_page].modified = TRUE;
}
# else if(callback_index == IDR_STB_TIME12 )
# {
# set_dialog_item( callback_dialog_handle, IDR_STB_TIME12, DAC_CHECK)
# set_dialog_item( callback_dialog_handle, IDR_STB_TIME24, DAC_UNCHECK)
# }
# else if(callback_index == IDR_STB_TIME24 )
# {
# set_dialog_item( callback_dialog_handle, IDR_STB_TIME24, DAC_CHECK)
# set_dialog_item( callback_dialog_handle, IDR_STB_TIME12, DAC_UNCHECK)
# }
return DRC_MSG_PROCESSED
}
return DRC_CONTINUE
}
########################## STATUS BAR PAGE 2 #################################
#local undo_message_level;
local function initialize_stb2_settings( handle )
{
nb_initializing = TRUE;
if(and( status_bar_flags, STB_PAUSEONERR) )
set_dialog_item( handle, IDC_STB_POE, DAC_CHECK);
else
set_dialog_item( handle, IDC_STB_POE, DAC_UNCHECK);
set_dialog_item( handle, IDR_STB_LEVEL0, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_LEVEL1, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_LEVEL2, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_LEVEL3, DAC_UNCHECK)
if(message_level == 0 )
set_dialog_item( handle, IDR_STB_LEVEL0, DAC_CHECK);
else if(message_level == 1 )
set_dialog_item( handle, IDR_STB_LEVEL1, DAC_CHECK);
else if(message_level == 2 )
set_dialog_item( handle, IDR_STB_LEVEL2, DAC_CHECK);
else if(message_level == 3 )
set_dialog_item( handle, IDR_STB_LEVEL3, DAC_CHECK);
nb_initializing = FALSE;
}
global function stb2_settings_callback()
{
local ret_val
enable_undo( callback_dialog_handle, callback_index )
if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
return DRC_MSG_PROCESSED
}
else if(callback_msg == DM_CANCEL )
{
nbPagePrefix[current_nb_page].modified = FALSE;
return DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
# ret_val = query_dialog_item( callback_dialog_handle, callback_index, DAC_CHECK )
if(callback_index == IDB_UNDO )
{
nbPagePrefix[current_nb_page].modified = FALSE;
initialize_stb2_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDB_DEFAULT )
{
nbPagePrefix[current_nb_page].modified = TRUE;
default_stb2_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDR_STB_LEVEL0 || callback_index == IDR_STB_LEVEL1 || \
callback_index == IDR_STB_LEVEL2 || callback_index == IDR_STB_LEVEL3 )
{
nbPagePrefix[current_nb_page].modified = TRUE;
nop();
}
else
nbPagePrefix[current_nb_page].modified = TRUE;
return DRC_MSG_PROCESSED
}
return DRC_CONTINUE
}
########################## DIRECTORIES PAGE #################################
local function initialize_dir_settings( handle )
{
nb_initializing = TRUE
set_dialog_item( handle, IDE_BACKUP_DIR, DAC_EDIT_TEXT,
backup_directory "")
set_dialog_item( handle, IDE_BACKUP_DIR, DAC_SET_TEXT_LEN, 256);
set_dialog_item( handle, IDE_TAGS_PATH, DAC_SET_TEXT_LEN, 256 )
set_dialog_item( handle, IDE_TAGS_PATH, DAC_EDIT_TEXT, tags_path "")
nb_initializing = FALSE;
}
global function directories_settings_callback()
{
local new_val
enable_undo( callback_dialog_handle, callback_index )
if(nb_initializing)
return DRC_MSG_PROCESSED;
if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
return DRC_MSG_PROCESSED
}
if(callback_msg == DM_CANCEL )
{
nbPagePrefix[current_nb_page].modified = FALSE;
return DRC_MSG_PROCESSED
}
else if(callback_msg == DM_CLICK )
{
if(callback_index == IDB_UNDO )
{
nbPagePrefix[current_nb_page].modified = FALSE;
initialize_dir_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
else if ( callback_index == IDB_DEFAULT )
{
nbPagePrefix[current_nb_page].modified = TRUE;
default_dir_settings(callback_dialog_handle)
return DRC_MSG_PROCESSED
}
# else
# {
# nbPagePrefix[current_nb_page].modified = TRUE;
# return DRC_MSG_PROCESSED
# }
}
else if(callback_msg == DM_KILL_FOCUS)
{
if((callback_index == IDE_BACKUP_DIR) || (callback_index == IDE_TAGS_PATH))
{
nbPagePrefix[current_nb_page].modified = TRUE;
return DRC_MSG_PROCESSED
}
}
return DRC_CONTINUE
}
########################## CURSOR PAGE #################################
local function initialize_cursor_settings( handle )
{
nb_initializing = TRUE;
set_dialog_item(handle, IDL_TYPE, DAC_SORT_ASCENDING);
set_dialog_item(handle, IDL_TYPE, DAC_ADD_ITEM, NORMAL);
set_dialog_item(handle, IDL_TYPE, DAC_ADD_ITEM, OVERTYPE);
set_dialog_item(handle, IDL_TYPE, DAC_ADD_ITEM, VIRTUAL);
set_dialog_item(handle, IDL_TYPE, DAC_ADD_ITEM, VOVERTYPE);
add_dialog_item(handle, IDE_CURSOR_WIDTH, DCTRL_SPINBUTTON);
add_dialog_item(handle, IDE_CURSOR_HEIGHT, DCTRL_SPINBUTTON);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_SPIN_LIMITS, 0, 100);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_SPIN_LIMITS, 0, 100);
set_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM, NORMAL);
set_dialog_item(handle, IDL_TYPE, DAC_TEXT, NORMAL);
nb_initializing = FALSE;
}
global function cursor_settings_callback()
{
local cur_num, width, height, value;
local handle = callback_dialog_handle;
local ret_msg = DRC_CONTINUE;
enable_undo( callback_dialog_handle, callback_index )
if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, callback_dialog_handle);
ret_msg = DRC_MSG_PROCESSED
}
else if(nb_initializing)
ret_msg = DRC_MSG_PROCESSED;
else if(callback_msg == DM_CANCEL )
{
nbPagePrefix[current_nb_page].modified = FALSE;
ret_msg = DRC_MSG_PROCESSED
}
else if(callback_msg == DM_CLICK )
{
if(callback_index == IDB_UNDO )
{
undo_cursor_settings(local_cur_text)
set_dialog_item(handle, IDL_TYPE, DAC_DESELECT_ITEM, local_cur_text);
set_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM, local_cur_text);
ret_msg = DRC_MSG_PROCESSED
}
else if (callback_index == IDB_DEFAULT )
{
nbPagePrefix[current_nb_page].modified = TRUE;
default_cursor_settings(callback_dialog_handle, local_cur_text)
ret_msg = DRC_MSG_PROCESSED
}
else if(callback_index == IDC_CURSOR_GRAY)
{
nbPagePrefix[current_nb_page].modified = TRUE;
value = query_dialog_item(handle, IDC_CURSOR_GRAY, DAC_CHECK) ? 1 : 0;
set_cursor(handle, 2, value);
ret_msg = DRC_MSG_PROCESSED;
}
else if(callback_index == IDR_CURSOR_HORIZONTAL)
{
if((local_cur_text == NORMAL) || (local_cur_text == VIRTUAL))
{
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_SPIN_VALUE, 0);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_SPIN_VALUE, 3);
}
else
{
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_SPIN_VALUE, 0);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_SPIN_VALUE, 6);
}
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_DISABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_DISABLE);
ret_msg = DRC_MSG_PROCESSED;
}
else if(callback_index == IDR_CURSOR_VERTICAL)
{
if((local_cur_text == NORMAL) || (local_cur_text == VIRTUAL))
{
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_SPIN_VALUE, 2);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_SPIN_VALUE, 0);
}
else
{
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_SPIN_VALUE, 0);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_SPIN_VALUE, 0);
}
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_DISABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_DISABLE);
ret_msg = DRC_MSG_PROCESSED;
}
else if(callback_index == IDR_CURSOR_CUSTOM)
{
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_ENABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_ENABLE);
set_dialog_item(handle, IDC_CURSOR_GRAY, DAC_ENABLE);
ret_msg = DRC_MSG_PROCESSED;
}
}
if(callback_msg == DM_SELECT)
{
if(callback_index == IDL_TYPE)
{
local_cur_text = query_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM);
if(local_cur_text == NORMAL)
cur_num = cursor_normal;
else if(local_cur_text == OVERTYPE)
cur_num = cursor_overtype;
else if(local_cur_text == VIRTUAL)
cur_num = cursor_virtual;
else if(local_cur_text == VOVERTYPE)
cur_num = cursor_virtual_overtype;
width = shiftr(and(cur_num, 0xff00), 8);
height = and(cur_num, 0xff);
width = (width == 0xff) ? 0 : width;
height = (height == 0xff) ? 0 : height;
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_SPIN_VALUE, width);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_SPIN_VALUE, height);
if((width == 0) && (height == 3) && ((local_cur_text == NORMAL) || (local_cur_text == VIRTUAL)))
{
set_dialog_item(handle, IDR_CURSOR_HORIZONTAL, DAC_CHECK);
set_dialog_item(handle, IDR_CURSOR_VERTICAL, DAC_UNCHECK);
set_dialog_item(handle, IDR_CURSOR_CUSTOM, DAC_UNCHECK);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_DISABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_DISABLE);
}
else if((width == 2) && (height == 0) && ((local_cur_text == NORMAL) || (local_cur_text == VIRTUAL)))
{
set_dialog_item(handle, IDR_CURSOR_HORIZONTAL, DAC_UNCHECK);
set_dialog_item(handle, IDR_CURSOR_VERTICAL, DAC_CHECK);
set_dialog_item(handle, IDR_CURSOR_CUSTOM, DAC_UNCHECK);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_DISABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_DISABLE);
}
else if((width == 0) && (height == 6) && ((local_cur_text == OVERTYPE) || (local_cur_text == VOVERTYPE)))
{
set_dialog_item(handle, IDR_CURSOR_HORIZONTAL, DAC_CHECK);
set_dialog_item(handle, IDR_CURSOR_VERTICAL, DAC_UNCHECK);
set_dialog_item(handle, IDR_CURSOR_CUSTOM, DAC_UNCHECK);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_DISABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_DISABLE);
}
else if((width == 0) && (height == 0) && ((local_cur_text == OVERTYPE) || (local_cur_text == VOVERTYPE)))
{
set_dialog_item(handle, IDR_CURSOR_HORIZONTAL, DAC_UNCHECK);
set_dialog_item(handle, IDR_CURSOR_VERTICAL, DAC_CHECK);
set_dialog_item(handle, IDR_CURSOR_CUSTOM, DAC_UNCHECK);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_DISABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_DISABLE);
}
else
{
set_dialog_item(handle, IDR_CURSOR_HORIZONTAL, DAC_UNCHECK);
set_dialog_item(handle, IDR_CURSOR_VERTICAL, DAC_UNCHECK);
set_dialog_item(handle, IDR_CURSOR_CUSTOM, DAC_CHECK);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_ENABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_ENABLE);
}
if(and(cur_num, 0x10000))
set_dialog_item(handle, IDC_CURSOR_GRAY, DAC_CHECK);
else
set_dialog_item(handle, IDC_CURSOR_GRAY, DAC_UNCHECK);
ret_msg = DRC_MSG_PROCESSED;
}
}
else if ( callback_msg == DM_SPIN_CHANGE )
{
nbPagePrefix[current_nb_page].modified = TRUE;
# validate the value the user entered
value = query_dialog_item(handle, callback_index, DAC_SPIN_VALUE);
if(callback_index == IDE_CURSOR_WIDTH)
set_cursor(handle, 0, value);
else if(callback_index == IDE_CURSOR_HEIGHT)
set_cursor(handle, 1, value);
ret_msg = DRC_MSG_PROCESSED;
}
return ret_msg;
}
local function set_cursor(handle, type, value)
{
local mask, cur_num, save;
if(local_cur_text == NORMAL)
cur_num = cursor_normal;
else if(local_cur_text == OVERTYPE)
cur_num = cursor_overtype;
else if(local_cur_text == VIRTUAL)
cur_num = cursor_virtual;
else if(local_cur_text == VOVERTYPE)
cur_num = cursor_virtual_overtype;
if(type == 0)
{
mask = 0xff00;
value = (value == 0) ? 0xff : value;
value = shiftl(value, 8);
}
else if(type == 1)
{
value = (value == 0) ? 0xff : value;
mask = 0xff;
}
else if(type == 2)
{
mask = 0x10000;
value = shiftl(value, 16);
}
cur_num = set_flag_bits(cur_num, mask, value);
# cvdebug(sprintf("setting %s to %x", local_cur_text, cur_num));
# Update cursor variable
if(local_cur_text == NORMAL)
cursor_normal = cur_num;
else if(local_cur_text == OVERTYPE)
cursor_overtype = cur_num;
else if(local_cur_text == VIRTUAL)
cursor_virtual = cur_num;
else if(local_cur_text == VOVERTYPE)
cursor_virtual_overtype = cur_num;
}
local function save_cursor_settings()
{
save_normal = cursor_normal;
save_overtype = cursor_overtype;
save_virtual = cursor_virtual;
save_virtual_overtype = cursor_virtual_overtype;
}
global function undo_cursor_settings(cursor_name)
{
local doit = FALSE, page;
if(cursor_name == "all")
{
for(page in nbPagePrefix)
{
if((nbPagePrefix[page].name == "cursor") && (nbPagePrefix[page].dialog_handle))
{
doit = TRUE;
break;
}
}
}
if((cursor_name == NORMAL) || doit)
cursor_normal = save_normal;
if((cursor_name == OVERTYPE) || doit)
cursor_overtype = save_overtype;
if((cursor_name == VIRTUAL) || doit)
cursor_virtual = save_virtual;
if((cursor_name == VOVERTYPE) || doit)
cursor_virtual_overtype = save_virtual_overtype;
}
########################## EDITOR SETTINGS NOTEBOOK #################################
global function assign_edithelp_changes(dlgid)
{
nop();
}
global function assign_edit_changes(dlgid)
{
local new_emulation;
local i;
new_emulation = query_dialog_item(dlgid, IDL_KEY_BINDINGS, DAC_SELECT_ITEM);
for (i in emulations)
if( (emulations[i] == new_emulation) && (emulation_mode != i) )
optional_function(i)
# if(new_emulation == "CUA" && (emulation_mode != "cua") )
# optional_function("cua")
#
# else if((new_emulation == "Brief") && (emulation_mode != "brief") )
# optional_function("brief")
#
# else if((new_emulation == "Emacs") && (emulation_mode != "emacs") )
# optional_function("emacs")
#
# else if((new_emulation == "Native") && (emulation_mode != "native") )
# optional_function("native")
#
# else if((new_emulation == "vi") && (emulation_mode != "vi") )
# optional_function("vi")
#
# else if((new_emulation == "ISPF") && (emulation_mode != "ispf") )
# optional_function("ispf")
}
global function assign_save_changes(dlgid)
{
save_state = query_dialog_item(dlgid, IDC_SAVE_STATE, DAC_CHECK);
backup_files_enabled = query_dialog_item(dlgid, IDC_BACKUP_FILES, DAC_CHECK);
autosave_time = query_dialog_item(dlgid, IDE_AUTOSAVE_DELAY, DAC_SPIN_VALUE) * 60;
if(query_dialog_item(dlgid, IDC_AUTOSAVE, DAC_CHECK))
autosave(autosave_time);
else
autosave(0);
if(query_dialog_item(dlgid, IDC_SAVE_SETTINGS, DAC_CHECK))
save_flags = set_flag_bits(save_flags, SAVE_SETTINGS, SAVE_SETTINGS);
else
save_flags = set_flag_bits(save_flags, SAVE_SETTINGS, FALSE);
if(query_dialog_item(dlgid, IDC_SAVE_SEARCH, DAC_CHECK))
save_flags = set_flag_bits(save_flags, SAVE_SEARCH, SAVE_SEARCH);
else
save_flags = set_flag_bits(save_flags, SAVE_SEARCH, FALSE);
if(query_dialog_item(dlgid, IDC_SAVE_COMMANDS, DAC_CHECK))
save_flags = set_flag_bits(save_flags, SAVE_COMMANDS, SAVE_COMMANDS);
else
save_flags = set_flag_bits(save_flags, SAVE_COMMANDS, FALSE);
if(query_dialog_item(dlgid, IDC_SAVE_DIRECTORY, DAC_CHECK))
save_flags = set_flag_bits(save_flags, SAVE_DIRECTORY, SAVE_DIRECTORY);
else
save_flags = set_flag_bits(save_flags, SAVE_DIRECTORY, FALSE);
}
global function assign_search_changes(dlgid)
{
toggle_search_flags(SEARCH_FORWARD, query_dialog_item(dlgid, IDC_SEARCH_FORWARD, DAC_CHECK));
toggle_search_flags(SEARCH_WHOLE_WORD, query_dialog_item(dlgid, IDC_SEARCH_WORD, DAC_CHECK));
toggle_search_flags(SEARCH_REGEX, query_dialog_item(dlgid, IDC_SEARCH_REGEX, DAC_CHECK));
toggle_search_flags(SEARCH_MAXIMAL_MATCH, query_dialog_item(dlgid, IDC_SEARCH_MAX_MATCH, DAC_CHECK));
toggle_search_flags(SEARCH_HIGHLIGHT, query_dialog_item(dlgid, IDC_SEARCH_HIGHLIGHT, DAC_CHECK));
toggle_search_flags(SEARCH_CENTER_CURSOR, query_dialog_item(dlgid, IDC_SEARCH_CENTER, DAC_CHECK));
toggle_search_flags(SEARCH_CASE, query_dialog_item(dlgid, IDC_SEARCH_CASE, DAC_CHECK));
toggle_search_flags(SEARCH_WRAPS, query_dialog_item(dlgid, IDC_SEARCH_WRAP, DAC_CHECK));
word_delimiter = query_dialog_item(dlgid, IDE_WORD_DELIMITER, DAC_EDIT_TEXT);
}
global function assign_stb1_changes(dlgid)
{
local first = current_window, s_flags;
local flags_on = 0
if (query_dialog_item(dlgid, IDC_STB_MESSAGE, DAC_CHECK) )
flags_on += STB_MESSAGES
if (query_dialog_item(dlgid, IDC_STB_PROMPT, DAC_CHECK))
flags_on += STB_PROMPTS
if (query_dialog_item(dlgid, IDC_STB_LINE, DAC_CHECK))
flags_on += STB_LINE
if (query_dialog_item(dlgid, IDC_STB_COLUMN, DAC_CHECK))
flags_on += STB_COLUMN
if (query_dialog_item(dlgid, IDC_STB_LAST_LINE, DAC_CHECK))
flags_on += STB_LAST_LINE
if (query_dialog_item(dlgid, IDC_STB_BUFFER_OFFSET, DAC_CHECK))
flags_on += STB_OFFSET
if (query_dialog_item(dlgid, IDC_STB_DYNA_SIZE, DAC_CHECK))
flags_on += STB_DYNA_SIZE
if (query_dialog_item(dlgid, IDC_STB_INDICATOR, DAC_CHECK))
flags_on += STB_INDICATORS
if (query_dialog_item(dlgid, IDC_STB_EMULATION, DAC_CHECK))
flags_on += STB_EMULATION
if (query_dialog_item(dlgid, IDC_STB_DOW, DAC_CHECK))
flags_on += STB_DAYOFWEEK
if (query_dialog_item(dlgid, IDC_STB_DATE, DAC_CHECK))
flags_on += STB_DATE
if(query_dialog_item(dlgid, IDC_STB_TIME, DAC_CHECK))
if(query_dialog_item(dlgid, IDR_STB_TIME24, DAC_CHECK))
flags_on += STB_TIME24
else
flags_on += STB_TIME12
status_bar_flags = set_flag_bits(status_bar_flags, STB_MASK1, flags_on)
idle()
if(mdi_mode == 2)
{
s_flags = status_bar_flags;
if(first)
{
do
{
current_window = next_window("", 0, 1);
if(!and(window_flags, WINDOW_ASCII_DUMP))
status_bar_flags = s_flags;
} while(current_window != first);
}
}
}
global function assign_stb2_changes(dlgid)
{
local ret_val;
ret_val = query_dialog_item(dlgid, IDC_STB_POE, DAC_CHECK);
toggle_pause(ret_val);
if(query_dialog_item(dlgid, IDR_STB_LEVEL0, DAC_CHECK))
message_level = 0;
else if(query_dialog_item(dlgid, IDR_STB_LEVEL1, DAC_CHECK))
message_level = 1;
else if(query_dialog_item(dlgid, IDR_STB_LEVEL2, DAC_CHECK))
message_level = 2;
else if(query_dialog_item(dlgid, IDR_STB_LEVEL3, DAC_CHECK))
message_level = 3;
}
global function assign_dir_changes(dlgid)
{
backup_directory = query_dialog_item(dlgid, IDE_BACKUP_DIR, DAC_EDIT_TEXT);
tags_path = query_dialog_item(dlgid, IDE_TAGS_PATH, DAC_EDIT_TEXT);
}
global function assign_cursor_changes(dlgid)
{
}
global function default_edit_settings(handle)
{
nb_initializing = TRUE;
set_dialog_item(handle, IDL_KEY_BINDINGS, DAC_SELECT_ITEM, "CUA");
nb_initializing = FALSE;
}
global function default_save_settings(handle)
{
local def_sav_flags = SAVE_DEFAULT;
nb_initializing = TRUE;
set_dialog_item(handle, IDE_AUTOSAVE_DELAY, DAC_SPIN_VALUE, 1);
set_dialog_item(handle, IDC_AUTOSAVE, DAC_UNCHECK);
set_dialog_item(handle, IDE_AUTOSAVE_DELAY, DAC_DISABLE);
set_dialog_item(handle, IDC_SAVE_STATE, DAC_CHECK);
set_dialog_item(handle, IDC_SAVE_DIRECTORY, DAC_ENABLE);
set_dialog_item(handle, IDC_BACKUP_FILES, DAC_UNCHECK);
if(and(def_sav_flags, SAVE_DIRECTORY))
set_dialog_item( handle, IDC_SAVE_DIRECTORY, DAC_CHECK);
else
set_dialog_item( handle, IDC_SAVE_DIRECTORY, DAC_UNCHECK);
if(and( def_sav_flags, SAVE_SETTINGS ) )
set_dialog_item( handle, IDC_SAVE_SETTINGS, DAC_CHECK);
else
set_dialog_item( handle, IDC_SAVE_SETTINGS, DAC_UNCHECK);
if(and( def_sav_flags, SAVE_SEARCH) )
set_dialog_item( handle, IDC_SAVE_SEARCH, DAC_CHECK);
else
set_dialog_item( handle, IDC_SAVE_SEARCH, DAC_UNCHECK);
if(and( def_sav_flags, SAVE_COMMANDS) )
set_dialog_item( handle, IDC_SAVE_COMMANDS, DAC_CHECK);
else
set_dialog_item( handle, IDC_SAVE_COMMANDS, DAC_UNCHECK);
nb_initializing = FALSE
}
global function default_search_settings(handle)
{
local def_search_flags = SEARCH_DEFAULT;
nb_initializing = TRUE;
set_dialog_item( handle, IDE_WORD_DELIMITER, DAC_EDIT_TEXT, default_word_delimiter)
if(and(def_search_flags, SEARCH_FORWARD) )
set_dialog_item( handle, IDC_SEARCH_FORWARD, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_FORWARD, DAC_UNCHECK)
if(and(def_search_flags, SEARCH_WHOLE_WORD) )
set_dialog_item( handle, IDC_SEARCH_WORD, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_WORD, DAC_UNCHECK)
if(and(def_search_flags, SEARCH_MAXIMAL_MATCH) )
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_UNCHECK)
if(and(def_search_flags, SEARCH_REGEX) )
{
set_dialog_item( handle, IDC_SEARCH_REGEX, DAC_CHECK)
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_ENABLE)
}
else
{
set_dialog_item( handle, IDC_SEARCH_REGEX, DAC_UNCHECK)
set_dialog_item( handle, IDC_SEARCH_MAX_MATCH, DAC_DISABLE)
}
if(and(def_search_flags, SEARCH_CASE) )
set_dialog_item( handle, IDC_SEARCH_CASE, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_CASE, DAC_UNCHECK)
if(and(def_search_flags, SEARCH_WRAPS) )
set_dialog_item( handle, IDC_SEARCH_WRAP, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_WRAP, DAC_UNCHECK)
if(and(def_search_flags, SEARCH_HIGHLIGHT) )
set_dialog_item( handle, IDC_SEARCH_HIGHLIGHT, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_HIGHLIGHT, DAC_UNCHECK)
if(and(def_search_flags, SEARCH_CENTER_CURSOR) )
set_dialog_item( handle, IDC_SEARCH_CENTER, DAC_CHECK)
else
set_dialog_item( handle, IDC_SEARCH_CENTER, DAC_UNCHECK)
nb_initializing = FALSE
}
global function default_dir_settings(handle)
{
nb_initializing = TRUE
set_dialog_item( handle, IDE_BACKUP_DIR, DAC_EDIT_TEXT, "" );
set_dialog_item( handle, IDE_TAGS_PATH, DAC_EDIT_TEXT, "")
nb_initializing = FALSE;
}
global function default_cursor_settings(handle, cursor_name)
{
local width = 0, height, gray = 1;
nb_initializing = TRUE
if((cursor_name == NORMAL) || (cursor_name == VIRTUAL))
{
height = 3;
if(cursor_name == NORMAL)
gray = 0;
}
else if((cursor_name == OVERTYPE) || (cursor_name == VOVERTYPE))
{
height = 6;
if(cursor_name == OVERTYPE)
gray = 0;
}
set_dialog_item(handle, IDR_CURSOR_VERTICAL, DAC_UNCHECK);
set_dialog_item(handle, IDR_CURSOR_HORIZONTAL, DAC_CHECK);
set_dialog_item(handle, IDR_CURSOR_CUSTOM, DAC_UNCHECK);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_SPIN_VALUE, width);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_SPIN_VALUE, height);
set_dialog_item(handle, IDE_CURSOR_WIDTH, DAC_DISABLE);
set_dialog_item(handle, IDE_CURSOR_HEIGHT, DAC_DISABLE);
if(gray)
set_dialog_item(handle, IDC_CURSOR_GRAY, DAC_CHECK);
else
set_dialog_item(handle, IDC_CURSOR_GRAY, DAC_UNCHECK);
set_cursor(handle, 2, gray);
nb_initializing = FALSE;
}
global function default_stb1_settings(handle)
{
local def_stb_flags = STB_DEFAULT;
nb_initializing = TRUE
if(and(def_stb_flags, STB_MESSAGES) )
set_dialog_item( handle, IDC_STB_MESSAGE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_MESSAGE, DAC_UNCHECK)
if(and(def_stb_flags, STB_PROMPTS) )
set_dialog_item( handle, IDC_STB_PROMPT, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_PROMPT, DAC_UNCHECK)
if(and(def_stb_flags, STB_LINE) )
set_dialog_item( handle, IDC_STB_LINE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_LINE, DAC_UNCHECK)
if(and(def_stb_flags, STB_COLUMN) )
set_dialog_item( handle, IDC_STB_COLUMN, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_COLUMN, DAC_UNCHECK)
if(and(def_stb_flags, STB_LAST_LINE) )
set_dialog_item( handle, IDC_STB_LAST_LINE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_LAST_LINE, DAC_UNCHECK)
if(and(def_stb_flags, STB_OFFSET) )
set_dialog_item( handle, IDC_STB_BUFFER_OFFSET, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_BUFFER_OFFSET, DAC_UNCHECK)
if(and(def_stb_flags, STB_DYNA_SIZE) )
set_dialog_item( handle, IDC_STB_DYNA_SIZE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_DYNA_SIZE, DAC_UNCHECK)
if(and(def_stb_flags, STB_EMULATION) )
set_dialog_item( handle, IDC_STB_EMULATION, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_EMULATION, DAC_UNCHECK)
if(and(def_stb_flags, STB_INDICATORS) )
set_dialog_item( handle, IDC_STB_INDICATOR, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_INDICATOR, DAC_UNCHECK)
if(and(def_stb_flags, STB_DATE) )
set_dialog_item( handle, IDC_STB_DATE, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_DATE, DAC_UNCHECK)
if(and(def_stb_flags, STB_DAYOFWEEK) )
set_dialog_item( handle, IDC_STB_DOW, DAC_CHECK)
else
set_dialog_item( handle, IDC_STB_DOW, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_TIME24, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_TIME12, DAC_UNCHECK)
if(and(def_stb_flags, STB_TIME12) )
set_dialog_item( handle, IDR_STB_TIME12, DAC_CHECK)
else if(and(def_stb_flags, STB_TIME24) )
set_dialog_item( handle, IDR_STB_TIME24, DAC_CHECK)
if(and(def_stb_flags, STB_TIME ) ) {
set_dialog_item( handle, IDC_STB_TIME, DAC_CHECK)
set_dialog_item( handle, IDR_STB_TIME24, DAC_ENABLE)
set_dialog_item( handle, IDR_STB_TIME12, DAC_ENABLE)
}
else {
set_dialog_item( handle, IDC_STB_TIME, DAC_UNCHECK)
set_dialog_item( handle, IDR_STB_TIME24, DAC_DISABLE)
set_dialog_item( handle, IDR_STB_TIME12, DAC_DISABLE)
}
nb_initializing = FALSE
}
global function default_stb2_settings(handle)
{
local def_stb_flags = STB_DEFAULT;
nb_initializing = TRUE;
if(and(def_stb_flags, STB_PAUSEONERR) )
set_dialog_item(handle, IDC_STB_POE, DAC_CHECK);
else
set_dialog_item(handle, IDC_STB_POE, DAC_UNCHECK);
set_dialog_item(handle, IDR_STB_LEVEL0, DAC_UNCHECK)
set_dialog_item(handle, IDR_STB_LEVEL1, DAC_UNCHECK)
set_dialog_item(handle, IDR_STB_LEVEL2, DAC_UNCHECK)
set_dialog_item(handle, IDR_STB_LEVEL3, DAC_UNCHECK)
set_dialog_item(handle, IDR_STB_LEVEL0, DAC_CHECK);
nb_initializing = FALSE;
}
local function quick_settings_save(handle)
{
local i
local start_buff = current_buffer
local start_win = current_window
local selected_emulation = query_dialog_item(handle, IDQ.EMULATION, DAC_SELECT_ITEM)
local prompts, dyna, expand, expand_templates, linenums
# set emulation
for (i in emulations)
if (emulations[i] == selected_emulation)
{
if (emulation_mode != i)
optional_function(i)
break
}
# cursor
if ( query_dialog_item(handle, IDQ.CURSOR_VERT, DAC_CHECK) )
cursor_normal = default_vert
else if ( query_dialog_item(handle, IDQ.CURSOR_HORZ, DAC_CHECK) )
cursor_normal = default_horz
# status bar
prompts = query_dialog_item(handle, IDQ.SBAR_PROMPTS, DAC_CHECK) * STB_PROMPTS
dyna = query_dialog_item(handle, IDQ.SBAR_DYNASIZE, DAC_CHECK) * STB_DYNA_SIZE
start_win = current_window
do
{
if ( and(status_bar_flags, STB_PROMPTS) != prompts)
status_bar_flags = set_flag_bits(status_bar_flags, STB_PROMPTS, prompts)
if ( and(status_bar_flags, STB_DYNA_SIZE) != dyna)
status_bar_flags = set_flag_bits(status_bar_flags, STB_DYNA_SIZE, dyna)
} while (mdi_mode == 2 && next_window("", 1, 1) != start_win)
# save options
backup_files_enabled = query_dialog_item(handle, IDQ.SAVE_BACKUP, DAC_CHECK)
if (!!autosave_active() != query_dialog_item(handle, IDQ.SAVE_AUTOSAVE, DAC_CHECK) )
if (query_dialog_item(handle, IDQ.SAVE_AUTOSAVE, DAC_CHECK) )
autosave(autosave_time)
else
autosave(0)
# window misc
linenums = query_dialog_item(handle, IDQ.WINDOW_LINENUMS, DAC_CHECK)
if ( linenums )
default_linenumber_format = nominal_linenumber_format
else
default_linenumber_format = ""
default_window_flags = set_flag_bits(default_window_flags, WINDOW_HORIZ_SB,
query_dialog_item(handle, IDQ.WINDOW_HORZ, DAC_CHECK) * WINDOW_HORIZ_SB)
default_window_flags = set_flag_bits(default_window_flags, WINDOW_VERT_SB,
query_dialog_item(handle, IDQ.WINDOW_VERT, DAC_CHECK) * WINDOW_VERT_SB)
start_win = current_window
do
{
if ( !(linenumber_format == "") != linenums)
toggle_linenumbers(linenums)
if ( !!and(window_flags, WINDOW_HORIZ_SB) != query_dialog_item(handle, IDQ.WINDOW_HORZ, DAC_CHECK) )
toggle_win_hscroll(query_dialog_item(handle, IDQ.WINDOW_HORZ, DAC_CHECK))
if ( !!and(window_flags, WINDOW_VERT_SB) != query_dialog_item(handle, IDQ.WINDOW_VERT, DAC_CHECK) )
toggle_win_vscroll(query_dialog_item(handle, IDQ.WINDOW_VERT, DAC_CHECK))
} while (next_window("", 1, 1) != start_win)
# types
for (i in modified_types)
{
validate_ext_list(i, modified_types[i])
language_modified++
}
# buffer flags
default_syntax_highlight = query_dialog_item(handle, IDQ.BUFF_COLOR, DAC_CHECK)
expand = query_dialog_item(handle, IDQ.BUFF_EXPAND, DAC_CHECK) * BUFFER_EXPAND_TABS
default_buffer_flags = set_flag_bits(default_buffer_flags, BUFFER_EXPAND_TABS, expand)
# template expansion
expand_templates = query_dialog_item(handle, IDQ.TYPES_TEMPLATE, DAC_CHECK)
default_auto_indent_mode = query_dialog_item(handle, IDQ.BUFF_INDENT, DAC_CHECK)
toggle_electric(expand_templates)
toggle_auto_indent(default_auto_indent_mode)
start_buff = current_buffer
do
{
electric_mode = expand_templates
syntax_highlight = default_syntax_highlight
auto_indent_mode = default_auto_indent_mode
buffer_flags = set_flag_bits(buffer_flags, BUFFER_EXPAND_TABS, expand)
} while (next_buffer("", 1, 1) != start_buff)
for (i in languages)
{
if (and(BufferFlags(i), BUFFER_EXPAND_TABS) != expand)
{
set_buffer_flags(i, set_flag_bits(BufferFlags(i), BUFFER_EXPAND_TABS, expand) )
language_modified++
}
if ( AutoIndent(i) != default_auto_indent_mode)
{
set_auto_indent(i, default_auto_indent_mode)
language_modified++
}
if ( get_expand_template(i) != expand_templates)
{
set_expand_template(i, expand_templates)
language_modified++
}
if ( Syntax(i) != default_syntax_highlight)
{
set_syntax(i, default_syntax_highlight)
language_modified++
}
}
# window mode
if (query_dialog_item(handle, IDQ.WINDOW_SINGLE, DAC_CHECK) )
new_mdi_mode = 0
else
{
if (query_dialog_item(handle, IDQ.WINDOW_MULT, DAC_CHECK) )
new_mdi_mode = 1
else
new_mdi_mode = 2
new_one_buff = query_dialog_item(handle, IDQ.WINDOW_ONEBUFF, DAC_CHECK)
}
}
local function quick_settings_init(handle)
{
local i
local width, height
local cur_type
# add emulations
if ( !(emulation_mode in emulations) )
if (emulation_mode)
emulations[emulation_mode] = emulation_mode
for (i in emulations)
if (function_id( i ))
set_dialog_item(handle, IDQ.EMULATION, DAC_ADD_ITEM, emulations[i])
if ( emulation_mode in emulations )
set_dialog_item(handle, IDQ.EMULATION, DAC_SELECT_ITEM, emulations[emulation_mode])
# cursor
if ( cursor_normal == default_vert )
set_dialog_item(handle, IDQ.CURSOR_VERT, DAC_CHECK);
else if (cursor_normal == default_horz)
set_dialog_item(handle, IDQ.CURSOR_HORZ, DAC_CHECK);
else
{
set_dialog_item(handle, IDQ.CURSOR_HORZ, DAC_DISABLE);
set_dialog_item(handle, IDQ.CURSOR_VERT, DAC_DISABLE);
}
# status bar
if (and(status_bar_flags, STB_PROMPTS))
set_dialog_item(handle, IDQ.SBAR_PROMPTS, DAC_CHECK);
if (and(status_bar_flags, STB_DYNA_SIZE))
set_dialog_item(handle, IDQ.SBAR_DYNASIZE, DAC_CHECK);
# save options
if (backup_files_enabled)
set_dialog_item(handle, IDQ.SAVE_BACKUP, DAC_CHECK);
if (autosave_active())
set_dialog_item(handle, IDQ.SAVE_AUTOSAVE, DAC_CHECK);
# window mode
if (mdi_mode == 0)
{
set_dialog_item(handle, IDQ.WINDOW_SINGLE, DAC_CHECK);
set_dialog_item(handle, IDQ.WINDOW_ONEBUFF, DAC_DISABLE);
}
else if (mdi_mode == 1)
set_dialog_item(handle, IDQ.WINDOW_MULT, DAC_CHECK);
else
set_dialog_item(handle, IDQ.WINDOW_DETACHED, DAC_CHECK);
if (create_new_bufwin && (mdi_mode > 0) )
set_dialog_item(handle, IDQ.WINDOW_ONEBUFF, DAC_CHECK);
# window misc
if (default_linenumber_format != "")
set_dialog_item(handle, IDQ.WINDOW_LINENUMS, DAC_CHECK);
if (and(window_flags, WINDOW_HORIZ_SB))
set_dialog_item(handle, IDQ.WINDOW_HORZ, DAC_CHECK);
if (and(window_flags, WINDOW_VERT_SB))
set_dialog_item(handle, IDQ.WINDOW_VERT, DAC_CHECK);
# types
for (i in languages)
{
set_dialog_item(handle, IDQ.TYPES_TYPE, DAC_ADD_ITEM, i)
}
cur_type = Type(path_ext(buffer_filename))
if (cur_type)
{
set_dialog_item(handle, IDQ.TYPES_TYPE, DAC_SELECT_ITEM, cur_type)
set_dialog_item(handle, IDQ.TYPES_EXTENSION, DAC_EDIT_TEXT , get_ext_list(cur_type))
}
# template expansion
if (electric_mode)
set_dialog_item(handle, IDQ.TYPES_TEMPLATE, DAC_CHECK);
# buffer flags
if (Syntax(DEFAULT))
set_dialog_item(handle, IDQ.BUFF_COLOR, DAC_CHECK);
if (AutoIndent(DEFAULT))
set_dialog_item(handle, IDQ.BUFF_INDENT, DAC_CHECK);
if (and(default_buffer_flags, BUFFER_EXPAND_TABS))
set_dialog_item(handle, IDQ.BUFF_EXPAND, DAC_CHECK);
}
global function quick_settings_callback()
{
local ret = DRC_CONTINUE
local ext_list
local cur_type
local handle = callback_dialog_handle
local msg = callback_msg
local item = callback_index
#message("msg = %d, item = %d", msg, item)
if ( msg == DM_INIT )
{
quick_settings_init(handle)
set_dialog_item(handle, IDQ.EMULATION, DAC_SETFOCUS)
set_dialog_item(handle, IDQ.TYPES_EXTENSION, DAC_SET_TEXT_LEN , 256)
}
else if ( msg == DM_HELPREQUESTED)
{
display_help(IDQ.HELP, handle)
ret = DRC_MSG_PROCESSED
}
else if (msg == DM_SELECT && item == IDQ.TYPES_TYPE)
{
cur_type = query_dialog_item(handle, IDQ.TYPES_TYPE, DAC_SELECT_ITEM)
if (cur_type in modified_types)
ext_list = modified_types[cur_type]
else
ext_list = get_ext_list(cur_type)
set_dialog_item(handle, IDQ.TYPES_EXTENSION, DAC_EDIT_TEXT, ext_list)
}
else if((msg == DM_CLICK) || (msg == DM_DOUBLE_CLICK))
{
if (item == IDQ.WINDOW_SINGLE)
set_dialog_item(handle, IDQ.WINDOW_ONEBUFF, DAC_DISABLE)
else if (item == IDQ.WINDOW_MULT || item == IDQ.WINDOW_DETACHED)
set_dialog_item(handle, IDQ.WINDOW_ONEBUFF, DAC_ENABLE)
}
else if(callback_msg == DM_KILL_FOCUS)
{
if(callback_index == IDQ.TYPES_EXTENSION)
{
cur_type = query_dialog_item(handle, IDQ.TYPES_TYPE, DAC_SELECT_ITEM)
ext_list = query_dialog_item(handle, IDQ.TYPES_EXTENSION, DAC_EDIT_TEXT)
if (ext_list != get_ext_list(cur_type))
{
modified_types[cur_type] = ext_list
}
ret = DRC_MSG_PROCESSED;
}
}
else if ( msg == DM_OK )
{
quick_settings_save(handle)
}
return ret
}
global function quick_settings()
{
local i
local dlgHand = create_dialog( function_id("quick_settings_callback"), 0, IDQ.QUICK_SETTINGS_DLG )
delete modified_types
language_modified = 0
new_mdi_mode = mdi_mode
new_one_buff = create_new_bufwin
attach_help(editor_helpfile, dlgHand)
begin_dialog( dlgHand )
delete_dialog(dlgHand)
idle()
if (language_modified)
{
message("Compiling Quick setting changes...")
write_language_data()
message("Compile complete")
}
# window mode
if (mdi_mode != new_mdi_mode)
{
if (new_mdi_mode == 0)
switch_to_sdi()
else if (new_mdi_mode == 1)
switch_to_mdi()
else
switch_to_detached()
}
if ( (mdi_mode != 0) && (create_new_bufwin != new_one_buff) )
toggle_create_new_win(new_one_buff)
delete modified_types
}