/[eiffelstudio]/branches/Eiffel_57_docking/Src/Eiffel/interface/new_graphical/windows/eb_development_window.e
ViewVC logotype

Diff of /branches/Eiffel_57_docking/Src/Eiffel/interface/new_graphical/windows/eb_development_window.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 51083 by alexk, Sat May 14 10:52:10 2005 UTC revision 51111 by manus, Tue May 17 18:04:25 2005 UTC
# Line 80  inherit Line 80  inherit
80    
81          TEXT_OBSERVER          TEXT_OBSERVER
82                  redefine                  redefine
83                          on_text_reset, on_text_edited,                          on_text_reset, on_text_edited,
84                          on_text_back_to_its_last_saved_state,                          on_text_back_to_its_last_saved_state,
85                          on_text_fully_loaded, on_cursor_moved                          on_text_fully_loaded, on_cursor_moved
86                  end                  end
87            
88          EV_KEY_CONSTANTS          EV_KEY_CONSTANTS
89                  export                  export
90                          {NONE} All                          {NONE} All
91                  end                  end
92                    
93          EIFFEL_ENV          EIFFEL_ENV
94                  export                  export
95                          {NONE} All                          {NONE} All
96                  end                  end
97                    
98          SHARED_TEXT_ITEMS          SHARED_TEXT_ITEMS
99                  export                  export
100                          {NONE} All                          {NONE} All
# Line 116  feature {NONE} -- Initialization Line 116  feature {NONE} -- Initialization
116                                  -- while the window is displayed.                                  -- while the window is displayed.
117                          window.show_actions.extend (agent set_context_mode)                          window.show_actions.extend (agent set_context_mode)
118                  end                  end
119                    
120          set_context_mode is          set_context_mode is
121                          -- Set `current' into context mode, that is the context tool                          -- Set `current' into context mode, that is the context tool
122                          -- maximized, and the non editor panel is hidden.                          -- maximized, and the non editor panel is hidden.
# Line 156  feature {NONE} -- Initialization Line 156  feature {NONE} -- Initialization
156    
157                          initialized := False -- Reset the flag since initialization is not yet complete.                          initialized := False -- Reset the flag since initialization is not yet complete.
158                          set_up_accelerators                          set_up_accelerators
159                            
160                                  -- Create the toolbars.                                  -- Create the toolbars.
161                          build_toolbars_area                          build_toolbars_area
162                          container.put_front (toolbars_area)                          container.put_front (toolbars_area)
# Line 169  feature {NONE} -- Initialization Line 169  feature {NONE} -- Initialization
169    
170                                  -- Finish initializing the main editor formatters                                  -- Finish initializing the main editor formatters
171                          end_build_formatters                          end_build_formatters
172                            
173                          address_manager.disable_formatters                          address_manager.disable_formatters
174                          if Eiffel_project.manager.is_project_loaded then                          if Eiffel_project.manager.is_project_loaded then
175                                  on_project_created                                  on_project_created
# Line 180  feature {NONE} -- Initialization Line 180  feature {NONE} -- Initialization
180                          else                          else
181                                  on_project_unloaded                                  on_project_unloaded
182                          end                          end
183                            
184                                  -- Create feature position table                                  -- Create feature position table
185                          create feature_positions.make (1)                          create feature_positions.make (1)
186                          feature_positions.compare_objects                          feature_positions.compare_objects
187                            
188                          window.move_actions.force_extend (agent window_moved)                          window.move_actions.force_extend (agent window_moved)
189    
190                          initialized := True                          initialized := True
191                          is_destroying := False                          is_destroying := False
192                  end                  end
193            
194          init_size_and_position is          init_size_and_position is
195                          -- Initialize window size.                          -- Initialize window size.
196                  local                  local
# Line 202  feature {NONE} -- Initialization Line 202  feature {NONE} -- Initialization
202                          default_height := preferences.development_window_data.height.min (screen.height)                          default_height := preferences.development_window_data.height.min (screen.height)
203                          window.set_size (default_width, default_height)                          window.set_size (default_width, default_height)
204                  end                  end
205                    
206          window_displayed is          window_displayed is
207                          -- `Current' has been displayed on screen.                          -- `Current' has been displayed on screen.
208                  do                  do
# Line 254  feature {NONE} -- Initialization Line 254  feature {NONE} -- Initialization
254                          create c_finalized_compilation_cmd.make_finalized (Current)                          create c_finalized_compilation_cmd.make_finalized (Current)
255                          if has_dll_generation then                          if has_dll_generation then
256                                  create show_dynamic_lib_tool.make                                  create show_dynamic_lib_tool.make
257                                  show_dynamic_lib_tool.set_menu_name (Interface_names.m_New_dynamic_lib)                                  show_dynamic_lib_tool.set_menu_name (Interface_names.m_new_dynamic_lib)
258                                  show_dynamic_lib_tool.add_agent (agent show_dynamic_library_dialog)                                  show_dynamic_lib_tool.add_agent (agent show_dynamic_library_dialog)
259                          end                          end
260                          if has_profiler then                          if has_profiler then
# Line 282  feature {NONE} -- Initialization Line 282  feature {NONE} -- Initialization
282    
283                          create new_feature_cmd.make (Current)                          create new_feature_cmd.make (Current)
284                          toolbarable_commands.extend (new_feature_cmd)                          toolbarable_commands.extend (new_feature_cmd)
285                            
286                          create toggle_feature_signature_cmd.make (Current)                          create toggle_feature_signature_cmd.make (Current)
287                          toolbarable_commands.extend (toggle_feature_signature_cmd)                          toolbarable_commands.extend (toggle_feature_signature_cmd)
288    
# Line 291  feature {NONE} -- Initialization Line 291  feature {NONE} -- Initialization
291    
292                          create send_stone_to_context_cmd.make                          create send_stone_to_context_cmd.make
293                          send_stone_to_context_cmd.set_pixmaps (Pixmaps.Icon_send_stone_down)                          send_stone_to_context_cmd.set_pixmaps (Pixmaps.Icon_send_stone_down)
294                          send_stone_to_context_cmd.set_tooltip (Interface_names.e_Send_stone_to_context)                          send_stone_to_context_cmd.set_tooltip (Interface_names.e_send_stone_to_context)
295                          send_stone_to_context_cmd.set_menu_name (Interface_names.m_Send_stone_to_context)                          send_stone_to_context_cmd.set_menu_name (Interface_names.m_send_stone_to_context)
296                          send_stone_to_context_cmd.set_name ("Send_to_context")                          send_stone_to_context_cmd.set_name ("Send_to_context")
297                          send_stone_to_context_cmd.set_tooltext (Interface_names.b_Send_stone_to_context)                          send_stone_to_context_cmd.set_tooltext (Interface_names.b_send_stone_to_context)
298                          send_stone_to_context_cmd.add_agent (agent send_stone_to_context)                          send_stone_to_context_cmd.add_agent (agent send_stone_to_context)
299                          create accel.make_with_key_combination (                          create accel.make_with_key_combination (
300                                  create {EV_KEY}.make_with_code (Kcst.Key_down), False, True, False                                  create {EV_KEY}.make_with_code (Kcst.Key_down), False, True, False
# Line 380  feature {NONE} -- Initialization Line 380  feature {NONE} -- Initialization
380                          managed_feature_formatters.extend (create {EB_CALLERS_FORMATTER}.make (Current, 0))                          managed_feature_formatters.extend (create {EB_CALLERS_FORMATTER}.make (Current, 0))
381                          managed_feature_formatters.extend (create {EB_CALLERS_FORMATTER}.make (Current,                          managed_feature_formatters.extend (create {EB_CALLERS_FORMATTER}.make (Current,
382                                  {DEPEND_UNIT}.is_in_assignment_flag))                                  {DEPEND_UNIT}.is_in_assignment_flag))
383                          managed_feature_formatters.extend (create {EB_CALLERS_FORMATTER}.make (Current,                          managed_feature_formatters.extend (create {EB_CALLERS_FORMATTER}.make (Current,
384                                  {DEPEND_UNIT}.is_in_creation_flag))                                  {DEPEND_UNIT}.is_in_creation_flag))
385                          managed_feature_formatters.extend (Void)                          managed_feature_formatters.extend (Void)
386                          managed_feature_formatters.extend (create {EB_IMPLEMENTERS_FORMATTER}.make (Current))                          managed_feature_formatters.extend (create {EB_IMPLEMENTERS_FORMATTER}.make (Current))
# Line 388  feature {NONE} -- Initialization Line 388  feature {NONE} -- Initialization
388                          managed_feature_formatters.extend (create {EB_ROUTINE_DESCENDANTS_FORMATTER}.make (Current))                          managed_feature_formatters.extend (create {EB_ROUTINE_DESCENDANTS_FORMATTER}.make (Current))
389                          managed_feature_formatters.extend (Void)                          managed_feature_formatters.extend (Void)
390                          managed_feature_formatters.extend (create {EB_HOMONYMS_FORMATTER}.make (Current))                          managed_feature_formatters.extend (create {EB_HOMONYMS_FORMATTER}.make (Current))
391                            
392    
393                          create managed_main_formatters.make (6)                          create managed_main_formatters.make (6)
394                            
                           
395                          create {EB_BASIC_TEXT_FORMATTER} form.make (Current)                          create {EB_BASIC_TEXT_FORMATTER} form.make (Current)
396                          create accel.make_with_key_combination (                          create accel.make_with_key_combination (
397                                          create {EV_KEY}.make_with_code (Kcst.Key_t),                                          create {EV_KEY}.make_with_code (Kcst.Key_t),
# Line 431  feature {NONE} -- Initialization Line 430  feature {NONE} -- Initialization
430                                          True, False, True)                                          True, False, True)
431                          accel.actions.extend (agent form.execute)                          accel.actions.extend (agent form.execute)
432                          form.set_accelerator (accel)                          form.set_accelerator (accel)
433                          managed_main_formatters.extend (form)                                            managed_main_formatters.extend (form)
434                  end                  end
435    
436          end_build_formatters is          end_build_formatters is
# Line 474  feature {NONE} -- Initialization Line 473  feature {NONE} -- Initialization
473                          end                          end
474    
475                          (managed_main_formatters @ 1).enable_select;                          (managed_main_formatters @ 1).enable_select;
476                            
477                                  -- We now select the correct class formatter.                                  -- We now select the correct class formatter.
478                          f_ind := preferences.formatter_data.default_class_formatter_index                          f_ind := preferences.formatter_data.default_class_formatter_index
479                                  --| This takes the formatter separators in consideration.                                  --| This takes the formatter separators in consideration.
# Line 487  feature {NONE} -- Initialization Line 486  feature {NONE} -- Initialization
486                          if f_ind < 1 or f_ind > managed_class_formatters.count then                          if f_ind < 1 or f_ind > managed_class_formatters.count then
487                                  f_ind := 6                                  f_ind := 6
488                          end                          end
489                          (managed_class_formatters @ f_ind).enable_select;                                                (managed_class_formatters @ f_ind).enable_select;
490                                  -- We now select the correct feature formatter.                                  -- We now select the correct feature formatter.
491                          f_ind := preferences.formatter_data.default_feature_formatter_index                          f_ind := preferences.formatter_data.default_feature_formatter_index
492                          if f_ind > 2 then                          if f_ind > 2 then
# Line 561  feature {NONE} -- Initialization Line 560  feature {NONE} -- Initialization
560                          editor_tool.text_area.add_edition_observer(Current)                          editor_tool.text_area.add_edition_observer(Current)
561                          editor_tool.text_area.drop_actions.set_veto_pebble_function (agent can_drop)                          editor_tool.text_area.drop_actions.set_veto_pebble_function (agent can_drop)
562                          editor_tool.text_area.add_cursor_observer (Current)                          editor_tool.text_area.add_cursor_observer (Current)
563                            
564                                  -- The minimim height masks a bug on windows to do with the sizing of the editors                                  -- The minimim height masks a bug on windows to do with the sizing of the editors
565                                  -- scroll bars, which were affecting the resizing although they should not have done so.                                  -- scroll bars, which were affecting the resizing although they should not have done so.
566                                  -- Having a default minimum height on the editor is perfectly reasonable.                                  -- Having a default minimum height on the editor is perfectly reasonable.
# Line 579  feature {NONE} -- Initialization Line 578  feature {NONE} -- Initialization
578    
579                                  -- Set the flag "Tools initialized"                                  -- Set the flag "Tools initialized"
580                          tools_initialized := True                          tools_initialized := True
581                            
582                                  -- Initialize undo / redo accelerators                                  -- Initialize undo / redo accelerators
583                          create undo_accelerator.make_with_key_combination (create {EV_KEY}.make_with_code (Key_z), True, False, False)                          create undo_accelerator.make_with_key_combination (
584                                    create {EV_KEY}.make_with_code (Key_z), True, False, False)
585                          if has_case then                          if has_case then
586                                  undo_accelerator.actions.extend (agent (context_tool.editor.undo_cmd).on_ctrl_z)                                  undo_accelerator.actions.extend (agent (context_tool.editor.undo_cmd).on_ctrl_z)
587                          end                          end
588                          undo_accelerator.actions.extend (agent undo_cmd.accelerator_execute)                          undo_accelerator.actions.extend (agent undo_cmd.accelerator_execute)
589                          create redo_accelerator.make_with_key_combination (create {EV_KEY}.make_with_code (Key_y), True, False, False)                          create redo_accelerator.make_with_key_combination (
590                                    create {EV_KEY}.make_with_code (Key_y), True, False, False)
591                          if has_case then                          if has_case then
592                                  redo_accelerator.actions.extend (agent (context_tool.editor.redo_cmd).on_ctrl_y)                                  redo_accelerator.actions.extend (agent (context_tool.editor.redo_cmd).on_ctrl_y)
593                          end                          end
# Line 635  feature -- Access Line 636  feature -- Access
636                                  Result := feature_stone.feature_name                                  Result := feature_stone.feature_name
637                          end                          end
638                  end                  end
639                            
640  feature -- Status setting  feature -- Status setting
641    
642          disable_sensitive is          disable_sensitive is
# Line 700  feature -- Window Properties Line 701  feature -- Window Properties
701    
702          profile_tool_is_hidden: BOOLEAN          profile_tool_is_hidden: BOOLEAN
703                          -- Is the profile tool hidden?                          -- Is the profile tool hidden?
704                            
705          has_argument_dialog: BOOLEAN is          has_argument_dialog: BOOLEAN is
706                          -- Does Current have an associted arguments dialog?                          -- Does Current have an associted arguments dialog?
707                  do                  do
# Line 711  feature -- Pulldown Menus Line 712  feature -- Pulldown Menus
712    
713          metric_menu: EV_MENU          metric_menu: EV_MENU
714                          -- Menu for entries of metric tool.                          -- Menu for entries of metric tool.
715            
716          format_menu: EV_MENU          format_menu: EV_MENU
717                          -- ID Menu for formats.                          -- ID Menu for formats.
718                          -- Only used during debugging                          -- Only used during debugging
# Line 876  feature -- Graphical Interface Line 877  feature -- Graphical Interface
877                          elseif preferences.development_window_data.show_all_text_in_general_toolbar then                          elseif preferences.development_window_data.show_all_text_in_general_toolbar then
878                                  general_customizable_toolbar.enable_text_displayed                                  general_customizable_toolbar.enable_text_displayed
879                          end                          end
880                                    
881                          create hbox                          create hbox
882                          hbox.extend (general_customizable_toolbar.widget)                          hbox.extend (general_customizable_toolbar.widget)
883                          hbox.disable_item_expand (general_customizable_toolbar.widget)                          hbox.disable_item_expand (general_customizable_toolbar.widget)
# Line 897  feature -- Graphical Interface Line 898  feature -- Graphical Interface
898                          general_toolbar.extend (hbox)                          general_toolbar.extend (hbox)
899    
900                                  -- Create the command to show/hide this toolbar.                                  -- Create the command to show/hide this toolbar.
901                          create show_general_toolbar_command.make (general_toolbar, Interface_names.m_General_toolbar)                          create show_general_toolbar_command.make (general_toolbar, Interface_names.m_general_toolbar)
902                          show_toolbar_commands.extend (show_general_toolbar_command)                          show_toolbar_commands.extend (show_general_toolbar_command)
903                          if preferences.development_window_data.show_general_toolbar then                          if preferences.development_window_data.show_general_toolbar then
904                                  show_general_toolbar_command.enable_visible                                  show_general_toolbar_command.enable_visible
# Line 938  feature -- Graphical Interface Line 939  feature -- Graphical Interface
939    
940                                  -- Forward icon                                  -- Forward icon
941                          tb.extend (history_manager.forth_command.new_toolbar_item (False, False))                          tb.extend (history_manager.forth_command.new_toolbar_item (False, False))
942                            
943                                  -- Set up the accelerators.                                  -- Set up the accelerators.
944                          create accel.make_with_key_combination (                          create accel.make_with_key_combination (
945                                  create {EV_KEY}.make_with_code (Kcst.Key_right), False, True, False                                  create {EV_KEY}.make_with_code (Kcst.Key_right), False, True, False
946                          )                          )
947                          accel.actions.extend (agent on_forth)                          accel.actions.extend (agent on_forth)
948                          window.accelerators.extend (accel)                          window.accelerators.extend (accel)
949                            
950                          create accel.make_with_key_combination (                          create accel.make_with_key_combination (
951                                  create {EV_KEY}.make_with_code (Kcst.Key_left), False, True, False                                  create {EV_KEY}.make_with_code (Kcst.Key_left), False, True, False
952                          )                          )
# Line 959  feature -- Graphical Interface Line 960  feature -- Graphical Interface
960  --                      editor_tool.text_area.add_cursor_observer (address_manager)  --                      editor_tool.text_area.add_cursor_observer (address_manager)
961    
962                                  -- Create the command to show/hide this toolbar.                                  -- Create the command to show/hide this toolbar.
963                          create show_address_toolbar_command.make (address_toolbar, Interface_names.m_Address_toolbar)                          create show_address_toolbar_command.make (address_toolbar, Interface_names.m_address_toolbar)
964                          show_toolbar_commands.extend (show_address_toolbar_command)                          show_toolbar_commands.extend (show_address_toolbar_command)
965    
966                          if preferences.development_window_data.show_address_toolbar then                          if preferences.development_window_data.show_address_toolbar then
# Line 995  feature -- Graphical Interface Line 996  feature -- Graphical Interface
996                          project_customizable_toolbar.update_toolbar                          project_customizable_toolbar.update_toolbar
997    
998                                  -- Create the command to show/hide this toolbar.                                  -- Create the command to show/hide this toolbar.
999                          create show_project_toolbar_command.make (project_toolbar, Interface_names.m_Project_toolbar)                          create show_project_toolbar_command.make (project_toolbar, Interface_names.m_project_toolbar)
1000                          show_toolbar_commands.extend (show_project_toolbar_command)                          show_toolbar_commands.extend (show_project_toolbar_command)
1001                          if preferences.development_window_data.show_project_toolbar then                          if preferences.development_window_data.show_project_toolbar then
1002                                  show_project_toolbar_command.enable_visible                                  show_project_toolbar_command.enable_visible
# Line 1021  feature {NONE} -- Menu Building Line 1022  feature {NONE} -- Menu Building
1022                          menu_item: EV_MENU_ITEM                          menu_item: EV_MENU_ITEM
1023                          command_menu_item: EB_COMMAND_MENU_ITEM                          command_menu_item: EB_COMMAND_MENU_ITEM
1024                  do                  do
1025                          create file_menu.make_with_text (Interface_names.m_File)                          create file_menu.make_with_text (Interface_names.m_file)
1026    
1027                                  -- New                                  -- New
1028                          command_menu_item := New_development_window_cmd.new_menu_item                          command_menu_item := New_development_window_cmd.new_menu_item
# Line 1044  feature {NONE} -- Menu Building Line 1045  feature {NONE} -- Menu Building
1045                          file_menu.extend (command_menu_item)                          file_menu.extend (command_menu_item)
1046    
1047                                  -- Close                                  -- Close
1048                          create menu_item.make_with_text (Interface_names.m_Close)                          create menu_item.make_with_text (Interface_names.m_close)
1049                          menu_item.select_actions.extend (agent destroy)                          menu_item.select_actions.extend (agent destroy)
1050                          file_menu.extend (menu_item)                          file_menu.extend (menu_item)
1051    
# Line 1062  feature {NONE} -- Menu Building Line 1063  feature {NONE} -- Menu Building
1063                          file_menu.extend (command_menu_item)                          file_menu.extend (command_menu_item)
1064    
1065                                  -- Sent to                                  -- Sent to
1066                          create send_to_menu.make_with_text (Interface_names.m_Send_to)                          create send_to_menu.make_with_text (Interface_names.m_send_to)
1067                                          -- External editor                                          -- External editor
1068                                  command_menu_item := shell_cmd.new_menu_item                                  command_menu_item := shell_cmd.new_menu_item
1069                                  add_recyclable (command_menu_item)                                  add_recyclable (command_menu_item)
# Line 1080  feature {NONE} -- Menu Building Line 1081  feature {NONE} -- Menu Building
1081    
1082                                  -- New Project                                  -- New Project
1083                          create new_project_cmd.make_with_parent (window)                          create new_project_cmd.make_with_parent (window)
1084                          create menu_item.make_with_text (Interface_names.m_New_project)                          create menu_item.make_with_text (Interface_names.m_new_project)
1085                          menu_item.select_actions.extend (agent new_project_cmd.execute)                          menu_item.select_actions.extend (agent new_project_cmd.execute)
1086                          file_menu.extend (menu_item)                          file_menu.extend (menu_item)
1087    
1088                                  -- Open Project                                  -- Open Project
1089                          create open_project_cmd.make_with_parent (window)                          create open_project_cmd.make_with_parent (window)
1090                          create menu_item.make_with_text (Interface_names.m_Open_project)                          create menu_item.make_with_text (Interface_names.m_open_project)
1091                          menu_item.select_actions.extend (agent open_project_cmd.execute)                          menu_item.select_actions.extend (agent open_project_cmd.execute)
1092                          file_menu.extend (menu_item)                          file_menu.extend (menu_item)
1093    
# Line 1111  feature {NONE} -- Menu Building Line 1112  feature {NONE} -- Menu Building
1112                          empty_menu: EV_MENU_ITEM                          empty_menu: EV_MENU_ITEM
1113                          i: INTEGER                          i: INTEGER
1114                  do                  do
1115                          create Result.make_with_text (Interface_names.m_Class_info)                          create Result.make_with_text (Interface_names.m_class_info)
1116                          i := 1                          i := 1
1117    
1118                          create empty_menu.make_with_text (Interface_names.m_Formatter_separators @ i)                          create empty_menu.make_with_text (Interface_names.m_formatter_separators @ i)
1119                          i := i + 1                          i := i + 1
1120                          empty_menu.disable_sensitive                          empty_menu.disable_sensitive
1121                          Result.extend (empty_menu)                          Result.extend (empty_menu)
# Line 1127  feature {NONE} -- Menu Building Line 1128  feature {NONE} -- Menu Building
1128                                  if form /= Void then                                  if form /= Void then
1129                                          Result.extend (form.new_menu_item)                                          Result.extend (form.new_menu_item)
1130                                  else                                  else
1131                                          create empty_menu.make_with_text (Interface_names.m_Formatter_separators @ i)                                          create empty_menu.make_with_text (Interface_names.m_formatter_separators @ i)
1132                                          i := i + 1                                          i := i + 1
1133                                          empty_menu.disable_sensitive                                          empty_menu.disable_sensitive
1134                                          Result.extend (empty_menu)                                          Result.extend (empty_menu)
# Line 1141  feature {NONE} -- Menu Building Line 1142  feature {NONE} -- Menu Building
1142                  local                  local
1143                          form: EB_FEATURE_INFO_FORMATTER                          form: EB_FEATURE_INFO_FORMATTER
1144                  do                  do
1145                          create Result.make_with_text (Interface_names.m_Feature_info)                          create Result.make_with_text (Interface_names.m_feature_info)
1146                          from                          from
1147                                  managed_feature_formatters.start                                  managed_feature_formatters.start
1148                          until                          until
# Line 1167  feature {NONE} -- Menu Building Line 1168  feature {NONE} -- Menu Building
1168                          editor := editor_tool.text_area                          editor := editor_tool.text_area
1169                          create command_controller.make                          create command_controller.make
1170    
1171                          create edit_menu.make_with_text (Interface_names.m_Edit)                          create edit_menu.make_with_text (Interface_names.m_edit)
1172    
1173                                  -- Undo                                  -- Undo
1174                          command_menu_item := undo_cmd.new_menu_item                          command_menu_item := undo_cmd.new_menu_item
# Line 1189  feature {NONE} -- Menu Building Line 1190  feature {NONE} -- Menu Building
1190                          os_cmd.set_name ("Editor_cut")                          os_cmd.set_name ("Editor_cut")
1191                          os_cmd.set_tooltip (interface_names.f_cut)                          os_cmd.set_tooltip (interface_names.f_cut)
1192                          os_cmd.add_agent (agent cut_selection)                          os_cmd.add_agent (agent cut_selection)
1193                          os_cmd.set_tooltext (Interface_names.b_Cut)                          os_cmd.set_tooltext (Interface_names.b_cut)
1194                          toolbarable_commands.extend (os_cmd)                          toolbarable_commands.extend (os_cmd)
1195                          os_cmd.set_needs_editable (True)                          os_cmd.set_needs_editable (True)
1196                          command_controller.add_selection_command (os_cmd)                          command_controller.add_selection_command (os_cmd)
# Line 1203  feature {NONE} -- Menu Building Line 1204  feature {NONE} -- Menu Building
1204                          os_cmd.set_pixmaps (pixmaps.icon_copy)                          os_cmd.set_pixmaps (pixmaps.icon_copy)
1205                          os_cmd.set_name ("Editor_copy")                          os_cmd.set_name ("Editor_copy")
1206                          os_cmd.set_tooltip (interface_names.f_copy)                          os_cmd.set_tooltip (interface_names.f_copy)
1207                          os_cmd.set_tooltext (Interface_names.b_Copy)                          os_cmd.set_tooltext (Interface_names.b_copy)
1208                          os_cmd.add_agent (agent copy_selection)                          os_cmd.add_agent (agent copy_selection)
1209                          toolbarable_commands.extend (os_cmd)                          toolbarable_commands.extend (os_cmd)
1210                          os_cmd.set_needs_editable (False)                          os_cmd.set_needs_editable (False)
# Line 1247  feature {NONE} -- Menu Building Line 1248  feature {NONE} -- Menu Building
1248    
1249                                  -- Search                                  -- Search
1250                          create cmd.make                          create cmd.make
1251                          cmd.set_menu_name (Interface_names.m_Search + "%T" + preferences.editor_data.shortcut_name_for_action (3))                          cmd.set_menu_name (Interface_names.m_search + "%T" + preferences.editor_data.shortcut_name_for_action (3))
1252                          cmd.add_agent (agent search)                          cmd.add_agent (agent search)
1253                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1254                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
# Line 1256  feature {NONE} -- Menu Building Line 1257  feature {NONE} -- Menu Building
1257    
1258                                  -- Go to                                  -- Go to
1259                          create cmd.make                          create cmd.make
1260                          cmd.set_menu_name (Interface_names.m_Go_to)                          cmd.set_menu_name (Interface_names.m_go_to)
1261                          cmd.add_agent (agent goto)                          cmd.add_agent (agent goto)
1262                          cmd.set_needs_editable (True)                          cmd.set_needs_editable (True)
1263                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
# Line 1266  feature {NONE} -- Menu Building Line 1267  feature {NONE} -- Menu Building
1267    
1268                                  -- Replace                                  -- Replace
1269                          create cmd.make                          create cmd.make
1270                          cmd.set_menu_name (Interface_names.m_Replace + "%T" + preferences.editor_data.shortcut_name_for_action (4))                          cmd.set_menu_name (Interface_names.m_replace + "%T" + preferences.editor_data.shortcut_name_for_action (4))
1271                          cmd.add_agent (agent editor.replace)                          cmd.add_agent (agent editor.replace)
1272                          cmd.set_needs_editable (True)                          cmd.set_needs_editable (True)
1273                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
# Line 1276  feature {NONE} -- Menu Building Line 1277  feature {NONE} -- Menu Building
1277    
1278                                  -- Find sub menu                                  -- Find sub menu
1279    
1280                          create sub_menu.make_with_text (Interface_names.m_Find)                          create sub_menu.make_with_text (Interface_names.m_find)
1281    
1282                                  -- Find next                                  -- Find next
1283                          create cmd.make                          create cmd.make
1284                          cmd.set_menu_name (Interface_names.m_Find_next + "%T" + preferences.editor_data.shortcut_name_for_action (6))                          cmd.set_menu_name (Interface_names.m_find_next + "%T" + preferences.editor_data.shortcut_name_for_action (6))
1285                          cmd.add_agent (agent find_next)                          cmd.add_agent (agent find_next)
1286                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1287                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
# Line 1289  feature {NONE} -- Menu Building Line 1290  feature {NONE} -- Menu Building
1290    
1291                                  -- Find previous                                  -- Find previous
1292                          create cmd.make                          create cmd.make
1293                          cmd.set_menu_name (Interface_names.m_Find_previous + "%T" + preferences.editor_data.shortcut_name_for_action (7))                          cmd.set_menu_name (Interface_names.m_find_previous + "%T" + preferences.editor_data.shortcut_name_for_action (7))
1294                          cmd.add_agent (agent find_previous)                          cmd.add_agent (agent find_previous)
1295                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1296                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
# Line 1298  feature {NONE} -- Menu Building Line 1299  feature {NONE} -- Menu Building
1299    
1300                                  -- Find selection                                  -- Find selection
1301                          create os_cmd.make (Current)                          create os_cmd.make (Current)
1302                          os_cmd.set_menu_name (Interface_names.m_Find_selection + "%T" + preferences.editor_data.shortcut_name_for_action (5))                          os_cmd.set_menu_name (Interface_names.m_find_selection + "%T" + preferences.editor_data.shortcut_name_for_action (5))
1303                          os_cmd.add_agent (agent find_selection)                          os_cmd.add_agent (agent find_selection)
1304                          command_menu_item := os_cmd.new_menu_item                          command_menu_item := os_cmd.new_menu_item
1305                          command_controller.add_selection_command (os_cmd)                          command_controller.add_selection_command (os_cmd)
# Line 1311  feature {NONE} -- Menu Building Line 1312  feature {NONE} -- Menu Building
1312                                  -- Separator --------------------------------------                                  -- Separator --------------------------------------
1313                          edit_menu.extend (create {EV_MENU_SEPARATOR})                          edit_menu.extend (create {EV_MENU_SEPARATOR})
1314    
1315                          create sub_menu.make_with_text (Interface_names.m_Advanced)                          create sub_menu.make_with_text (Interface_names.m_advanced)
1316    
1317                          create os_cmd.make (Current)                          create os_cmd.make (Current)
1318                          os_cmd.set_needs_editable (True)                          os_cmd.set_needs_editable (True)
1319                          command_controller.add_selection_command (os_cmd)                          command_controller.add_selection_command (os_cmd)
1320                          os_cmd.set_menu_name (Interface_names.m_Indent)                          os_cmd.set_menu_name (Interface_names.m_indent)
1321                          os_cmd.add_agent (agent editor.indent_selection)                          os_cmd.add_agent (agent editor.indent_selection)
1322                          command_menu_item := os_cmd.new_menu_item                          command_menu_item := os_cmd.new_menu_item
1323                          add_recyclable (command_menu_item)                          add_recyclable (command_menu_item)
# Line 1325  feature {NONE} -- Menu Building Line 1326  feature {NONE} -- Menu Building
1326                          create os_cmd.make (Current)                          create os_cmd.make (Current)
1327                          os_cmd.set_needs_editable (True)                          os_cmd.set_needs_editable (True)
1328                          command_controller.add_selection_command (os_cmd)                          command_controller.add_selection_command (os_cmd)
1329                          os_cmd.set_menu_name (Interface_names.m_Unindent)                          os_cmd.set_menu_name (Interface_names.m_unindent)
1330                          os_cmd.add_agent (agent editor.unindent_selection)                          os_cmd.add_agent (agent editor.unindent_selection)
1331                          command_menu_item := os_cmd.new_menu_item                          command_menu_item := os_cmd.new_menu_item
1332                          add_recyclable (command_menu_item)                          add_recyclable (command_menu_item)
# Line 1334  feature {NONE} -- Menu Building Line 1335  feature {NONE} -- Menu Building
1335                          create os_cmd.make (Current)                          create os_cmd.make (Current)
1336                          os_cmd.set_needs_editable (True)                          os_cmd.set_needs_editable (True)
1337                          command_controller.add_selection_command (os_cmd)                          command_controller.add_selection_command (os_cmd)
1338                          os_cmd.set_menu_name (Interface_names.m_To_lower)                          os_cmd.set_menu_name (Interface_names.m_to_lower)
1339                          os_cmd.add_agent (agent editor.set_selection_case (True))                          os_cmd.add_agent (agent editor.set_selection_case (True))
1340                          command_menu_item := os_cmd.new_menu_item                          command_menu_item := os_cmd.new_menu_item
1341                          add_recyclable (command_menu_item)                          add_recyclable (command_menu_item)
# Line 1343  feature {NONE} -- Menu Building Line 1344  feature {NONE} -- Menu Building
1344                          create os_cmd.make (Current)                          create os_cmd.make (Current)
1345                          os_cmd.set_needs_editable (True)                          os_cmd.set_needs_editable (True)
1346                          command_controller.add_selection_command (os_cmd)                          command_controller.add_selection_command (os_cmd)
1347                          os_cmd.set_menu_name (Interface_names.m_To_upper)                          os_cmd.set_menu_name (Interface_names.m_to_upper)
1348                          os_cmd.add_agent (agent editor.set_selection_case (False))                          os_cmd.add_agent (agent editor.set_selection_case (False))
1349                          command_menu_item := os_cmd.new_menu_item                          command_menu_item := os_cmd.new_menu_item
1350                          add_recyclable (command_menu_item)                          add_recyclable (command_menu_item)
# Line 1351  feature {NONE} -- Menu Building Line 1352  feature {NONE} -- Menu Building
1352    
1353                          create cmd.make                          create cmd.make
1354                          cmd.set_needs_editable (True)                          cmd.set_needs_editable (True)
1355                          cmd.set_menu_name (Interface_names.m_Comment)                          cmd.set_menu_name (Interface_names.m_comment)
1356                          cmd.add_agent (agent editor.comment_selection)                          cmd.add_agent (agent editor.comment_selection)
1357                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1358                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
# Line 1360  feature {NONE} -- Menu Building Line 1361  feature {NONE} -- Menu Building
1361    
1362                          create cmd.make                          create cmd.make
1363                          cmd.set_needs_editable (True)                          cmd.set_needs_editable (True)
1364                          cmd.set_menu_name (Interface_names.m_Uncomment)                          cmd.set_menu_name (Interface_names.m_uncomment)
1365                          cmd.add_agent (agent editor.uncomment_selection)                          cmd.add_agent (agent editor.uncomment_selection)
1366                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1367                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
# Line 1373  feature {NONE} -- Menu Building Line 1374  feature {NONE} -- Menu Building
1374                                  -- Insert if block                                  -- Insert if block
1375                          create cmd.make                          create cmd.make
1376                          cmd.set_needs_editable (True)                          cmd.set_needs_editable (True)
1377                          cmd.set_menu_name (Interface_names.m_If_block)                          cmd.set_menu_name (Interface_names.m_if_block)
1378                          cmd.add_agent (agent editor.embed_in_block("if  then", 3))                          cmd.add_agent (agent editor.embed_in_block("if  then", 3))
1379                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1380                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
# Line 1397  feature {NONE} -- Menu Building Line 1398  feature {NONE} -- Menu Building
1398                                  -- Complete word                                  -- Complete word
1399                          create cmd.make                          create cmd.make
1400                          cmd.set_needs_editable (True)                          cmd.set_needs_editable (True)
1401                          cmd.set_menu_name (Interface_names.m_Complete_word + "%T" + preferences.editor_data.shortcut_name_for_action (1))                          cmd.set_menu_name (Interface_names.m_complete_word + "%T" + preferences.editor_data.shortcut_name_for_action (1))
1402                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1403                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
1404                          cmd.add_agent (agent editor.complete_feature_name)                          cmd.add_agent (agent editor.complete_feature_name)
# Line 1408  feature {NONE} -- Menu Building Line 1409  feature {NONE} -- Menu Building
1409                                  -- Complete class name                                  -- Complete class name
1410                          create cmd.make                          create cmd.make
1411                          cmd.set_needs_editable (True)                          cmd.set_needs_editable (True)
1412                          cmd.set_menu_name (Interface_names.m_Complete_class_name + "%T" + preferences.editor_data.shortcut_name_for_action (2))                          cmd.set_menu_name (Interface_names.m_complete_class_name + "%T" + preferences.editor_data.shortcut_name_for_action (2))
1413                          command_menu_item := cmd.new_menu_item                          command_menu_item := cmd.new_menu_item
1414                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
1415                          cmd.add_agent (agent editor.complete_class_name)                          cmd.add_agent (agent editor.complete_class_name)
# Line 1421  feature {NONE} -- Menu Building Line 1422  feature {NONE} -- Menu Building
1422                                  -- show/hide formatting marks.                                  -- show/hide formatting marks.
1423                          create cmd.make                          create cmd.make
1424                          if editor_tool.text_area.view_invisible_symbols then                          if editor_tool.text_area.view_invisible_symbols then
1425                                  cmd.set_menu_name (Interface_names.m_Hide_formatting_marks)                                  cmd.set_menu_name (Interface_names.m_hide_formatting_marks)
1426                          else                          else
1427                                  cmd.set_menu_name (Interface_names.m_Show_formatting_marks)                                  cmd.set_menu_name (Interface_names.m_show_formatting_marks)
1428                          end                          end
1429                          formatting_marks_command_menu_item := cmd.new_menu_item                          formatting_marks_command_menu_item := cmd.new_menu_item
1430                          command_controller.add_edition_command (cmd)                          command_controller.add_edition_command (cmd)
# Line 1476  feature {NONE} -- Menu Building Line 1477  feature {NONE} -- Menu Building
1477                                  managed_main_formatters.forth                                  managed_main_formatters.forth
1478                          end                          end
1479                  end                  end
1480                    
1481          build_favorites_menu is          build_favorites_menu is
1482                          -- Build the favorites menu                          -- Build the favorites menu
1483                  do                  do
1484                          Precursor {EB_TOOL_MANAGER}                          Precursor {EB_TOOL_MANAGER}
1485                            
1486                          create show_favorites_menu_item                          create show_favorites_menu_item
1487                          update_show_favorites_menu_item                          update_show_favorites_menu_item
1488                          show_favorites_menu_item.select_actions.extend (agent execute_show_favorites)                          show_favorites_menu_item.select_actions.extend (agent execute_show_favorites)
1489                            
1490                          favorites_menu.start                          favorites_menu.start
1491                          favorites_menu.put_right (show_favorites_menu_item)                          favorites_menu.put_right (show_favorites_menu_item)
1492                          favorites_menu.select_actions.extend (agent update_show_favorites_menu_item)                          favorites_menu.select_actions.extend (agent update_show_favorites_menu_item)
1493                  end                  end
1494            
1495          build_project_menu is          build_project_menu is
1496                          -- Build the project menu.                          -- Build the project menu.
1497                  local                  local
1498                          command_menu_item: EB_COMMAND_MENU_ITEM                          command_menu_item: EB_COMMAND_MENU_ITEM
1499                  do                  do
1500                          create project_menu.make_with_text (Interface_names.m_Project)                          create project_menu.make_with_text (Interface_names.m_project)
1501    
1502                                  -- Melt                                  -- Melt
1503                          command_menu_item := Melt_project_cmd.new_menu_item                          command_menu_item := Melt_project_cmd.new_menu_item
# Line 1585  feature {NONE} -- Menu Building Line 1586  feature {NONE} -- Menu Building
1586                          command_menu_item: EB_COMMAND_MENU_ITEM                          command_menu_item: EB_COMMAND_MENU_ITEM
1587                          menu_item: EV_MENU_ITEM                          menu_item: EV_MENU_ITEM
1588                  do                  do
1589                          create tools_menu.make_with_text (Interface_names.m_Tools)                          create tools_menu.make_with_text (Interface_names.m_tools)
1590    
1591                                  -- New Cluster command.                                  -- New Cluster command.
1592                          command_menu_item := new_cluster_cmd.new_menu_item                          command_menu_item := new_cluster_cmd.new_menu_item
# Line 1601  feature {NONE} -- Menu Building Line 1602  feature {NONE} -- Menu Building
1602                          command_menu_item := new_feature_cmd.new_menu_item                          command_menu_item := new_feature_cmd.new_menu_item
1603                          add_recyclable (command_menu_item)                          add_recyclable (command_menu_item)
1604                          tools_menu.extend (command_menu_item)                          tools_menu.extend (command_menu_item)
1605                            
1606                                  -- Delete class/cluster command.                                  -- Delete class/cluster command.
1607                          command_menu_item := delete_class_cluster_cmd.new_menu_item                          command_menu_item := delete_class_cluster_cmd.new_menu_item
1608                          add_recyclable (command_menu_item)                          add_recyclable (command_menu_item)
# Line 1631  feature {NONE} -- Menu Building Line 1632  feature {NONE} -- Menu Building
1632                                  metric_menu.disable_sensitive                                  metric_menu.disable_sensitive
1633                                  tools_menu.extend (metric_menu)                                  tools_menu.extend (metric_menu)
1634                          end                          end
1635                            
1636                          if has_profiler then                          if has_profiler then
1637                                          -- Profiler Window                                          -- Profiler Window
1638                                  command_menu_item := show_profiler.new_menu_item                                  command_menu_item := show_profiler.new_menu_item
# Line 1669  feature {NONE} -- Menu Building Line 1670  feature {NONE} -- Menu Building
1670    
1671                          rebuild_tools_menu                          rebuild_tools_menu
1672                  end                  end
1673            
1674  feature -- Stone process  feature -- Stone process
1675    
1676          stone: STONE          stone: STONE
# Line 1709  feature -- Stone process Line 1710  feature -- Stone process
1710                                          l_filename := ef_stone.file_name.string                                          l_filename := ef_stone.file_name.string
1711                                  end                                  end
1712                          end                          end
1713                            
1714                          if cv_cst /= Void or ef_stone /= Void then                          if cv_cst /= Void or ef_stone /= Void then
1715                                  l := Window_manager.development_windows_with_class (l_filename)                                  l := Window_manager.development_windows_with_class (l_filename)
1716                                  if l.is_empty or else l.has (Current) then                                  if l.is_empty or else l.has (Current) then
1717                                                  -- We're not editing the class in another window.                                                  -- We're not editing the class in another window.
1718                                          set_stone_after_first_check (a_stone)                                          set_stone_after_first_check (a_stone)
1719                                  else                                  else
1720                                          create cd.make_initialized (2, preferences.dialog_data.already_editing_class_string, warning_messages.w_Class_already_edited, Interface_names.L_do_not_show_again, preferences.preferences)                                          create cd.make_initialized (2,
1721                                                    preferences.dialog_data.already_editing_class_string,
1722                                                    warning_messages.w_class_already_edited,
1723                                                    Interface_names.l_do_not_show_again,
1724                                                    preferences.preferences)
1725                                          cd.set_ok_action (agent set_stone_after_first_check (a_stone))                                          cd.set_ok_action (agent set_stone_after_first_check (a_stone))
1726                                          cd.show_modal_to_window (window)                                          cd.show_modal_to_window (window)
1727                                  end                                  end
# Line 1766  feature -- Stone process Line 1771  feature -- Stone process
1771                                          end                                          end
1772                                  end                                  end
1773                          elseif ef_stone /= Void then                          elseif ef_stone /= Void then
                                   
                                   
1774                          end                          end
1775                            
1776                                  -- first, let's check if there is already something in this window                                  -- first, let's check if there is already something in this window
1777                                  -- if there's nothing, there's no need to save anything...                                  -- if there's nothing, there's no need to save anything...
1778                          if stone = Void or else not changed or else feature_stone_already_processed or else same_class then                          if stone = Void or else not changed or else feature_stone_already_processed or else same_class then
# Line 1778  feature -- Stone process Line 1781  feature -- Stone process
1781                          else                          else
1782                                          -- there is something to be saved                                          -- there is something to be saved
1783                                          -- if user chooses to save, current file will be parsed                                          -- if user chooses to save, current file will be parsed
1784                                          -- if there is a syntax_error, new file is not loaded                                          -- if there is a syntax_error, new file is not loaded
1785                                  save_and (agent set_stone_after_check (a_stone))                                  save_and (agent set_stone_after_check (a_stone))
1786                                  if text_saved and then not syntax_is_correct then                                  if text_saved and then not syntax_is_correct then
1787                                          text_saved := False                                          text_saved := False
# Line 1808  feature -- Stone process Line 1811  feature -- Stone process
1811                  do                  do
1812                          set_stone (s)                          set_stone (s)
1813                  end                  end
1814            
1815          process_feature_error (s: FEATURE_ERROR_STONE) is          process_feature_error (s: FEATURE_ERROR_STONE) is
1816                          -- Process feature error stone.                          -- Process feature error stone.
1817                  local                  local
# Line 1837  feature -- Stone process Line 1840  feature -- Stone process
1840                          editor_tool.text_area.deselect_all                          editor_tool.text_area.deselect_all
1841                          editor_tool.text_area.highlight_when_ready (s.line, s.line)                          editor_tool.text_area.highlight_when_ready (s.line, s.line)
1842                  end                  end
1843            
1844          refresh is          refresh is
1845                          -- Synchronize clickable elements with text, if possible.                          -- Synchronize clickable elements with text, if possible.
1846                  do                  do
# Line 1879  feature -- Stone process Line 1882  feature -- Stone process
1882          --| END FIXME          --| END FIXME
1883                  end                  end
1884    
1885          feature -- Resource Update  feature -- Resource Update
1886    
1887          update is          update is
1888                          -- Update Current with the registered resources.                          -- Update Current with the registered resources.
# Line 1914  feature -- Stone process Line 1917  feature -- Stone process
1917                  end                  end
1918    
1919          update_splitters is          update_splitters is
1920                          -- Refresh the position of the splitter on screen according to                          -- Refresh the position of the splitter on screen according to
1921                          -- our internal values.                          -- our internal values.
1922                  do                  do
1923                                  -- Set the interior layout                                  -- Set the interior layout
# Line 2038  feature -- Stone process Line 2041  feature -- Stone process
2041                                  editor_tool.text_area.strip_unwanted_indentation                                  editor_tool.text_area.strip_unwanted_indentation
2042                          end                          end
2043                          if editor_tool.text_area.open_backup then                          if editor_tool.text_area.open_backup then
2044                                  create dial.make_with_text(Warning_messages.w_Save_backup)                                  create dial.make_with_text(Warning_messages.w_save_backup)
2045                                  dial.set_buttons_and_actions(<<"Continue", "Cancel">>, <<agent continue_save, agent cancel_save>>)                                  dial.set_buttons_and_actions(<<"Continue", "Cancel">>, <<agent continue_save, agent cancel_save>>)
2046                                  dial.set_default_push_button(dial.button("Continue"))                                  dial.set_default_push_button(dial.button("Continue"))
2047                                  dial.set_default_cancel_button(dial.button("Cancel"))                                  dial.set_default_cancel_button(dial.button("Cancel"))
# Line 2105  feature -- Stone process Line 2108  feature -- Stone process
2108                          end                          end
2109                  end                  end
2110    
2111          feature -- Window management  feature -- Window management
2112    
2113          show_window is          show_window is
2114                          -- Show the window                          -- Show the window
# Line 2137  feature -- Stone process Line 2140  feature -- Stone process
2140                  do                  do
2141                          address_manager.set_focus                          address_manager.set_focus
2142                  end                  end
2143                    
2144          save_layout is          save_layout is
2145                          -- Store layout of `current'.                          -- Store layout of `current'.
2146                  do                  do
# Line 2158  feature -- Stone process Line 2161  feature -- Stone process
2161          --                      save_resources          --                      save_resources
2162                  end                  end
2163    
2164          feature -- Tools & Controls  feature -- Tools & Controls
2165    
2166          editor_tool: EB_EDITOR_TOOL          editor_tool: EB_EDITOR_TOOL
2167    
# Line 2197  feature -- Stone process Line 2200  feature -- Stone process
2200    
2201          unified_stone: BOOLEAN          unified_stone: BOOLEAN
2202                          -- Is the stone common with the context tool or not?                          -- Is the stone common with the context tool or not?
2203                            
2204          arguments_dialog: EB_ARGUMENT_DIALOG          arguments_dialog: EB_ARGUMENT_DIALOG
2205                          -- The arguments dialog for current, if any                          -- The arguments dialog for current, if any
2206                            
2207          goto_dialog: EB_GOTO_DIALOG          goto_dialog: EB_GOTO_DIALOG
2208                          -- The goto dialog for line number access                          -- The goto dialog for line number access
2209    
2210          feature -- Multiple editor management  feature -- Multiple editor management
2211    
2212          add_editor_to_list (an_editor: EB_EDITOR) is          add_editor_to_list (an_editor: EB_EDITOR) is
2213                          -- adds `an_editor' to `editors'                          -- adds `an_editor' to `editors'
# Line 2221  feature -- Stone process Line 2224  feature -- Stone process
2224                                  Result := editors.first                                  Result := editors.first
2225                          end                          end
2226                  end                  end
2227                    
2228          set_current_editor (an_editor: EB_EDITOR) is          set_current_editor (an_editor: EB_EDITOR) is
2229                          -- set `an_editor' as main editor                          -- set `an_editor' as main editor
2230                  local                  local
# Line 2248  feature -- Stone process Line 2251  feature -- Stone process
2251                                  update_paste_cmd                                  update_paste_cmd
2252                                          -- Last thing, update the menu entry for the formatting marks.                                          -- Last thing, update the menu entry for the formatting marks.
2253                                  if current_editor.view_invisible_symbols then                                  if current_editor.view_invisible_symbols then
2254                                          formatting_marks_command_menu_item.set_text (Interface_names.m_Hide_formatting_marks)                                          formatting_marks_command_menu_item.set_text (Interface_names.m_hide_formatting_marks)
2255                                  else                                  else
2256                                          formatting_marks_command_menu_item.set_text(Interface_names.m_Show_formatting_marks)                                          formatting_marks_command_menu_item.set_text(Interface_names.m_show_formatting_marks)
2257                                  end                                  end
2258                                  command_controller.set_current_editor (an_editor)                                  command_controller.set_current_editor (an_editor)
2259                          end                          end
# Line 2269  feature -- Stone process Line 2272  feature -- Stone process
2272                                  editor_paste_cmd.disable_sensitive                                  editor_paste_cmd.disable_sensitive
2273                          end                          end
2274                  end                  end
2275                                    
2276          feature {NONE} -- Multiple editor management  feature {NONE} -- Multiple editor management
2277    
2278          editors: ARRAYED_LIST [EB_EDITOR]          editors: ARRAYED_LIST [EB_EDITOR]
2279                          -- editor contained in `Current'                          -- editor contained in `Current'
2280    
2281          current_editor_index: INTEGER          current_editor_index: INTEGER
2282                          -- Index in `editors' of the editor that has the focus.                          -- Index in `editors' of the editor that has the focus.
2283                            
2284          feature {EB_FEATURES_TOOL, EB_FEATURES_TREE, DOTNET_CLASS_AS, DOTNET_CLASS_CONTEXT} -- Feature Clauses  feature {EB_FEATURES_TOOL, EB_FEATURES_TREE, DOTNET_CLASS_AS, DOTNET_CLASS_CONTEXT} -- Feature Clauses
2285                            
2286          set_feature_clauses (a_features: ARRAYED_LIST [DOTNET_FEATURE_CLAUSE_AS [CONSUMED_ENTITY]]; a_type: STRING) is          set_feature_clauses (a_features: ARRAYED_LIST [DOTNET_FEATURE_CLAUSE_AS [CONSUMED_ENTITY]]; a_type: STRING) is
2287                          -- Set 'features' to 'a_features' and store in hash table with key 'a_type' denoting name of consumed                          -- Set 'features' to 'a_features' and store in hash table with key 'a_type' denoting name of consumed
2288                          -- type pertinent to 'a_features'.                          -- type pertinent to 'a_features'.
# Line 2291  feature -- Stone process Line 2294  feature -- Stone process
2294                          end                          end
2295                          feature_clauses.put (a_features, a_type)                          feature_clauses.put (a_features, a_type)
2296                  end                  end
2297                            
2298          get_feature_clauses (a_type: STRING): ARRAYED_LIST [DOTNET_FEATURE_CLAUSE_AS [CONSUMED_ENTITY]] is          get_feature_clauses (a_type: STRING): ARRAYED_LIST [DOTNET_FEATURE_CLAUSE_AS [CONSUMED_ENTITY]] is
2299                          -- Get list of feature clauses relevant to .NET type with name 'a_type'.                          -- Get list of feature clauses relevant to .NET type with name 'a_type'.
2300                  require                  require
# Line 2302  feature -- Stone process Line 2305  feature -- Stone process
2305                  ensure                  ensure
2306                          result_not_void: Result /= Void                          result_not_void: Result /= Void
2307                  end                  end
2308                            
2309          feature_clauses: HASH_TABLE [ARRAYED_LIST [DOTNET_FEATURE_CLAUSE_AS [CONSUMED_ENTITY]], STRING]          feature_clauses: HASH_TABLE [ARRAYED_LIST [DOTNET_FEATURE_CLAUSE_AS [CONSUMED_ENTITY]], STRING]
2310                          -- List of features clauses for Current window hashed by the .NET name of the consumed_type.                          -- List of features clauses for Current window hashed by the .NET name of the consumed_type.
2311                            
2312          feature_positions: HASH_TABLE [INTEGER, E_FEATURE]          feature_positions: HASH_TABLE [INTEGER, E_FEATURE]
2313                          -- Features indexed by line position in class text (for .NET features).                          -- Features indexed by line position in class text (for .NET features).
2314    
2315          feature {EB_WINDOW_MANAGER} -- Window management / Implementation        feature {EB_WINDOW_MANAGER} -- Window management / Implementation
2316    
2317          destroy_imp is          destroy_imp is
2318                          -- Destroy window.                          -- Destroy window.
# Line 2349  feature -- Stone process Line 2352  feature -- Stone process
2352                          end                          end
2353                  end                  end
2354    
2355          feature {NONE} -- Implementation  feature {NONE} -- Implementation
2356    
2357          set_stone_after_check (a_stone: STONE) is          set_stone_after_check (a_stone: STONE) is
2358                  local                  local
# Line 2361  feature -- Stone process Line 2364  feature -- Stone process
2364                          cluster_st: CLUSTER_STONE                          cluster_st: CLUSTER_STONE
2365                          feature_stone: FEATURE_STONE                          feature_stone: FEATURE_STONE
2366                          conv_ferrst: FEATURE_ERROR_STONE                          conv_ferrst: FEATURE_ERROR_STONE
2367                            
2368                          ef_stone: EXTERNAL_FILE_STONE                          ef_stone: EXTERNAL_FILE_STONE
2369                          f: FILE                          f: FILE
2370                            
2371                          l_format_context: FORMAT_CONTEXT                          l_format_context: FORMAT_CONTEXT
2372                          l_indexes: EIFFEL_LIST [INDEX_AS]                          l_indexes: EIFFEL_LIST [INDEX_AS]
2373                          conv_errst: ERROR_STONE                          conv_errst: ERROR_STONE
# Line 2418  feature -- Stone process Line 2421  feature -- Stone process
2421                                  f.close                                  f.close
2422                                  editor_tool.text_area.load_text (f.last_string)                                  editor_tool.text_area.load_text (f.last_string)
2423                          else                          else
                                   
2424                                          -- Remember previous stone.                                          -- Remember previous stone.
2425                                  old_stone := stone                                  old_stone := stone
2426                                  old_class_stone ?= stone                                  old_class_stone ?= stone
2427                    
2428                                          -- New stone properties                                          -- New stone properties
2429                                  new_class_stone ?= a_stone                                  new_class_stone ?= a_stone
2430    
2431                                          -- Set the stone.                                          -- Set the stone.
2432                                  old_set_stone (a_stone)                                  old_set_stone (a_stone)
2433                                  cluster_st ?= a_stone                                  cluster_st ?= a_stone
2434                                    
2435                                  new_feature_cmd.disable_sensitive                                  new_feature_cmd.disable_sensitive
2436                                  toggle_feature_signature_cmd.disable_sensitive                                  toggle_feature_signature_cmd.disable_sensitive
2437                                    
2438                                          -- We update the state of the `Add to Favorites' command.                                          -- We update the state of the `Add to Favorites' command.
2439                                  if new_class_stone /= Void then                                  if new_class_stone /= Void then
2440                                          favorites_menu.first.enable_sensitive                                          favorites_menu.first.enable_sensitive
# Line 2464  feature -- Stone process Line 2466  feature -- Stone process
2466                                                  same_class := True                                                  same_class := True
2467                                          end                                          end
2468                                          if not feature_stone_already_processed then                                          if not feature_stone_already_processed then
2469                                                  if                                                  if same_class and then text_saved then
                                                         same_class and then text_saved                                            
                                                 then  
2470                                                                  -- nothing changed in the editor                                                                  -- nothing changed in the editor
2471                                                                  -- we only have to update click_list                                                                  -- we only have to update click_list
2472                                                          if editor_tool.text_area.is_editable then                                                          if editor_tool.text_area.is_editable then
# Line 2485  feature -- Stone process Line 2485  feature -- Stone process
2485                                          conv_classc ?= new_class_stone                                          conv_classc ?= new_class_stone
2486                                          if conv_classc = Void or else                                          if conv_classc = Void or else
2487                                                  conv_classc.e_class.is_external or else                                                  conv_classc.e_class.is_external or else
2488                                                  feature_stone /= Void and not                                                  feature_stone /= Void and not
2489                                                  feature_stone_already_processed and not                                                  feature_stone_already_processed and not
2490                                                  (same_class and context_tool.sending_stone) then                                                  (same_class and context_tool.sending_stone) then
2491                                                          -- If a classi_stone or a feature_stone or a external call                                                          -- If a classi_stone or a feature_stone or a external call
# Line 2506  feature -- Stone process Line 2506  feature -- Stone process
2506                                                                          if l_flat_formatter /= Void then                                                                          if l_flat_formatter /= Void then
2507                                                                                  l_flat_formatter.set_dotnet_mode (True)                                                                                  l_flat_formatter.set_dotnet_mode (True)
2508                                                                          end                                                                          end
2509                                                                  end                                                                                                                              end
2510                                                          else                                                          else
2511                                                                  managed_main_formatters.first.set_stone (new_class_stone)                                                                  managed_main_formatters.first.set_stone (new_class_stone)
2512                                                                  managed_main_formatters.first.execute                                                                  managed_main_formatters.first.execute
# Line 2524  feature -- Stone process Line 2524  feature -- Stone process
2524                                                  if dotnet_class then                                                  if dotnet_class then
2525                                                          managed_main_formatters.i_th (4).set_stone (new_class_stone)                                                          managed_main_formatters.i_th (4).set_stone (new_class_stone)
2526                                                          managed_main_formatters.i_th (5).set_stone (new_class_stone)                                                          managed_main_formatters.i_th (5).set_stone (new_class_stone)
2527                                                          managed_main_formatters.i_th (4).execute                                                                                          managed_main_formatters.i_th (4).execute
2528                                                  end                                                  end
2529                                                  address_manager.disable_formatters                                                  address_manager.disable_formatters
2530                                          else                                          else
# Line 2581  feature -- Stone process Line 2581  feature -- Stone process
2581                                                  end                                                  end
2582                                          end                                          end
2583                                  else                                  else
2584                                                  -- not a class text : cannot be edited                                                    -- not a class text : cannot be edited
2585                                          editor_tool.text_area.disable_editable                                          editor_tool.text_area.disable_editable
2586                                          address_manager.disable_formatters                                          address_manager.disable_formatters
2587    
# Line 2654  feature -- Stone process Line 2654  feature -- Stone process
2654                                                  set_title (a_stone.header)                                                  set_title (a_stone.header)
2655                                          end                                          end
2656                                  else                                  else
2657                                          set_title (Interface_names.t_Empty_development_window)                                          set_title (Interface_names.t_empty_development_window)
2658                                  end                                  end
2659    
2660                                          -- Refresh the tools.                                          -- Refresh the tools.
# Line 2676  feature -- Stone process Line 2676  feature -- Stone process
2676                          end                          end
2677                          if cur_wid = Void then                          if cur_wid = Void then
2678                                  --| Do nothing.                                  --| Do nothing.
2679                          else                                      else
2680                                  cur_wid.set_pointer_style (old_cur)                                  cur_wid.set_pointer_style (old_cur)
2681                                  old_cur := Void                                  old_cur := Void
2682          --                                      cur_wid.disable_capture          --                                      cur_wid.disable_capture
# Line 2732  feature -- Stone process Line 2732  feature -- Stone process
2732                          -- Is the processed stone a feature stone and has it                          -- Is the processed stone a feature stone and has it
2733                          -- been already processed by the editor ?                          -- been already processed by the editor ?
2734    
2735          feature {NONE} -- Implementation  feature {NONE} -- Implementation
2736    
2737          update_save_symbol is          update_save_symbol is
2738                  do                  do
# Line 2773  feature -- Stone process Line 2773  feature -- Stone process
2773                                  type_changed := (cist.class_i.is_external_class and not is_stone_external) or                                  type_changed := (cist.class_i.is_external_class and not is_stone_external) or
2774                                          (not cist.class_i.is_external_class and is_stone_external)                                          (not cist.class_i.is_external_class and is_stone_external)
2775                          end                          end
2776                            
2777                          if type_changed then                          if type_changed then
2778                                          -- Toggle stone flag.                                          -- Toggle stone flag.
2779                                  is_stone_external := not is_stone_external                                  is_stone_external := not is_stone_external
2780                          end                          end
2781    
2782                          if cst /= Void then                          if cst /= Void then
2783                                  address_manager.enable_formatters                                  address_manager.enable_formatters
# Line 2789  feature -- Stone process Line 2789  feature -- Stone process
2789                                          end                                          end
2790                                  else                                  else
2791                                          if changed then                                          if changed then
2792                                                  address_manager.disable_formatters                                                  address_manager.disable_formatters
2793                                          else                                          else
2794                                                  --managed_main_formatters.first.disable_sensitive                                                  --managed_main_formatters.first.disable_sensitive
2795                                          end                                          end
# Line 2824  feature -- Stone process Line 2824  feature -- Stone process
2824                                  managed_main_formatters.forth                                  managed_main_formatters.forth
2825                          end                          end
2826                  end                  end
2827                    
2828    
2829          on_text_reset is          on_text_reset is
2830                          -- The main editor has just been wiped out                          -- The main editor has just been wiped out
# Line 2874  feature -- Stone process Line 2874  feature -- Stone process
2874                          end                          end
2875                          update_formatters                          update_formatters
2876                          text_edited := False                          text_edited := False
2877                  end                                      end
2878    
2879          text_edited: BOOLEAN          text_edited: BOOLEAN
2880                          -- Do we know that the text was edited?                          -- Do we know that the text was edited?
# Line 2912  feature -- Stone process Line 2912  feature -- Stone process
2912                                          context_tool.history_manager.back_command.execute                                          context_tool.history_manager.back_command.execute
2913                                  end                                  end
2914                          elseif history_manager.is_back_possible then                          elseif history_manager.is_back_possible then
2915                                  history_manager.back_command.execute                                              history_manager.back_command.execute
2916                          end                          end
2917                  end                  end
2918    
# Line 2993  feature -- Stone process Line 2993  feature -- Stone process
2993                          end                          end
2994                  end                  end
2995    
2996          destroy is          destroy is
2997                          -- check if current text has been saved and destroy                          -- check if current text has been saved and destroy
2998                  local                  local
2999                          dialog_w: EB_WARNING_DIALOG                          dialog_w: EB_WARNING_DIALOG
3000                  do                  do
3001                          if editor_tool /= Void and then editor_tool.text_area /= Void and then changed and then not confirmed then                          if editor_tool /= Void and then editor_tool.text_area /= Void and then changed and then not confirmed then
3002                                  if Window_manager.development_windows_count > 1 then                                  if Window_manager.development_windows_count > 1 then
3003                                          create dialog_w.make_with_text (Warning_messages.w_Save_before_closing)                                          create dialog_w.make_with_text (Warning_messages.w_save_before_closing)
3004                                          dialog_w.set_buttons_and_actions (<<"Yes", "No", "Cancel">>, <<agent save_and_destroy, agent force_destroy, agent do_nothing>>)                                          dialog_w.set_buttons_and_actions (<<"Yes", "No", "Cancel">>, <<agent save_and_destroy, agent force_destroy, agent do_nothing>>)
3005                                          dialog_w.set_default_push_button (dialog_w.button("Yes"))                                          dialog_w.set_default_push_button (dialog_w.button("Yes"))
3006                                          dialog_w.set_default_cancel_button (dialog_w.button("Cancel"))                                          dialog_w.set_default_cancel_button (dialog_w.button("Cancel"))
# Line 3045  feature -- Stone process Line 3045  feature -- Stone process
3045                          command_controller.recycle                          command_controller.recycle
3046                  end                  end
3047    
3048          feature {NONE} -- Implementation: Editor commands  feature {NONE} -- Implementation: Editor commands
3049    
3050          refresh_cursor_position is          refresh_cursor_position is
3051                          -- Display the current cursor position in the status bar.                          -- Display the current cursor position in the status bar.
# Line 3157  feature -- Stone process Line 3157  feature -- Stone process
3157                  do                  do
3158                          current_editor.toggle_view_invisible_symbols                          current_editor.toggle_view_invisible_symbols
3159                          if current_editor.view_invisible_symbols then                          if current_editor.view_invisible_symbols then
3160                                  formatting_marks_command_menu_item.set_text (Interface_names.m_Hide_formatting_marks)                                  formatting_marks_command_menu_item.set_text (Interface_names.m_hide_formatting_marks)
3161                          else                          else
3162                                  formatting_marks_command_menu_item.set_text(Interface_names.m_Show_formatting_marks)                                  formatting_marks_command_menu_item.set_text(Interface_names.m_show_formatting_marks)
3163                          end                          end
3164                  end                  end
3165    
3166          feature {NONE} -- Implementation / Menus  feature {NONE} -- Implementation / Menus
3167    
3168          number_of_displayed_external_commands: INTEGER          number_of_displayed_external_commands: INTEGER
3169                          -- Number of external commands in the tools menu.                          -- Number of external commands in the tools menu.
# Line 3192  feature -- Stone process Line 3192  feature -- Stone process
3192          redo_accelerator: EV_ACCELERATOR          redo_accelerator: EV_ACCELERATOR
3193                          -- Accelerator for Ctrl+Y                          -- Accelerator for Ctrl+Y
3194    
3195          feature {EB_TOOL} -- Implementation / Commands  feature {EB_TOOL} -- Implementation / Commands
3196    
3197          shell_cmd: EB_OPEN_SHELL_COMMAND          shell_cmd: EB_OPEN_SHELL_COMMAND
3198                          -- Command to use an external editor.                          -- Command to use an external editor.
# Line 3235  feature -- Stone process Line 3235  feature -- Stone process
3235    
3236          new_feature_cmd: EB_NEW_FEATURE_COMMAND          new_feature_cmd: EB_NEW_FEATURE_COMMAND
3237                          -- Command to execute the feature wizard.                          -- Command to execute the feature wizard.
3238                            
3239          toggle_feature_signature_cmd: EB_TOGGLE_FEATURE_SIGNATURE_COMMAND          toggle_feature_signature_cmd: EB_TOGGLE_FEATURE_SIGNATURE_COMMAND
3240                          -- Show/Hide signature of feature node in eb_feature_tool                          -- Show/Hide signature of feature node in eb_feature_tool
3241    
# Line 3287  feature -- Stone process Line 3287  feature -- Stone process
3287                          -- Command to display the eac browser                          -- Command to display the eac browser
3288                  do                  do
3289                          Result := Debugger_manager.eac_browser_cmd                          Result := Debugger_manager.eac_browser_cmd
3290                  end                              end
3291    
3292          show_favorites_menu_item: EV_MENU_ITEM          show_favorites_menu_item: EV_MENU_ITEM
3293                          -- Show/Hide favorites menu item.                          -- Show/Hide favorites menu item.
# Line 3296  feature -- Stone process Line 3296  feature -- Stone process
3296                          -- Update `show_favorites_menu_item' menu label.                          -- Update `show_favorites_menu_item' menu label.
3297                  do                  do
3298                          if favorites_tool.shown then                          if favorites_tool.shown then
3299                                  show_favorites_menu_item.set_text (Interface_names.m_Hide_favorites)                                  show_favorites_menu_item.set_text (Interface_names.m_hide_favorites)
3300                          else                          else
3301                                  show_favorites_menu_item.set_text (Interface_names.m_Show_favorites)                                  show_favorites_menu_item.set_text (Interface_names.m_show_favorites)
3302                          end                          end
3303                  end                  end
3304    
# Line 3313  feature -- Stone process Line 3313  feature -- Stone process
3313                                  favorites_tool.show                                  favorites_tool.show
3314                          end                          end
3315                  end                  end
3316                    
3317          feature {EB_TOOL_WINDOW, EB_EXPLORER_BAR, EB_DEBUGGER_MANAGER} -- Floating tool handling  feature {EB_TOOL_WINDOW, EB_EXPLORER_BAR, EB_DEBUGGER_MANAGER} -- Floating tool handling
3318    
3319          all_tool_windows: ARRAYED_LIST [EB_TOOL_WINDOW]          all_tool_windows: ARRAYED_LIST [EB_TOOL_WINDOW]
3320                  -- All tool windows under the control of `Current'.                  -- All tool windows under the control of `Current'.
# Line 3332  feature -- Stone process Line 3332  feature -- Stone process
3332                  ensure                  ensure
3333                          extended: all_tool_windows.has (a_tool_window)                          extended: all_tool_windows.has (a_tool_window)
3334                  end                  end
3335                    
3336          remove_tool_window (a_widget: EV_WIDGET) is          remove_tool_window (a_widget: EV_WIDGET) is
3337                          -- Remove tool window associate with `a_widget'.                          -- Remove tool window associate with `a_widget'.
3338                  require                  require
# Line 3352  feature -- Stone process Line 3352  feature -- Stone process
3352                                  end                                  end
3353                          end                          end
3354                  end                  end
3355                    
3356          remove_all_tool_windows is          remove_all_tool_windows is
3357                          -- Ensure `all_tool_windows' is empty if non Void.                          -- Ensure `all_tool_windows' is empty if non Void.
3358                  do                  do
# Line 3362  feature -- Stone process Line 3362  feature -- Stone process
3362                  ensure                  ensure
3363                          tool_windows_empty: all_tool_windows /= Void implies all_tool_windows.is_empty                          tool_windows_empty: all_tool_windows /= Void implies all_tool_windows.is_empty
3364                  end                  end
3365                    
                   
3366          window_moved (x_pos, y_pos: INTEGER) is          window_moved (x_pos, y_pos: INTEGER) is
3367                          -- `Current' has been moved, so move all associated tool windows within `all_tool_windows'.                          -- `Current' has been moved, so move all associated tool windows within `all_tool_windows'.
3368                  local                  local
# Line 3393  feature -- Stone process Line 3392  feature -- Stone process
3392                                          end                                          end
3393                                          all_tool_windows.forth                                          all_tool_windows.forth
3394                                  end                                  end
3395                          end                                              end
3396                  end                  end
3397                    
3398          feature {NONE} -- Execution  feature {NONE} -- Execution
3399    
3400          Kcst: EV_KEY_CONSTANTS is          Kcst: EV_KEY_CONSTANTS is
3401                          -- A way to access key constants.                          -- A way to access key constants.

Legend:
Removed from v.51083  
changed lines
  Added in v.51111

  ViewVC Help
Powered by ViewVC 1.1.23