home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
p2demo21.exe
/
PEL
/
BUFFRSET.PEL
< prev
next >
Wrap
Text File
|
1995-03-15
|
39KB
|
1,178 lines
# $Header: P:\source\wmacros\buffrset.pev 1.59 15 Mar 1995 09:21:20 WALKER $
# $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: buffrset.pel $: Notebook settings
local dhBufferSettings1 = 0
local dhBufferSettings2 = 0
local dhBufferSettings3 = 0
local phBufferSettings1 = 0
local phBufferSettings2 = 0
local phBufferSettings3 = 0
local IDB_APPLY_TO_ALL = 1319;
local IDC_BUF_WP_WRAP_CONTINUOUS = 1347
local IDC_BUF_WP_CARRY_COMMENTS = 1348
local IDR_CURRENT_BUFFER = 1316;
local IDR_DEFAULT = 1317;
local IDR_TYPES = 1318;
global BUFFER1MASK = BUFFER_EXPAND_TABS + BUFFER_OVERTYPE_MODE + BUFFER_TABS_TO_SPACES +
BUFFER_SNAP_TO_EOL + BUFFER_REAL_SPACE_ONLY + BUFFER_READ_ONLY;
global BUFFER3MASK = BUFFER_WP_CARRY_COMMENTS + BUFFER_WP_ENABLED + BUFFER_WP_WRAP_CONTINUOUS;
#local BUFFER1 = 0x1;
#local BUFFER2 = 0x2;
#local BUFFER3 = 0x4;
global function buffer_settings_notebook(dlgid)
{
local dhHelpSettings, phHelpSettings;
nb_initializing = TRUE;
if (dlgid)
{
if(status_bar_flags )
message( "Creating Buffer Settings Pages..." );
phHelpSettings = append_notebook_page( dlgid, dhHelpSettings,
" ",
"Buffer" )
nbPagePrefix[phHelpSettings].name = "bufferhelp";
phBufferSettings1 = append_notebook_page( dlgid, dhBufferSettings1,
" Buffer Specific Settings",
"Buffer Flags", NBTAB_MINOR )
nbPagePrefix[phBufferSettings1].name = "buffer1";
phBufferSettings2 = append_notebook_page( dlgid, dhBufferSettings2,
" Tabs and Auto Indent",
"Misc", NBTAB_MINOR )
nbPagePrefix[phBufferSettings2].name = "buffer2";
phBufferSettings3 = append_notebook_page( dlgid, dhBufferSettings3,
" Word Processing",
"Word Proc", NBTAB_MINOR )
nbPagePrefix[phBufferSettings3].name = "buffer3";
}
else
{
warning("Illegal call to buffer_settings_notebook()");
}
nb_initializing = FALSE;
}
global function reset_buffer_settings_notebook()
{
dhBufferSettings1 = 0
dhBufferSettings2 = 0
dhBufferSettings3 = 0
phBufferSettings1 = 0
phBufferSettings2 = 0
phBufferSettings3 = 0
comp_buff = FALSE;
delete_type(CURRENT_BUFFER);
# delete_type(DEFAULT);
}
# function commented out since it's not used and generates a warning.
# it is going to be kept around incase there is a use for it
#local function destroy_settings_notebook()
#{
# delete_notebook_page(nhBufferNotebook, phBufferSettings1)
# delete_notebook_page(nhBufferNotebook, phBufferSettings2)
#
# delete_notebook(nhBufferNotebook)
#
# nhBufferNotebook = 0
#}
########################## BUFFER NOTEBOOK #################################
global function create_bufferhelp_page(pageid, dlgid)
{
local dhHelpSettings;
dhHelpSettings = create_page(function_id( "nop_settings_callback"),
dlgid, IDD_BUFFER_HELP_PAGE, resource_dll )
attach_help(editor_helpfile, dhHelpSettings);
if(isWindows())
nbPagePrefix[pageid].help = "Misc. window settings";
else
nbPagePrefix[pageid].help = "bufferpages";
set_notebook_page_dialog(dlgid, pageid, dhHelpSettings);
nbPagePrefix[pageid].dialog_handle = dhHelpSettings;
}
global function create_buffer1_page(pageid, dlgid)
{
local temp_type;
dhBufferSettings1 = create_page(function_id( "buffer1_settings_callback" ),
dlgid, IDD_BUFFER_SETTINGS1, resource_dll);
attach_help(editor_helpfile, dhBufferSettings1)
if(isWindows())
nbPagePrefix[pageid].help = "Buffer flags";
else
nbPagePrefix[pageid].help = "bufferpage1";
if(!(CURRENT_BUFFER in languages))
add_type(CURRENT_BUFFER);
if(!(DEFAULT in languages))
add_type(DEFAULT);
if(!save_languages)
save_languages = copy_languages_array(languages);
set_dialog_item(dhBufferSettings1, IDL_TYPE, DAC_SORT_ASCENDING);
temp_type = global_type ? global_type : CURRENT_BUFFER;
if(!global_type || (global_type == CURRENT_BUFFER) || (global_type == DEFAULT))
{
global_type = Type(path_ext(buffer_filename));
global_type = global_type ? global_type : "pel";
initialize_buffer1_settings(dhBufferSettings1, global_type, 1);
}
global_type = temp_type;
initialize_buffer1_settings(dhBufferSettings1, global_type, 1);
set_notebook_page_dialog(dlgid, pageid, dhBufferSettings1);
nbPagePrefix[pageid].dialog_handle = dhBufferSettings1;
}
global function create_buffer2_page(pageid, dlgid)
{
local temp_type;
dhBufferSettings2 = create_page(function_id( "buffer2_settings_callback" ),
dlgid, IDD_BUFFER_SETTINGS2, resource_dll);
attach_help(editor_helpfile, dhBufferSettings2)
if(isWindows())
nbPagePrefix[pageid].help = "Tabs and Margins";
else
nbPagePrefix[pageid].help = "bufferpage2";
if(!(CURRENT_BUFFER in languages))
add_type(CURRENT_BUFFER);
if(!(DEFAULT in languages))
add_type(DEFAULT);
if(!save_languages)
save_languages = copy_languages_array(languages);
set_dialog_item(dhBufferSettings2, IDL_TYPE, DAC_SORT_ASCENDING);
temp_type = global_type ? global_type : CURRENT_BUFFER;
if(!global_type || (global_type == CURRENT_BUFFER) || (global_type == DEFAULT))
{
global_type = Type(path_ext(buffer_filename));
global_type = global_type ? global_type : "pel";
initialize_buffer2_settings(dhBufferSettings2, global_type, 1);
}
global_type = temp_type;
initialize_buffer2_settings(dhBufferSettings2, global_type, 1);
# initialize_buffer2_settings(dhBufferSettings2, global_type);
set_notebook_page_dialog(dlgid, pageid, dhBufferSettings2);
nbPagePrefix[pageid].dialog_handle = dhBufferSettings2;
}
global function create_buffer3_page(pageid, dlgid)
{
local temp_type;
dhBufferSettings3 = create_page(function_id( "buffer3_settings_callback" ),
dlgid, IDD_BUFFER_SETTINGS3, resource_dll);
attach_help(editor_helpfile, dhBufferSettings3)
if(isWindows())
nbPagePrefix[pageid].help = "Tabs and Margins";
else
nbPagePrefix[pageid].help = "bufferpage3";
if(!(CURRENT_BUFFER in languages))
add_type(CURRENT_BUFFER);
if(!(DEFAULT in languages))
add_type(DEFAULT);
if(!save_languages)
save_languages = copy_languages_array(languages);
set_dialog_item(dhBufferSettings3, IDL_TYPE, DAC_SORT_ASCENDING);
set_dialog_item(dhBufferSettings3, IDE_BUF_WP_LEFT_MARGIN, DAC_SPIN_LIMITS, 1, 80 )
set_dialog_item(dhBufferSettings3, IDE_BUF_WP_RIGHT_MARGIN, DAC_SPIN_LIMITS, 1, 200 );
temp_type = (global_type ? global_type : CURRENT_BUFFER);
if(!global_type || (global_type == CURRENT_BUFFER) || (global_type == DEFAULT))
{
global_type = Type(path_ext(buffer_filename));
global_type = global_type ? global_type : "pel";
initialize_buffer3_settings(dhBufferSettings3, global_type, 1);
}
global_type = temp_type;
initialize_buffer3_settings(dhBufferSettings3, global_type, 1);
set_notebook_page_dialog(dlgid, pageid, dhBufferSettings3);
nbPagePrefix[pageid].dialog_handle = dhBufferSettings3;
}
########################## BUFFER PAGE 1 #################################
global function initialize_buffer1_settings(handle, type, load_types)
{
local flags = BufferFlags(type);
nb_initializing = TRUE;
if(load_types)
init_types(handle, 1);
# if((type != CURRENT_BUFFER) && (type != DEFAULT))
# set_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM, type"");
if(and(flags, BUFFER_SNAP_TO_EOL ) )
set_dialog_item( handle, IDC_BUFFER_SNAP_TO_EOL, DAC_CHECK)
else
set_dialog_item( handle, IDC_BUFFER_SNAP_TO_EOL, DAC_UNCHECK)
if(and(flags, BUFFER_REAL_SPACE_ONLY ) )
set_dialog_item( handle, IDC_BUFFER_REAL_SPACE_ONLY , DAC_CHECK)
else
set_dialog_item( handle, IDC_BUFFER_REAL_SPACE_ONLY , DAC_UNCHECK)
if(and(flags, BUFFER_TABS_TO_SPACES ) )
set_dialog_item( handle, IDC_BUFFER_TABS_TO_SPACES , DAC_CHECK)
else
set_dialog_item( handle, IDC_BUFFER_TABS_TO_SPACES , DAC_UNCHECK)
if(and(flags, BUFFER_EXPAND_TABS ) )
set_dialog_item( handle, IDC_BUFFER_EXPAND_TABS, DAC_CHECK)
else
set_dialog_item( handle, IDC_BUFFER_EXPAND_TABS, DAC_UNCHECK)
if(and(flags, BUFFER_READ_ONLY ) )
set_dialog_item( handle, IDC_BUFFER_READ_ONLY, DAC_CHECK)
else
set_dialog_item( handle, IDC_BUFFER_READ_ONLY, DAC_UNCHECK)
if(and(flags, BUFFER_OVERTYPE_MODE ) )
set_dialog_item( handle, IDC_BUFFER_OVERTYPE , DAC_CHECK)
else
set_dialog_item( handle, IDC_BUFFER_OVERTYPE , DAC_UNCHECK);
if(Syntax(type))
set_dialog_item(handle, IDC_SYNTAX_HILITE, DAC_CHECK);
else
set_dialog_item(handle, IDC_SYNTAX_HILITE, DAC_UNCHECK);
# set_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM, CURRENT_BUFFER)
# deselect_checks(handle);
set_checks(handle, global_type);
nb_initializing = FALSE
}
global function buffer1_settings_config()
{
local data[]
local i = 1
data[ i++ ] = sprintf( "# Settings specific to the first buffer settings notebook page\n" )
data[ i++ ] = sprintf( "default_buffer_flags=%d\n", default_buffer_flags )
data[ i++ ] = sprintf( "default_syntax_highlight=%d\n", default_syntax_highlight )
data[ i++ ] = sprintf( "\n" )
return data
}
# Assumption: Upon entrance to this function, we are in the buffer that
# whose certain values we want to apply to all other buffers.
# The calling function, apply_to_all, makes sure that this
# assumption is valid
#global function buffer1_apply_to_all()
#{
# local cur_buf = 0
# local first_buf = current_buffer
#
# local set_bits = 0
# local unset_bits = 0
#
# local flags = BUFFER_OVERTYPE_MODE +
# BUFFER_READ_ONLY +
# BUFFER_EXPAND_TABS +
# BUFFER_TABS_TO_SPACES +
# BUFFER_REAL_SPACE_ONLY +
# BUFFER_SNAP_TO_EOL +
# BUFFER_WP_ENABLED
#
# local new_val = syntax_highlight;
#
# # get the bits that are set in the current buffer
# set_bits = and( buffer_flags, flags )
#
# # get the bits that are not set in the current buffer
# unset_bits = and( flags, not(set_bits) )
#
# # Apply to all buffers.
# # This gets a little complex. We need to set the bits that
# # are set, and unset all of the bits that are not set
# while( (cur_buf = next_buffer()) != first_buf )
# {
# buffer_flags = or( buffer_flags, set_bits )
# buffer_flags = and( buffer_flags, not(unset_bits) )
# syntax_highlight = new_val;
# }
#
# current_buffer = first_buf
#}
global function buffer1_settings_callback()
{
local retval, handle = callback_dialog_handle, flags, type;
enable_undo(handle, callback_index );
if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, handle);
return DRC_MSG_PROCESSED;
}
if(callback_msg == DM_INIT )
{
# set_dialog_item( handle, IDC_APPLY_TO_ALL, DAC_UNCHECK)
apply_page_to_all( "buffer1", FALSE )
}
else if(callback_msg == DM_CANCEL )
{
return DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
if(callback_index == IDB_UNDO )
{
undo_buffer1_settings(global_type);
initialize_buffer1_settings(handle, global_type)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDB_DEFAULT )
{
set_comp_buff();
default_buffer1_settings(handle, global_type);
initialize_buffer1_settings(handle, global_type);
return DRC_MSG_PROCESSED
}
else if(callback_index == IDR_CURRENT_BUFFER)
{
global_type = CURRENT_BUFFER;
initialize_buffer1_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
}
else if(callback_index == IDR_DEFAULT)
{
global_type = DEFAULT;
initialize_buffer1_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
}
else if(callback_index == IDR_TYPES)
{
global_type = query_dialog_item(handle, IDL_TYPE, DAC_TEXT);
initialize_buffer1_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_ENABLE);
}
else if(callback_index == IDB_APPLY_TO_ALL)
{
comp_buff = TRUE;
apply_settings1(global_type);
}
else if( (callback_index == IDC_SYNTAX_HILITE) ||
(callback_index == IDC_BUFFER_SNAP_TO_EOL) ||
(callback_index == IDC_BUFFER_READ_ONLY) ||
(callback_index == IDC_BUFFER_EXPAND_TABS) ||
(callback_index == IDC_BUFFER_REAL_SPACE_ONLY) ||
(callback_index == IDC_BUFFER_TABS_TO_SPACES) ||
(callback_index == IDC_BUFFER_OVERTYPE) )
{
set_comp_buff();
retval = query_dialog_item( handle, callback_index, DAC_CHECK);
# Set all bits in retval if the box is checked, so set_flag_bits
# will work with any of the BUFFER_ masks;
retval = (retval ? 0xffffffff : 0);
if(callback_index == IDC_BUFFER_OVERTYPE)
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_OVERTYPE_MODE, retval));
else if(callback_index == IDC_BUFFER_TABS_TO_SPACES)
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_TABS_TO_SPACES, retval));
else if(callback_index == IDC_BUFFER_REAL_SPACE_ONLY)
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_REAL_SPACE_ONLY, retval));
else if(callback_index == IDC_BUFFER_EXPAND_TABS)
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_EXPAND_TABS, retval));
else if(callback_index == IDC_BUFFER_READ_ONLY)
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_READ_ONLY, retval));
else if(callback_index == IDC_BUFFER_SNAP_TO_EOL)
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_SNAP_TO_EOL, retval));
else if(callback_index == IDC_SYNTAX_HILITE)
set_syntax(global_type, retval);
}
# else if(callback_index == IDC_APPLY_TO_ALL)
# set_apply_to_all(type, retval, BUFFER1);
# else if(callback_index == IDC_MAKE_DEFAULT)
# {
# set_make_default(type, retval, BUFFER1);
# if(retval)
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_DISABLE);
# else
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_ENABLE);
# }
return DRC_MSG_PROCESSED
}
else if ( callback_msg == DM_SELECT )
{
if(callback_index == IDL_TYPE)
{
global_type = query_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM);
# set_checks(handle, global_type);
initialize_buffer1_settings(handle, global_type);
return DRC_MSG_PROCESSED;
}
}
return DRC_CONTINUE
}
########################## BUFFER PAGE 2 #################################
global function initialize_buffer2_settings(handle, type, load_types)
{
nb_initializing = TRUE;
if(load_types)
init_types(handle, 1);
# if((type != CURRENT_BUFFER) && (type != DEFAULT))
# set_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM, type "");
if(AutoIndent(type))
set_dialog_item(handle, IDC_AUTOINDENT, DAC_CHECK)
else
set_dialog_item(handle, IDC_AUTOINDENT, DAC_UNCHECK)
set_dialog_item(handle, IDE_BUFFER_TABS, DAC_EDIT_TEXT, Tabs(type) "")
# deselect_checks(handle);
set_checks(handle, global_type);
nb_initializing = FALSE
}
global function buffer2_settings_config()
{
local data[]
local i = 1
data[ i++ ] = sprintf( "# Settings specific to the second buffer settings notebook page\n" )
data[ i++ ] = sprintf( "default_auto_indent_mode=%d\n", default_auto_indent_mode )
data[ i++ ] = sprintf( "default_buffer_tabs=%s\n", default_buffer_tabs )
data[ i++ ] = sprintf( "\n" )
return data
}
#global function buffer2_apply_to_all()
#{
# local first_buf = current_buffer
# local cur_buf = 0
#
# local all_auto_indent_mode = auto_indent_mode
# local all_buffer_tabs = buffer_tabs
#
# while( (cur_buf = next_buffer()) != first_buf )
# {
# toggle_auto_indent( all_auto_indent_mode )
# buffer_tabs = all_buffer_tabs
# }
#
# current_buffer = first_buf
#}
global function buffer2_settings_callback()
{
local type, value, ret_msg = DRC_CONTINUE, handle = callback_dialog_handle;
enable_undo(handle, callback_index );
if(callback_msg == DM_INIT )
{
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_UNCHECK)
apply_page_to_all( "buffer2", FALSE )
}
else if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, handle);
return DRC_MSG_PROCESSED
}
else if(callback_msg == DM_CANCEL )
{
return DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
if(callback_index == IDB_UNDO )
{
undo_buffer2_settings(global_type);
initialize_buffer2_settings(handle, global_type)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDB_DEFAULT )
{
set_comp_buff();
default_buffer2_settings(handle, global_type);
initialize_buffer2_settings(handle, global_type)
return DRC_MSG_PROCESSED;
}
else if(callback_index == IDR_CURRENT_BUFFER)
{
global_type = CURRENT_BUFFER;
initialize_buffer2_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
}
else if(callback_index == IDR_DEFAULT)
{
global_type = DEFAULT;
initialize_buffer2_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
}
else if(callback_index == IDR_TYPES)
{
global_type = query_dialog_item(handle, IDL_TYPE, DAC_TEXT);
initialize_buffer2_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_ENABLE);
}
else if(callback_index == IDB_APPLY_TO_ALL)
{
comp_buff = TRUE;
apply_settings2(global_type);
return DRC_MSG_PROCESSED;
}
# else if(callback_index == IDC_MAKE_DEFAULT)
# {
# value = query_dialog_item(handle, IDC_MAKE_DEFAULT, DAC_CHECK);
# set_make_default(type, value, BUFFER2);
# if(value)
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_DISABLE);
# else
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_ENABLE);
#
# return DRC_MSG_PROCESSED;
# }
# else if(callback_index == IDC_APPLY_TO_ALL)
# {
# set_apply_to_all(type, query_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_CHECK), BUFFER2);
# return DRC_MSG_PROCESSED;
# }
else if(callback_index == IDC_AUTOINDENT)
{
set_comp_buff();
set_auto_indent(global_type, query_dialog_item(handle, IDC_AUTOINDENT, DAC_CHECK));
return DRC_MSG_PROCESSED;
}
}
# else if(callback_msg == DM_KILL_FOCUS)
# {
# if(callback_index == IDE_BUFFER_TABS)
# {
# set_comp_buff();
# if(global_type)
# set_tabs(global_type, query_dialog_item(handle, IDE_BUFFER_TABS, DAC_EDIT_TEXT));
# ret_msg = DRC_MSG_PROCESSED;
# }
# }
else if(callback_msg == DM_CHANGE)
{ # we set the tabs here also because when the user clicks on a radio button
# the DM_CLICK was being processed before the DM_KILL_FOCUS, so the tab
# settings were not being preserved;
if(callback_index == IDE_BUFFER_TABS)
{
set_comp_buff();
if(global_type)
set_tabs(global_type, query_dialog_item(handle, IDE_BUFFER_TABS, DAC_EDIT_TEXT));
ret_msg = DRC_MSG_PROCESSED;
}
}
else if(callback_msg == DM_SELECT)
{
if(callback_index == IDL_TYPE)
{
global_type = query_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM);
# set_checks(handle, global_type);
initialize_buffer2_settings(handle, global_type);
ret_msg = DRC_MSG_PROCESSED;
}
}
return ret_msg;
}
########################## BUFFER PAGE 3 #################################
global function initialize_buffer3_settings(handle, type, load_types)
{
local flags;
nb_initializing = TRUE;
if ( load_types )
init_types(handle, 1);
# if((type != CURRENT_BUFFER) && (type != DEFAULT))
# set_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM, type"");
flags = BufferFlags(global_type)
if ( and(flags, BUFFER_WP_ENABLED) )
{
set_dialog_item(handle, IDC_BUFFER_WP_ENABLED, DAC_CHECK);
set_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_ENABLE);
set_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS , DAC_ENABLE);
if ( and(flags, BUFFER_WP_WRAP_CONTINUOUS) )
set_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_CHECK);
else
set_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_UNCHECK);
if ( and(flags, BUFFER_WP_CARRY_COMMENTS) )
set_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS, DAC_CHECK);
else
set_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS, DAC_UNCHECK);
}
else
{
set_dialog_item(handle, IDC_BUFFER_WP_ENABLED, DAC_UNCHECK);
set_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_UNCHECK);
set_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS, DAC_UNCHECK);
set_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS, DAC_DISABLE);
set_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_DISABLE);
}
set_dialog_item(handle, IDE_BUF_WP_LEFT_MARGIN, DAC_SPIN_VALUE, LeftMargin(global_type)+0);
set_dialog_item(handle, IDE_BUF_WP_RIGHT_MARGIN, DAC_SPIN_VALUE, RightMargin(global_type)+0);
# deselect_checks(handle);
set_checks(handle, global_type);
nb_initializing = FALSE
}
global function buffer3_settings_config()
{
local data[]
local i = 1
data[ i++ ] = sprintf( "# Settings specific to the third buffer settings notebook page\n" )
data[ i++ ] = sprintf( "default_wp_right_margin=%d\n", default_wp_right_margin )
data[ i++ ] = sprintf( "default_wp_left_margin=%d\n", default_wp_left_margin )
data[ i++ ] = sprintf( "\n" )
return data
}
#global function buffer3_apply_to_all()
#{
# local first_buf = current_buffer
# local cur_buf = 0
#
# local mode = 0;
# local all_wp_right_margin = wp_right_margin
# local all_wp_left_margin = wp_left_margin
#
# mode = get_word_mode();
## if(and(buffer_flags, BUFFER_WP_ENABLED))
## {
## mode = 1; # Plain old word wrap
##
## if(and(buffer_flags, BUFFER_WP_WRAP_CONTINUOUS))
## mode = 2; # Auto flow
## # if(some other thing that indicates copy text)
## # mode = 3;
## }
#
# while( (cur_buf = next_buffer()) != first_buf )
# {
# set_word_mode( mode )
# wp_right_margin = all_wp_right_margin
# wp_left_margin = all_wp_left_margin
# }
#
# current_buffer = first_buf
#}
global function buffer3_settings_callback()
{
local type, retval, mode, flags;
local ret_msg = DRC_CONTINUE, handle = callback_dialog_handle;
enable_undo(handle, callback_index );
if(callback_msg == DM_INIT )
{
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_UNCHECK)
apply_page_to_all( "buffer3", FALSE )
}
else if(callback_msg == DM_HELPREQUESTED)
{
display_help(nbPagePrefix[current_nb_page].help, handle);
return DRC_MSG_PROCESSED
}
else if(callback_msg == DM_CANCEL )
{
return DRC_MSG_PROCESSED
}
else if((callback_msg == DM_CLICK) || (callback_msg == DM_DOUBLE_CLICK) )
{
if(callback_index == IDB_UNDO )
{
undo_buffer3_settings(global_type);
initialize_buffer3_settings(handle, global_type)
return DRC_MSG_PROCESSED
}
else if(callback_index == IDB_DEFAULT )
{
set_comp_buff();
default_buffer3_settings(handle, global_type);
initialize_buffer3_settings(handle, global_type)
return DRC_MSG_PROCESSED;
}
else if(callback_index == IDR_CURRENT_BUFFER)
{
global_type = CURRENT_BUFFER;
initialize_buffer3_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
}
else if(callback_index == IDR_DEFAULT)
{
global_type = DEFAULT;
initialize_buffer3_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
}
else if(callback_index == IDR_TYPES)
{
global_type = query_dialog_item(handle, IDL_TYPE, DAC_TEXT);
initialize_buffer3_settings(handle, global_type);
set_dialog_item(handle, IDL_TYPE, DAC_ENABLE);
}
else if(callback_index == IDB_APPLY_TO_ALL)
{
comp_buff = TRUE;
apply_settings3(global_type);
return DRC_MSG_PROCESSED;
}
# else if(callback_index == IDC_MAKE_DEFAULT)
# {
# retval = query_dialog_item(handle, IDC_MAKE_DEFAULT, DAC_CHECK);
# set_make_default(type, retval, BUFFER3);
# if(value)
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_DISABLE);
# else
# set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_ENABLE);
#
# return DRC_MSG_PROCESSED;
# }
# else if(callback_index == IDC_APPLY_TO_ALL)
# {
# set_apply_to_all(type, query_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_CHECK), BUFFER3);
# return DRC_MSG_PROCESSED;
# }
else if(callback_index == IDC_BUFFER_WP_ENABLED)
{
set_comp_buff();
retval = query_dialog_item(handle, IDC_BUFFER_WP_ENABLED, DAC_CHECK);
retval = (retval ? BUFFER_WP_ENABLED : 0);
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_WP_ENABLED, retval));
if(retval)
{
set_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_ENABLE);
set_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS, DAC_ENABLE);
}
else
{
set_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_DISABLE);
set_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS, DAC_DISABLE);
}
return DRC_MSG_PROCESSED
}
else if(callback_index == IDC_BUF_WP_WRAP_CONTINUOUS)
{
set_comp_buff();
retval = query_dialog_item(handle, IDC_BUF_WP_WRAP_CONTINUOUS, DAC_CHECK);
retval = (retval ? BUFFER_WP_WRAP_CONTINUOUS : 0);
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_WP_WRAP_CONTINUOUS, retval));
return DRC_MSG_PROCESSED
}
else if(callback_index == IDC_BUF_WP_CARRY_COMMENTS)
{
set_comp_buff();
retval = query_dialog_item(handle, IDC_BUF_WP_CARRY_COMMENTS, DAC_CHECK);
retval = (retval ? BUFFER_WP_CARRY_COMMENTS : 0);
set_buffer_flags(global_type, set_flag_bits(BufferFlags(global_type), BUFFER_WP_CARRY_COMMENTS, retval));
return DRC_MSG_PROCESSED
}
}
else if(callback_msg == DM_KILL_FOCUS)
{
if(callback_index == IDE_BUF_WP_LEFT_MARGIN)
{
set_comp_buff();
if(global_type)
set_left_margin(global_type, query_dialog_item(handle, IDE_BUF_WP_LEFT_MARGIN, DAC_SPIN_VALUE));
ret_msg = DRC_MSG_PROCESSED;
}
else if(callback_index == IDE_BUF_WP_RIGHT_MARGIN)
{
set_comp_buff();
if(global_type)
set_right_margin(global_type, query_dialog_item(handle, IDE_BUF_WP_RIGHT_MARGIN, DAC_SPIN_VALUE));
ret_msg = DRC_MSG_PROCESSED;
}
}
else if(callback_msg == DM_SELECT)
{
if(callback_index == IDL_TYPE)
{
global_type = query_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM);
# set_checks(handle, global_type);
initialize_buffer3_settings(handle, global_type);
ret_msg = DRC_MSG_PROCESSED;
}
}
return ret_msg;
}
local function set_checks(handle, type)
{
if(type == CURRENT_BUFFER)
{
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
set_dialog_item(handle, IDR_CURRENT_BUFFER, DAC_CHECK);
set_dialog_item(handle, IDR_DEFAULT, DAC_UNCHECK);
set_dialog_item(handle, IDR_TYPES, DAC_UNCHECK);
}
else if(type == DEFAULT)
{
set_dialog_item(handle, IDL_TYPE, DAC_DISABLE);
set_dialog_item(handle, IDR_CURRENT_BUFFER, DAC_UNCHECK);
set_dialog_item(handle, IDR_DEFAULT, DAC_CHECK);
set_dialog_item(handle, IDR_TYPES, DAC_UNCHECK);
}
else
{
set_dialog_item(handle, IDL_TYPE, DAC_ENABLE);
set_dialog_item(handle, IDR_CURRENT_BUFFER, DAC_UNCHECK);
set_dialog_item(handle, IDR_DEFAULT, DAC_UNCHECK);
set_dialog_item(handle, IDR_TYPES, DAC_CHECK);
set_dialog_item(handle, IDL_TYPE, DAC_SELECT_ITEM, type"");
}
# if ( type != )
# {
## set_dialog_item(handle, IDC_MAKE_DEFAULT, DAC_DISABLE);
## set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_DISABLE);
# global_type = type;
# }
# else
# {
## set_dialog_item(handle, IDC_MAKE_DEFAULT, DAC_ENABLE);
## set_dialog_item(handle, IDC_APPLY_TO_ALL, DAC_ENABLE);
# global_type = FALSE;
# }
}
########################## UNDO and DEFAULT #################################
global function assign_bufferhelp_changes(dlgid)
{
nop();
}
global function assign_buffer1_changes(dlgid)
{
local type = CURRENT_BUFFER;
buffer_flags = BufferFlags(type);
syntax_highlight = Syntax(type);
type = DEFAULT;
default_buffer_flags = set_flag_bits(default_buffer_flags, BUFFER1MASK, BufferFlags(type));
default_syntax_highlight = Syntax(type);
# if(ApplyToAll(type, BUFFER1))
# apply_page_to_all( "buffer1", function_id("buffer1_apply_to_all"));
#
# if(MakeDefault(type, BUFFER1))
# make_default_buffer1_settings();
}
global function assign_buffer2_changes(dlgid)
{
local type = CURRENT_BUFFER;
toggle_auto_indent(AutoIndent(type));
buffer_tabs = Tabs(type);
wp_right_margin = RightMargin(type);
wp_left_margin = LeftMargin(type);
type = DEFAULT;
default_auto_indent_mode = AutoIndent(type);
default_buffer_tabs = Tabs(type);
default_wp_right_margin = RightMargin(type);
default_wp_left_margin = LeftMargin(type);
# if(ApplyToAll(type, BUFFER2))
# apply_page_to_all( "buffer2", function_id("buffer2_apply_to_all"));
#
# if(MakeDefault(type, BUFFER2))
# make_default_buffer2_settings();
}
global function assign_buffer3_changes(dlgid)
{
local type = CURRENT_BUFFER;
buffer_flags = set_flag_bits(buffer_flags, BUFFER3MASK, BufferFlags(type));
wp_right_margin = RightMargin(type);
wp_left_margin = LeftMargin(type);
type = DEFAULT;
default_buffer_flags = set_flag_bits(default_buffer_flags, BUFFER3MASK, BufferFlags(type));
default_wp_right_margin = RightMargin(type);
default_wp_left_margin = LeftMargin(type);
# if ( ApplyToAll(type, BUFFER3) )
# apply_page_to_all( "buffer3", function_id("buffer3_apply_to_all"));
#
# if ( MakeDefault(type, BUFFER3) )
# make_default_buffer3_settings();
}
local function default_buffer1_settings(handle, type)
{
nb_initializing = TRUE;
set_buffer_flags(type, set_flag_bits(BufferFlags(type), BUFFER1MASK, BufferFlags(DEFAULT)) );
set_syntax(type, Syntax(DEFAULT));
# deselect_checks(handle);
nb_initializing = FALSE
}
local function default_buffer2_settings(handle, type)
{
nb_initializing = TRUE
set_auto_indent(type, AutoIndent(DEFAULT));
set_tabs(type, Tabs(DEFAULT));
# deselect_checks(handle);
nb_initializing = FALSE
}
local function default_buffer3_settings(handle, type)
{
nb_initializing = TRUE
set_buffer_flags(type, set_flag_bits(BufferFlags(type), BUFFER3MASK, BufferFlags(DEFAULT)));
set_margins(type, Margins(DEFAULT));
# deselect_checks(handle);
nb_initializing = FALSE
}
local function undo_buffer1_settings(type)
{
if(type in save_languages)
{
if(type in languages)
{
languages[type].syntax = save_languages[type].syntax;
languages[type].buff_flags = set_flag_bits(languages[type].buff_flags,
BUFFER1MASK,
save_languages[type].buff_flags);
}
}
else if(type == CURRENT_BUFFER)
{
languages[type].syntax = syntax_highlight;
languages[type].buff_flags = set_flag_bits(languages[type].buff_flags,
BUFFER1MASK,
buffer_flags);
}
else if(type == DEFAULT)
{
languages[type].syntax = default_syntax_highlight;
languages[type].buff_flags = set_flag_bits(languages[type].buff_flags,
BUFFER1MASK,
default_buffer_flags);
}
else
{
warning("No information was saved for this type >" type "<");
}
}
local function undo_buffer2_settings(type)
{
if(type in save_languages)
{
if(type in languages)
{
languages[type].tab_stops = save_languages[type].tab_stops;
# languages[type].matching_pairs = save_languages[type].matching_pairs;
languages[type].auto_indent = save_languages[type].auto_indent;
}
}
else if(type == CURRENT_BUFFER)
{
languages[type].tab_stops = buffer_tabs;
# languages[type].matching_pairs = matching_pairs;
languages[type].auto_indent = auto_indent_mode;
}
else if(type == DEFAULT)
{
languages[type].tab_stops = default_buffer_tabs;
# languages[type].matching_pairs = matching_pairs;
languages[type].auto_indent = default_auto_indent_mode;
}
else
{
warning("No information was saved for this type >" type "<");
}
}
local function undo_buffer3_settings(type)
{
if(type in save_languages)
{
if(type in languages)
{
languages[type].margins = save_languages[type].margins;
languages[type].buff_flags = set_flag_bits(languages[type].buff_flags,
BUFFER3MASK,
save_languages[type].buff_flags);
}
}
else if(type == CURRENT_BUFFER)
{
languages[type].margins = wp_left_margin " " wp_right_margin;
languages[type].buff_flags = set_flag_bits(languages[type].buff_flags,
BUFFER3MASK,
buffer_flags);
}
else if(type == CURRENT_BUFFER)
{
languages[type].margins = default_wp_left_margin " " default_wp_right_margin;
languages[type].buff_flags = set_flag_bits(languages[type].buff_flags,
BUFFER3MASK,
default_buffer_flags);
}
else
{
warning("No information was saved for this type >" type "<");
}
}
local function set_comp_buff()
{
# if((global_type != CURRENT_BUFFER) && (global_type != DEFAULT))
if(global_type != CURRENT_BUFFER)
comp_buff = TRUE;
else
{
set_modified(CURRENT_BUFFER, TRUE);
}
}
local function apply_settings1(model)
{
local type;
local flags = BufferFlags(model);
local syntax = Syntax(model);
for(type in languages)
{
if((type != model) && (type != CURRENT_BUFFER) && (type != DEFAULT))
{
set_buffer_flags(type, set_flag_bits(BufferFlags(type), BUFFER1MASK, flags));
set_syntax(type, syntax);
}
}
}
local function apply_settings2(model)
{
local type;
local tabs = Tabs(model);
local indent = AutoIndent(model);
for(type in languages)
{
if((type != model) && (type != CURRENT_BUFFER) && (type != DEFAULT))
{
set_tabs(type, tabs);
set_auto_indent(type, indent);
}
}
}
local function apply_settings3(model)
{
local type;
local flags = BufferFlags(model);
local margins = Margins(model);
for(type in languages)
{
if((type != model) && (type != CURRENT_BUFFER) && (type != DEFAULT))
{
set_buffer_flags(type, set_flag_bits(BufferFlags(type), BUFFER3MASK, flags));
set_margins(type, margins);
}
}
}