/[freeride]/freeride/plugins/rubyide_tools_fox_debugger/fox_debugger.rb
ViewVC logotype

Diff of /freeride/plugins/rubyide_tools_fox_debugger/fox_debugger.rb

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

revision 1.1.1.1 by richkilmer, Fri Dec 20 17:27:31 2002 UTC revision 1.2 by richkilmer, Thu Jan 16 20:53:20 2003 UTC
# Line 29  module FreeRIDE Line 29  module FreeRIDE
29        ICON_PATH = "/system/ui/icons/Debugger"        ICON_PATH = "/system/ui/icons/Debugger"
30        
31        def DebuggerRenderFox.start(plugin)        def DebuggerRenderFox.start(plugin)
32          plugin["/system/ui/components/Debugger"].subscribe do |event, slot|        
           if (event == :notify_slot_add && slot.parent.name == "Debugger")  
             Renderer.new(plugin, slot)  
           end  
         end  
           
33          plugin[ICON_PATH].subscribe do |event, slot|          plugin[ICON_PATH].subscribe do |event, slot|
34            if event == :notify_slot_add            if event == :notify_slot_add
35              app = plugin['/system/ui/fox/FXApp'].data              app = plugin['/system/ui/fox/FXApp'].data
# Line 46  module FreeRIDE Line 41  module FreeRIDE
41            end            end
42          end          end
43                    
44            # Add command
45            debugRenderer = Renderer.new(plugin)
46            
47            plugin["/system/ui/commands"].manager.add("App/View/Debugger","Debugger","View Debugger") do |cmd_slot|
48              debugRenderer.toggle
49            end
50            plugin["/system/ui/commands"].manager.command("App/View/Debugger").icon = "/system/ui/icons/Debugger/startDebugger"
51            plugin["/system/ui/keys"].manager.bind("App/View/Debugger", :F8)
52            
53            plugin["/system/ui/current/ToolBar"].manager.add_command("View", "App/View/Debugger")
54            
55            # Insert the inspector in the Tools menu
56            viewmenu = plugin["/system/ui/components/MenuPane/View_menu"].manager
57            viewmenu.add_command("App/View/Debugger")
58            viewmenu.uncheck("App/View/Debugger")
59          
60            #plugin["/system/ui/components/Debugger"].subscribe do |event, slot|
61            #  if (event == :notify_slot_add && slot.parent.name == "Debugger")
62            #    Renderer.new(plugin, slot)
63            #  end
64            #end
65            
66          # Now only is the plugin ready          # Now only is the plugin ready
67          plugin.transition(FreeBASE::RUNNING)          plugin.transition(FreeBASE::RUNNING)
68        end        end
# Line 59  module FreeRIDE Line 76  module FreeRIDE
76          include Fox          include Fox
77          attr_reader :plugin          attr_reader :plugin
78                    
79          def initialize(plugin, slot)          def initialize(plugin)
80                        @docked = false
81            @plugin = plugin            @plugin = plugin
82            @slot = slot            @cmd_mgr = plugin['/system/ui/commands'].manager
83              @viewmenu = plugin["/system/ui/components/MenuPane/View_menu"].manager
84            @icons = @plugin[ICON_PATH]            @icons = @plugin[ICON_PATH]
             
85            @app = plugin['/system/ui/fox/FXApp'].data            @app = plugin['/system/ui/fox/FXApp'].data
86                        
           @slot.subscribe do |event, slot|  
             if event==:notify_slot_prune and slot == @slot  
               #TODO: remove UI component  
             end  
           end  
     
87            # Create the frame for this plugin, attach it to the main window.            # Create the frame for this plugin, attach it to the main window.
88            # It will be reparented later on when the debugger is inserted            # It will be reparented later on when the debugger is inserted
89            # in a dockpane.  Also hide it because we don;t want to see it now.            # in a dockpane.  Also hide it because we don;t want to see it now.
# Line 83  module FreeRIDE Line 94  module FreeRIDE
94            @frm.hide            @frm.hide
95            @frm.create            @frm.create
96            create_ui()            create_ui()
           @plugin.log_info << "Debugger Renderer created for : #{@slot.path}"  
97            #@slot.subscribe do |event, slot|            #@slot.subscribe do |event, slot|
98            #  update(event,slot) if event == :notify_data_set            #  update(event,slot) if event == :notify_data_set
99            #end            #end
100            dockpane_slot = plugin['/system/ui/components/DockPane'].manager.add("Debugger")            @dockpane_slot = plugin['/system/ui/components/DockPane'].manager.add("Debugger")
101            dockpane_slot.data = @frm            @dockpane_slot.data = @frm
102            dockpane_slot.manager.dock('south')            @debugger = nil
             
