/****************************** Module Header ******************************* * * Module Name: popup.e * * Copyright (c) Netlabs EPM Distribution Project 2004 * * $Id$ * * =========================================================================== * * This file is part of the Netlabs EPM Distribution package and is free * software. You can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software * Foundation, in version 2 as it comes in the "COPYING" file of the * Netlabs EPM Distribution. This library is distributed in the hope that it * will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * ****************************************************************************/ ; Popup menu defs, moved from MOUSE.E. compile if not defined(SMALL) -- If SMALL not defined, then being separately define INCLUDING_FILE = 'POPUP.E' const compile if not defined(WANT_TEXT_PROCS) WANT_TEXT_PROCS = 1 compile endif compile if not defined(CHECK_FOR_LEXAM) CHECK_FOR_LEXAM = 0 compile endif compile if not defined(VANILLA) VANILLA = 0 compile endif compile if not defined( WANT_DYNAMIC_PROMPTS) WANT_DYNAMIC_PROMPTS = 1 -- required for ENGLISH.E only compile endif compile if not defined(NLS_LANGUAGE) NLS_LANGUAGE = 'ENGLISH' compile endif include NLS_LANGUAGE'.e' include 'stdconst.e' include 'menuhelp.h' EA_comment 'This defines the popup menu.' compile endif const FILL_MARK_MENU__MSG = '~Fill mark' FILL_MARK_MENUP__MSG = \1'Fill marked region with a character, overlaying current contents.' HP_POPUP_FILL = 0 REFLOW_MARK_MENU__MSG = '~Reflow mark' REFLOW_MARK_MENUP__MSG = \1'Reflow text in marked region.' HP_POPUP_REFLOW = 0 MARK_WORD_MENU__MSG = 'Mark ~word' MARK_WORD_MENUP__MSG = \1'Mark space-delimited word under mouse pointer.' HP_POPUP_MARKWORD = 0 MARK_TOKEN_MENU__MSG = 'Mark ~identifier' MARK_TOKEN_MENUP__MSG = \1'Mark the C-language identifier under the mouse pointer.' HP_POPUP_MARKTOKEN = 0 FIND_TOKEN_MENU__MSG = '~Find identifier' FIND_TOKEN_MENUP__MSG = \1'Find the next occurrence of the identifier under the mouse pointer.' HP_POPUP_FINDTOKEN = 0 compile if WANT_TEXT_PROCS MARK_SENTENCE_MENU__MSG = 'Mark s~entence' MARK_SENTENCE_MENUP__MSG = \1'Mark sentence around mouse pointer.' HP_POPUP_MARKSENTENCE = 0 MARK_PARAGRAPH_MENU__MSG = 'Mark para~graph' MARK_PARAGRAPH_MENUP__MSG = \1'Mark paragraph around mouse pointer.' HP_POPUP_MARKPARAGRAPH = 0 EXTEND_SENTENCE_MENU__MSG = 'E~xtend sentence mark' EXTEND_SENTENCE_MENUP__MSG = \1'Extend character mark through end of next sentence.' HP_POPUP_EXTENDSENTENCE = 0 EXTEND_PARAGRAPH_MENU__MSG = 'Extend p~aragraph mark' EXTEND_PARAGRAPH_MENUP__MSG = \1'Extend character mark through end of next paragraph.' HP_POPUP_EXTENDPARAGRAPH = 0 compile endif -- WANT_TEXT_PROCS UPCASE_MARK_MENU__MSG = '~Uppercase mark' UPCASE_MARK_MENUP__MSG = \1'Translate selected text to upper case.' HP_POPUP_UPCASEMARK = 0 LOCASE_MARK_MENU__MSG = '~Lowercase mark' LOCASE_MARK_MENUP__MSG = \1'Translate selected text to lower case.' HP_POPUP_LOCASEMARK = 0 UPCASE_WORD_MENU__MSG = '~Uppercase word' UPCASE_WORD_MENUP__MSG = \1'Translate word under mouse pointer to upper case.' HP_POPUP_UPCASEWORD = 0 LOCASE_WORD_MENU__MSG = '~Lowercase word' LOCASE_WORD_MENUP__MSG = \1'Translate word under mouse pointer to lower case.' HP_POPUP_LOCASEWORD = 0 SHIFT_MENU__MSG = '~Shift' SHIFT_MENUP__MSG = \1'Shift marked text left or right.' HP_POPUP_SHIFT = 0 SHIFTLEFT_MENU__MSG = 'Shift ~left 1' SHIFTLEFT_MENUP__MSG = \1'Shift marked text left 1 character.' HP_POPUP_SHIFTLEFT = 0 SHIFTLEFT3_MENU__MSG = 'Shift l~eft 3' SHIFTLEFT3_MENUP__MSG = \1'Shift marked text left 3 characters.' HP_POPUP_SHIFTLEFT3 = 0 SHIFTLEFT8_MENU__MSG = 'Shift le~ft 8' SHIFTLEFT8_MENUP__MSG = \1'Shift marked text left 8 characters.' HP_POPUP_SHIFTLEFT8 = 0 SHIFTRIGHT_MENU__MSG = 'Shift right ~1' SHIFTRIGHT_MENUP__MSG = \1'Shift marked text right 1 character.' HP_POPUP_SHIFTRIGHT = 0 SHIFTRIGHT3_MENU__MSG = 'Shift right ~3' SHIFTRIGHT3_MENUP__MSG = \1'Shift marked text right 3 characters.' HP_POPUP_SHIFTRIGHT3 = 0 SHIFTRIGHT8_MENU__MSG = 'Shift right ~8' SHIFTRIGHT8_MENUP__MSG = \1'Shift marked text right 8 characters.' HP_POPUP_SHIFTRIGHT8 = 0 CENTER_LINE_MENU__MSG = 'Cen~ter line' CENTER_LINE_MENUP__MSG = \1'Center line under mouse pointer vertically in window.' HP_POPUP_CENTERLINE = 0 CENTER_MARK_MENU__MSG = 'Cen~ter text' CENTER_MARK_MENUP__MSG = \1'Center marked text within margins or block mark.' HP_POPUP_CENTERMARK = 0 SORT_MARK_MENU__MSG = 'S~ort' SORT_MARK_MENUP__MSG = \1'Sort marked lines, using block mark (if present) as key.' HP_POPUP_SORT = 0 TOP_LINE_MENU__MSG = 'Scro~ll to top' TOP_LINE_MENUP__MSG = \1'Scroll so line under mouse pointer is at top of window.' HP_POPUP_TOP = 0 ;compile if WANT_TREE LOAD_FILE_MENU__MSG = '~Load file' SORT_ASCENDING_MENU__MSG = '~Sort ascending' SORT_DATE_MENU__MSG = 'Sort by ~date' SORT_TIME_MENU__MSG = 'Sort by ~time' SORT_SIZE_MENU__MSG = 'Sort by ~size' SORT_EASIZE_MENU__MSG = 'Sort by ~EA size' SORT_FULLNAME_MENU__MSG = 'Sort by ~fully-qualified filename' SORT_NAME_MENU__MSG = 'Sort by ~name' SORT_EXTENSION_MENU__MSG = 'Sort by ~extension' SORT_DESCENDING_MENU__MSG = 'Sort ~descending' LOAD_FILE_MENUP__MSG = \1'Load the file or list the directory under the cursor' SORT_ASCENDING_MENUP__MSG = \1'Sort the file or marked lines from smallest to largest' SORT_XXXX_MENUP__MSG = \1'Sort the file or marked lines by the indicated attribute' SORT_DESCENDING_MENUP__MSG = \1'Sort the file or marked lines from largest to smallest' ;compile endif ; --------------------------------------------------------------------------- definit call SetAVar( 'mid_popup', 80) ; --------------------------------------------------------------------------- const -- Cascade menu is now replaced by inline menu items, because it doesnot -- work correctly: -- The frame around the submenu arrow is only painted after activating -- that menu item. Before that, one thinks that's a normal submenu item -- that won't execute something on selecting it. POPUP_ENABLE_CASCADE = 0 -- 0|1 ; --------------------------------------------------------------------------- defc MH_popup universal activemenu menuname = 'popup' activemenu = menuname -- required for DefSubMenu and DefSubMenuItem -- Optionally move cursor to pointer before: --'MH_gotoposition' deletemenu menuname, 0, 0, 0 -- For a popup menu, the submenu item itself is invisible. Therefore simply -- use the same name here as for the popup menu: DefSubMenu( menuname, -- Popup ---------- '', '', '') call AddPopupMenuItems() showmenu menuname, 1 -- 0 = standard menu (default for missing parameter), 1 = popup menu, 2 = undefined, 3 = UC menu (toolbar) -- Cascade menu is now replaced by inline menu items, because it doesnot -- work correctly: -- The frame around the submenu arrow is only painted after activating -- that menu item. Before that, one thinks that's a normal submenu item -- that won't execute something on selecting it. compile if POPUP_ENABLE_CASCADE 'postme add_cascade_popupmenu' compile endif ; --------------------------------------------------------------------------- ; This creates a popup menu at the last mouse pointer location. --defproc BuildPopupMenu defproc AddPopupMenuItems universal nodismiss compile if CHECK_FOR_LEXAM universal LEXAM_is_available compile endif mt = leftstr( marktype(), 1) fInMark = mouse_in_mark() -- Disable some menu items if char mark is active fCharMark = (mt = 'C') if fCharMark then miaformatable = 'DISABLED' else miaformatable = '' endif -- Disable menu items if cursor is on a space char ch = substr( textline(.line), .col, 1) fCurCharIsMarkable = (ch <> ' ' & .line) if fCurCharIsMarkable then miamarkable = '' else miamarkable = 'DISABLED' endif -- Build MenuAccelString dynamically, depending on the definition for -- DefaultPaste and AlternatePaste KeyPath = '\NEPMD\User\Mark\DefaultPaste' next = substr( upcase( QueryConfigKey( KeyPath)), 1, 1) if next = 'L' then style = 'L' altstyle = 'C' elseif next = 'B' then style = 'B' altstyle = 'C' else style = 'C' altstyle = 'L' endif if style = 'C' then PasteCMenuAccelString = MenuAccelString( 'DefaultPaste') elseif altstyle = 'C' then PasteCMenuAccelString = MenuAccelString( 'AlternatePaste') else PasteCMenuAccelString = '' endif if style = 'L' then PasteLMenuAccelString = MenuAccelString( 'DefaultPaste') elseif altstyle = 'L' then PasteLMenuAccelString = MenuAccelString( 'AlternatePaste') else PasteLMenuAccelString = '' endif if style = 'B' then PasteBMenuAccelString = MenuAccelString( 'DefaultPaste') elseif altstyle = 'B' then PasteBMenuAccelString = MenuAccelString( 'AlternatePaste') else PasteBMenuAccelString = '' endif -- Disable menu items if clipboard is empty or file is not editable fPasteEnabled = (clipcheck(format) & (format = 1024) & not (browse() | .readonly)) if fPasteEnabled then miapastable = '' else miapastable = 'DISABLED' endif if upcase( leftstr( .filename, 5)) = '.TREE' then ---------------------------------------------------------------------------------- DefMenuItem( '', -- Load file LOAD_FILE_MENU__MSG''MenuAccelString( 'alt_1'), 'dokey a_1', LOAD_FILE_MENUP__MSG, '') DefNextItemStartsSubMenu() DefMenuItem( '', -- Sort ascending > SORT_ASCENDING_MENU__MSG, '', SORT_ASCENDING_MENUP__MSG, '') DefMenuItem( '', -- Sort by date SORT_DATE_MENU__MSG, 'treesort' 'D', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by time SORT_TIME_MENU__MSG, 'treesort' 'T', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by size SORT_SIZE_MENU__MSG, 'treesort' 'S', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by EA size SORT_EASIZE_MENU__MSG, 'treesort' 'EA', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by fully-qualified filename SORT_FULLNAME_MENU__MSG, 'treesort' 'F', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by name SORT_NAME_MENU__MSG, 'treesort' 'N', SORT_XXXX_MENUP__MSG, '') DefNextItemEndsSubMenu() DefMenuItem( '', -- Sort by extension SORT_EXTENSION_MENU__MSG, 'treesort' 'EX', SORT_XXXX_MENUP__MSG, '') DefNextItemStartsSubMenu() DefMenuItem( '', -- Sort descending > SORT_DESCENDING_MENU__MSG, '', SORT_DESCENDING_MENUP__MSG, '') DefMenuItem( '', -- Sort by date SORT_DATE_MENU__MSG, 'treesort' '/R' 'D', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by time SORT_TIME_MENU__MSG, 'treesort' '/R' 'T', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by size SORT_SIZE_MENU__MSG, 'treesort' '/R' 'S', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by EA size SORT_EASIZE_MENU__MSG, 'treesort' '/R' 'EA', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by fully-qualified filename SORT_FULLNAME_MENU__MSG, 'treesort' '/R' 'F', SORT_XXXX_MENUP__MSG, '') DefMenuItem( '', -- Sort by name SORT_NAME_MENU__MSG, 'treesort' '/R' 'N', SORT_XXXX_MENUP__MSG, '') DefNextItemEndsSubMenu() DefMenuItem( '', -- Sort by extension SORT_EXTENSION_MENU__MSG, 'treesort' '/R' 'EX', SORT_XXXX_MENUP__MSG, '') elseif fInMark then -- Build Inside-Mark pop-up ----------------------------------------------------------------------------------- DefMenuItem( '', -- Unmark UNMARK_MARK_MENU__MSG, 'UnMark', UNMARK_MARK_MENUP__MSG, HP_EDIT_UNMARK) DefMenuItem( '', -- Delete mark DELETE_MARK_MENU__MSG, 'DeleteMark', DELETE_MARK_MENUP__MSG, HP_EDIT_DELETE) DefMenuItem( '', -- Fill mark FILL_MARK_MENU__MSG, 'FillMark', FILL_MARK_MENUP__MSG, HP_POPUP_FILL) DefMenuItem( '', -- Reflow mark REFLOW_MARK_MENU__MSG, 'ReflowPar2ReflowMargins', REFLOW_MARK_MENUP__MSG, HP_POPUP_REFLOW, miaformatable) DefMenuItem( '', -- Uppercase mark UPCASE_MARK_MENU__MSG, 'UppercaseMark', UPCASE_MARK_MENUP__MSG, HP_POPUP_UPCASEMARK) DefMenuItem( '', -- Lowercase mark LOCASE_MARK_MENU__MSG, 'LowercaseMark', LOCASE_MARK_MENUP__MSG, HP_POPUP_LOCASEMARK) DefMenuItem( '', -- Sort SORT_MARK_MENU__MSG, 'Sort', SORT_MARK_MENUP__MSG, HP_POPUP_SORT, miaformatable) DefMenuSep() -------------------- DefMenuItem( '', -- Find mark 'Fi~nd mark', 'FindMark', 'Find marked string in text', '') DefMenuSep() -------------------- DefMenuItem( '', -- Comment '~Comment', 'Comment', 'Comment marked lines', '') DefMenuItem( '', -- Uncomment 'Unco~mment', 'Uncomment', 'Uncomment marked lines', '') DefMenuSep() -------------------- compile if WANT_TEXT_PROCS DefMenuItem( '', -- Extend sentence mark EXTEND_SENTENCE_MENU__MSG, 'ExtendSentence', EXTEND_SENTENCE_MENUP__MSG, HP_POPUP_EXTENDSENTENCE) DefMenuItem( '', -- Extend paragraph mark EXTEND_PARAGRAPH_MENU__MSG, 'ExtendParagraph', EXTEND_PARAGRAPH_MENUP__MSG, HP_POPUP_EXTENDPARAGRAPH) DefMenuSep() -------------------- compile endif -- WANT_TEXT_PROCS DefNextItemStartsSubMenu() DefMenuItem( '', -- Shift > SHIFT_MENU__MSG, '', SHIFT_MENUP__MSG, HP_POPUP_SHIFT) DefMenuItem( '', -- Shift left 1 SHIFTLEFT_MENU__MSG''MenuAccelString( 'ShiftLeft'), 'DoCmd 1 ShiftLeft', SHIFTLEFT_MENUP__MSG, HP_POPUP_SHIFTLEFT, nodismiss) DefMenuItem( '', -- Shift left 3 SHIFTLEFT3_MENU__MSG, 'DoCmd 3 ShiftLeft', SHIFTLEFT3_MENUP__MSG, HP_POPUP_SHIFTLEFT3, nodismiss) DefMenuItem( '', -- Shift left 8 SHIFTLEFT8_MENU__MSG, 'DoCmd 8 ShiftLeft', SHIFTLEFT8_MENUP__MSG, HP_POPUP_SHIFTLEFT8, nodismiss) DefMenuItem( '', -- Shift right 1 SHIFTRIGHT_MENU__MSG''MenuAccelString( 'ShiftRight'), 'DoCmd 1 ShiftRight', SHIFTRIGHT_MENUP__MSG, HP_POPUP_SHIFTRIGHT, 'BREAKSEPARATOR' nodismiss) DefMenuItem( '', -- Shift right 3 SHIFTRIGHT3_MENU__MSG, 'DoCmd 3 ShiftRight', SHIFTRIGHT3_MENUP__MSG, HP_POPUP_SHIFTRIGHT3, nodismiss) DefNextItemEndsSubMenu() DefMenuItem( '', -- Shift right 8 SHIFTRIGHT8_MENU__MSG, 'DoCmd 8 ShiftRight', SHIFTRIGHT8_MENUP__MSG, HP_POPUP_SHIFTRIGHT8, nodismiss) DefMenuItem( '', -- Center text CENTER_MARK_MENU__MSG, 'CenterMark', CENTER_MARK_MENUP__MSG, HP_POPUP_CENTERMARK, miaformatable) DefMenuSep() -------------------- DefMenuItem( '', -- Copy CLIP_COPY_MENU__MSG, 'Copy2Clip', CLIP_COPY_MENUP__MSG, HP_EDIT_COPY) DefMenuItem( '', -- Cut CUT_MENU__MSG, 'Cut', CUT_MENUP__MSG, HP_EDIT_CUT) DefMenuSep() -------------------- DefMenuItem( '', -- Style... STYLE_MENU__MSG, 'FontList', STYLE_MENUP__MSG, HP_OPTIONS_STYLE) compile if CHECK_FOR_LEXAM if LEXAM_is_available then compile endif DefMenuSep() -------------------- DefMenuItem( '', -- Proof PROOF_MENU__MSG, 'Proof', PROOF_MENUP__MSG, HP_OPTIONS_PROOF) compile if CHECK_FOR_LEXAM endif compile endif DefMenuSep() -------------------- DefMenuItem( '', -- Print mark... PRT_MARK_MENU__MSG'...', 'PrintDlg M', ENHPRT_MARK_MENUP__MSG, HP_EDIT_ENHPRINT) if isadefc( 'PrefsPopupMenu') then DefMenuSep() -------------------- DefMenuItem( 'preferences', -- Preferences... '~Preferences...', 'PrefsPopupMenu', 'Menus related to editor settings', '') endif elseif mt <> ' ' then -- Build Outside-Mark pop-up -------------------------------------------------------------------------------- DefMenuItem( '', -- Copy mark COPY_MARK_MENU__MSG, 'CopyMark', COPY_MARK_MENUP__MSG, HP_EDIT_COPYMARK) DefMenuItem( '', -- Move mark MOVE_MARK_MENU__MSG, 'MoveMark', MOVE_MARK_MENUP__MSG, HP_EDIT_MOVE) DefMenuItem( '', -- Overlay mark OVERLAY_MARK_MENU__MSG, 'OverlayMark', OVERLAY_MARK_MENUP__MSG, HP_EDIT_OVERLAY) DefMenuItem( '', -- Adjust mark ADJUST_MARK_MENU__MSG, 'AdjustMark', ADJUST_MARK_MENUP__MSG, HP_EDIT_ADJUST) DefMenuSep() -------------------- DefMenuItem( '', -- Unmark UNMARK_MARK_MENU__MSG, 'Unmark', UNMARK_MARK_MENUP__MSG, HP_EDIT_UNMARK) if isadefc( 'PrefsPopupMenu') then DefMenuSep() -------------------- DefMenuItem( 'preferences', -- Preferences... '~Preferences...', 'PrefsPopupMenu', 'Menus related to editor settings', '') endif else -- Build No-mark pop-up ------------------------------------------------------------------------------------------------------ DefMenuItem( '', -- Mark identifier MARK_TOKEN_MENU__MSG, 'MarkToken', MARK_TOKEN_MENUP__MSG, HP_POPUP_MARKTOKEN, miamarkable) DefMenuItem( '', -- Mark word MARK_WORD_MENU__MSG, 'MarkWord', MARK_WORD_MENUP__MSG, HP_POPUP_MARKWORD, miamarkable) DefMenuItem( '', -- Find identifier FIND_TOKEN_MENU__MSG, 'FindToken', FIND_TOKEN_MENUP__MSG, HP_POPUP_FINDTOKEN, miamarkable) DefMenuSep() -------------------- compile if WANT_TEXT_PROCS DefMenuItem( '', -- Mark sentence MARK_SENTENCE_MENU__MSG, 'MarkSentence', MARK_SENTENCE_MENUP__MSG, HP_POPUP_MARKSENTENCE) DefMenuItem( '', -- Mark paragraph MARK_PARAGRAPH_MENU__MSG, 'MarkParagraph', MARK_PARAGRAPH_MENUP__MSG, HP_POPUP_MARKPARAGRAPH) DefMenuSep() -------------------- compile endif -- WANT_TEXT_PROCS DefMenuItem( '', -- Reflow paragraph '~Reflow paragraph', 'ReflowPar2ReflowMargins', 'Reflow text from cursor to next empty line', HP_POPUP_REFLOW) DefMenuSep() -------------------- DefMenuItem( '', -- Toggle case of word 'Toggle ~case of word', 'CaseWord', 'Rotate case: lower -> mixed -> upper', HP_POPUP_UPCASEWORD, miamarkable) DefMenuItem( '', -- Uppercase word UPCASE_WORD_MENU__MSG, 'UppercaseWord', UPCASE_WORD_MENUP__MSG, HP_POPUP_UPCASEWORD, miamarkable) DefMenuItem( '', -- Lowercase word LOCASE_WORD_MENU__MSG, 'LowercaseWord', LOCASE_WORD_MENUP__MSG, HP_POPUP_LOCASEWORD, miamarkable) DefMenuSep() -------------------- DefMenuItem( '', -- Center line CENTER_LINE_MENU__MSG, 'CenterLine', CENTER_LINE_MENUP__MSG, HP_POPUP_CENTERLINE) DefMenuItem( '', -- Scroll to top TOP_LINE_MENU__MSG, 'NewTop', TOP_LINE_MENUP__MSG, HP_POPUP_TOP) DefMenuSep() -------------------- compile if POPUP_ENABLE_CASCADE -- Cascade menu now replaced by inline menu items, because it doesnot work correctly: DefNextItemStartsSubMenu() DefMenuItem( 'popup_paste', -- Paste > PASTE_C_MENU__MSG, PASTE_C_MENUP__MSG , '', HP_EDIT_PASTEMENU) DefMenuItem( 'popup_pastec', -- Paste PASTE_C_MENU__MSG''PasteCMenuAccelString, 'Paste C', PASTE_C_MENUP__MSG, HP_EDIT_PASTEC) DefMenuItem( 'popup_pastel', -- Paste lines PASTE_L_MENU__MSG''PasteLMenuAccelString, 'Paste', PASTE_L_MENUP__MSG, HP_EDIT_PASTE) DefNextItemEndsSubMenu() DefMenuItem( 'popup_pasteb', -- Paste block PASTE_B_MENU__MSG''PasteBMenuAccelString, 'Paste B', PASTE_B_MENUP__MSG, HP_EDIT_PASTEB) compile else DefMenuItem( '', -- Paste PASTE_C_MENU__MSG''PasteCMenuAccelString, 'Paste C', PASTE_C_MENUP__MSG, HP_EDIT_PASTEC, miapastable) DefMenuItem( '', -- Paste lines PASTE_L_MENU__MSG''PasteLMenuAccelString, 'Paste', PASTE_L_MENUP__MSG, HP_EDIT_PASTE, miapastable) DefMenuItem( '', -- Paste block PASTE_B_MENU__MSG''PasteBMenuAccelString, 'Paste B', PASTE_B_MENUP__MSG, HP_EDIT_PASTEB, miapastable) compile endif if isadefc( 'PrefsPopupMenu') then DefMenuSep() -------------------- DefMenuItem( 'preferences', -- Preferences... 'Pre~ferences...', 'PrefsPopupMenu', 'Menus related to editor settings', '') endif endif compile if not VANILLA tryinclude 'mymsemnu.e' -- For user-added configuration compile endif return ; --------------------------------------------------------------------------- -- Cascade menu is now replaced by inline menu items, because it doesnot -- work correctly: -- The frame around the submenu arrow is only painted after activating -- that menu item. Before that, one thinks that's a normal submenu item -- that won't execute something on selecting it. compile if POPUP_ENABLE_CASCADE defc add_cascade_popupmenu KeyPath = "\NEPMD\User\Mark\DefaultPaste" DefaultPaste = QueryConfigKey( KeyPath) if DefaultPaste = 'C' then AlternatePaste = 'L' else AlternatePaste = 'C' endif if DefaultPaste = 'L' then -- arg for defc paste maybe 'C', 'B' or '' DefaultPaste = '' endif if AlternatePaste = 'L' then -- arg for defc paste maybe 'C', 'B' or '' AlternatePaste = '' endif if DefaultPaste = 'C' then 'cascade_menu popup_paste popup_pastec' -- Paste cascade; default is Paste (character mark) elseif DefaultPaste = 'B' then 'cascade_menu popup_paste popup_pasteb' -- Paste cascade; default is Paste Block else 'cascade_menu popup_paste popup_pastel' -- Paste cascade; default is Paste Lines endif compile endif