103          end          end
104                
105            def toggle
106              unless @docked
107                @dockpane_slot.manager.dock('south')
108                @docked = true
109                @viewmenu.check("App/View/Debugger")
110                update
111                @checked = true
112                #@plugin.properties["Open"] = true
113              else
114                if @checked
115                  @dockpane_slot.manager.hide
116                  @viewmenu.uncheck("App/View/Debugger")
117                  @checked = false
118                  #@plugin.properties["Open"] = false
119                else
120                  @dockpane_slot.manager.show
121                  @checked = true
122                  @viewmenu.check("App/View/Debugger")
123                  #@plugin.properties["Open"] = true
124                end
125              end
126            end        
127        
128        
129          ##          ##
130          # Create the debugger UI and put it in a top frame          # Create the debugger UI and put it in a top frame
131          #          #
132          def create_ui          def create_ui
     
           # All plugins that goes into a dockpane must have an attr_frame attribute  
           # in place which contain the top frame in which the plugin UI is built.  
           # This attribute will be used by the DockPane renderer to display the  
           # plugin frame in the right dockpane.  
           @slot.attr_frame = @frm  
133                    
134            # now build the inside of the top frame            # now build the inside of the top frame
135            mx = FXMatrix.new(@frm,2, FRAME_NONE|MATRIX_BY_COLUMNS|PACK_UNIFORM_WIDTH|LAYOUT_FILL_Y)            mx = FXMatrix.new(@frm,2, FRAME_NONE|MATRIX_BY_COLUMNS|PACK_UNIFORM_WIDTH|LAYOUT_FILL_Y)
# Line 327  module FreeRIDE Line 353  module FreeRIDE
353          # Update the frame list (combobox)          # Update the frame list (combobox)
354          #          #
355          def update_frame_list(fr_list)          def update_frame_list(fr_list)
356              return unless @debugger
357            @cbox_frame.clearItems            @cbox_frame.clearItems
358            idx = 0            idx = 0
359            fr_list.each do |f|            fr_list.each do |f|
# Line 361  module FreeRIDE Line 388  module FreeRIDE
388          end          end
389        
390          ##          ##
         # The debugger renderer is closed. An empty frame shows up  
         #  
         def close  
           @frm.hide  
           @frm.destroy  
           @plugin.log_info << "Debugger Renderer closed : #{@slot.path}"  
           @base_slot[@slot.name].prune  
         end  
     
         ##  
391          # monitor the debuggee stderr and print any incoming text          # monitor the debuggee stderr and print any incoming text
392          # to the debugger text console          # to the debugger text console
393          #          #
# Line 516  module FreeRIDE Line 533  module FreeRIDE
533        
534        
535          def onCmdStart(sender, sel, ptr)          def onCmdStart(sender, sel, ptr)
536              return 0 unless @debugger
537            @slot.manager.start            @slot.manager.start
538            return 1            return 1
539          end          end
540        
541          def onUpdStart(sender, sel, ptr)          def onUpdStart(sender, sel, ptr)
542            update_state(sender,sel,ptr, !@slot.manager.running?)            if @debugger
543                update_state(sender,sel,ptr, !@debugger.running?)
544              else
545                update_state(sender,sel,ptr, false)
546              end
547            return 1            return 1
548          end          end
549        
550          def onCmdStop(sender, sel, ptr)          def onCmdStop(sender, sel, ptr)
551            @slot.manager.stop            @debugger.stop if @debugger
552            return 1            return 1
553          end          end
554        
555          def onUpdStop(sender, sel, ptr)          def onUpdStop(sender, sel, ptr)
556            update_state(sender,sel,ptr, @slot.manager.running?)            if @debugger
557                update_state(sender,sel,ptr, @debugger.running?)
558              else
559                update_state(sender,sel,ptr, false)
560              end
561            return 1            return 1
562          end          end
563        
564          def onCmdClose(sender, sel, ptr)          def onCmdClose(sender, sel, ptr)
565            @slot.manager.send_command('CLOSE')            @debugger.send_command('CLOSE') if @debugger
566            return 1            return 1
567          end          end
568        
569          def onCmdStepOver(sender, sel, ptr)          def onCmdStepOver(sender, sel, ptr)
570            @slot.manager.send_command('next')            @debugger.send_command('next') if @debugger
571            return 1            return 1
572          end          end
573        
574          def onUpdStepOver(sender, sel, ptr)          def onUpdStepOver(sender, sel, ptr)
575            update_state(sender,sel,ptr, @slot.manager.running? && @slot.manager.paused?)            if @debugger
576                update_state(sender,sel,ptr, @debugger.running? && @debugger.paused?)
577              else
578                update_state(sender,sel,ptr, false)
579              end
580            return 1            return 1
581          end          end
582        
583          def onCmdStepIn(sender, sel, ptr)          def onCmdStepIn(sender, sel, ptr)
584            @slot.manager.send_command('step')            @debugger.send_command('step') if @debugger
585            return 1            return 1
586          end          end
587        
588          def onUpdStepIn(sender, sel, ptr)          def onUpdStepIn(sender, sel, ptr)
589            update_state(sender,sel,ptr, @slot.manager.running? && @slot.manager.paused?)            if @debugger
590                update_state(sender,sel,ptr, @debugger.running? && @debugger.paused?)
591              else
592                update_state(sender,sel,ptr, false)
593              end
594            return 1            return 1
595          end          end
596        
597          def onCmdStepOut(sender, sel, ptr)          def onCmdStepOut(sender, sel, ptr)
598            @slot.manager.send_command('finish')            @debugger.send_command('finish') if @debugger
599            return 1            return 1
600          end          end
601        
602          def onUpdStepOut(sender, sel, ptr)          def onUpdStepOut(sender, sel, ptr)
603            update_state(sender,sel,ptr, @slot.manager.running? && @slot.manager.paused?)            if @debugger
604                update_state(sender,sel,ptr, @debugger.running? && @debugger.paused?)
605              else
606                update_state(sender,sel,ptr, false)
607              end
608            return 1            return 1
609          end          end
610        
611          def onCmdResume(sender, sel, ptr)          def onCmdResume(sender, sel, ptr)
612            @slot.manager.resume            @debugger.resume if @debugger
613            return 1            return 1
614          end          end
615        
616          def onUpdResume(sender, sel, ptr)          def onUpdResume(sender, sel, ptr)
617            update_state(sender,sel,ptr, @slot.manager.running? && @slot.manager.paused?)            if @debugger
618                update_state(sender,sel,ptr, @debugger.running? && @debugger.paused?)
619              else
620                update_state(sender,sel,ptr, false)
621              end
622            return 1            return 1
623          end          end
624        
625          def onCmdPause(sender, sel, ptr)          def onCmdPause(sender, sel, ptr)
626            @slot.manager.pause            @debugger.pause if @debugger
627            return 1            return 1
628          end          end
629        
630          def onUpdPause(sender, sel, ptr)          def onUpdPause(sender, sel, ptr)
631            update_state(sender,sel,ptr, @slot.manager.running? && !@slot.manager.paused?)            if @debugger
632                update_state(sender,sel,ptr, @debugger.running? && !@debugger.paused?)
633              else
634                update_state(sender,sel,ptr, false)
635              end
636            return 1            return 1
637          end          end
638        
639          def onCmdRunToCursor(sender, sel, ptr)          def onCmdRunToCursor(sender, sel, ptr)
640            @slot.manager.run_to_cursor            @debugger.run_to_cursor
641            return 1            return 1
642          end          end
643        
644          def onUpdRunToCursor(sender, sel, ptr)          def onUpdRunToCursor(sender, sel, ptr)
645            update_state(sender,sel,ptr, @slot.manager.paused? && @slot.manager.running?)            if @debugger
646                update_state(sender,sel,ptr, @debugger.running? && @debugger.paused?)
647              else
648                update_state(sender,sel,ptr, false)
649              end
650            return 1            return 1
651          end          end
652        
# Line 610  module FreeRIDE Line 660  module FreeRIDE
660          end          end
661        
662          def onCmdShowExecPoint(sender, sel, ptr)          def onCmdShowExecPoint(sender, sel, ptr)
663            @slot.manager.show_exec_point            @debugger.show_exec_point if @debugger
664            return 1            return 1
665          end          end
666        
667          def onUpdShowExecPoint(sender, sel, ptr)          def onUpdShowExecPoint(sender, sel, ptr)
668            update_state(sender,sel,ptr, @slot.manager.running?)            if @debugger
669                update_state(sender,sel,ptr, @debugger.running?)
670              else
671                update_state(sender,sel,ptr, false)
672              end
673            return 1            return 1
674          end          end
675        
676          def onCmdHelp(sender, sel, ptr)          def onCmdHelp(sender, sel, ptr)
677            #TODO: to be done            #TODO: to be done
678            @slot.manager.show_thread_list            @debugger.show_thread_list if @debugger
679            return 1            return 1
680          end          end
681        
# Line 648  module FreeRIDE Line 702  module FreeRIDE
702          def onCmdThreadSelect(sender, sel, ptr)          def onCmdThreadSelect(sender, sel, ptr)
703            # Get the index of the selected thread            # Get the index of the selected thread
704            idx = sender.currentItem            idx = sender.currentItem
705            @slot.manager.select_thread(sender.getItemData(idx))            @debugger.select_thread(sender.getItemData(idx)) if @debugger
706            return 1            return 1
707          end          end
708        
709          def onCmdFrameSelect(sender, sel, ptr)          def onCmdFrameSelect(sender, sel, ptr)
710            # Get the index of the selected frame            # Get the index of the selected frame
711            idx = sender.currentItem            idx = sender.currentItem
712            @slot.manager.select_frame(sender.getItemData(idx))            @debugger.select_frame(sender.getItemData(idx)) if @debugger
713            return 1            return 1
714          end          end
715                        

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26