136 |
bind_action("detach_stdout", :detach_stdout) |
bind_action("detach_stdout", :detach_stdout) |
137 |
bind_action("update_thread_list", :update_thread_list) |
bind_action("update_thread_list", :update_thread_list) |
138 |
bind_action("update_frame_list", :update_frame_list) |
bind_action("update_frame_list", :update_frame_list) |
139 |
|
bind_action("update_local_var_list", :update_local_var_list) |
140 |
|
bind_action("update_global_var_list", :update_global_var_list) |
141 |
bind_action("start", :start) |
bind_action("start", :start) |
142 |
bind_action("stop", :stop) |
bind_action("stop", :stop) |
143 |
bind_action("close", :close) |
bind_action("close", :close) |
347 |
frm_frame.padTop = 0; frm_frame.padBottom = 0 |
frm_frame.padTop = 0; frm_frame.padBottom = 0 |
348 |
split_frame = FXSplitter.new(frm_frame, LAYOUT_FILL_X| |
split_frame = FXSplitter.new(frm_frame, LAYOUT_FILL_X| |
349 |
SPLITTER_TRACKING|SPLITTER_HORIZONTAL) |
SPLITTER_TRACKING|SPLITTER_HORIZONTAL) |
|
|
|
|
#menupf_frame = FXMenuPane.new(split_frame) |
|
|
#FXMenuCommand.new(menupf_frame, "Frame 1", nil) #last arg is icon |
|
|
#FXMenuCommand.new(menupf_frame, "Frame 2", nil) #last arg is icon |
|
|
#menubf_frame = FXMenuButton.new(split_frame, "Frames", nil, menupf_frame, |
|
|
# MENUBUTTON_ATTACH_BOTH|MENUBUTTON_DOWN|JUSTIFY_HZ_APART|LAYOUT_TOP| |
|
|
#FRAME_RAISED|FRAME_THICK|ICON_AFTER_TEXT) |
|
|
|
|
|
#popf_frame = FXPopup.new(split_frame) |
|
|
|
|
|
#FXOption.new(popf_frame, "Frame 1", nil, nil, 0, |
|
|
# JUSTIFY_HZ_APART|ICON_BEFORE_TEXT) |
|
|
|
|
|
#FXOptionMenu.new(split_frame, popf_frame, |
|
|
# LAYOUT_TOP|FRAME_RAISED|FRAME_THICK|JUSTIFY_HZ_APART|ICON_AFTER_TEXT) |
|
350 |
|
|
351 |
@cbox_frame = FXComboBox.new(split_frame,5,5,self,0, |
@cbox_frame = FXComboBox.new(split_frame,5,5,self,0, |
352 |
COMBOBOX_STATIC|LAYOUT_FILL_X|LAYOUT_SIDE_TOP) |
COMBOBOX_STATIC|LAYOUT_FILL_X|LAYOUT_SIDE_TOP) |
360 |
@cbox_thread.appendItem("Thread 2") |
@cbox_thread.appendItem("Thread 2") |
361 |
@cbox_thread.connect(SEL_COMMAND, method(:onCmdThreadSelect)) |
@cbox_thread.connect(SEL_COMMAND, method(:onCmdThreadSelect)) |
362 |
|
|
|
# menupt_frame = FXMenuPane.new(split_frame) |
|
|
# FXMenuCommand.new(menupt_frame, "Thread 1", nil) #last arg is icon |
|
|
# FXMenuCommand.new(menupt_frame, "Thread 2", nil) #last arg is icon |
|
|
# menubt_frame = FXMenuButton.new(split_frame, "Threads", @icons['cancel'].data, menupt_frame, |
|
|
# MENUBUTTON_ATTACH_BOTH|MENUBUTTON_DOWN|JUSTIFY_HZ_APART|LAYOUT_TOP| |
|
|
# FRAME_RAISED|FRAME_THICK|ICON_AFTER_TEXT) |
|
|
#popt_frame = FXPopup.new(split_frame) |
|
|
|
|
|
#FXOption.new(popt_frame, "Thread 1", nil, nil, 0, |
|
|
# JUSTIFY_HZ_APART|ICON_BEFORE_TEXT) |
|
|
|
|
|
#FXOptionMenu.new(split_frame, popt_frame, |
|
|
# LAYOUT_TOP|FRAME_RAISED|FRAME_THICK|JUSTIFY_HZ_APART|ICON_AFTER_TEXT) |
|
|
|
|
|
#puts "#{menupf_frame.width}, #{menupt_frame.width},#{split_frame.width},#{frm_frame.height}" |
|
363 |
frmc_frame = FXHorizontalFrame.new(frm_frame,FRAME_RIDGE|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y) |
frmc_frame = FXHorizontalFrame.new(frm_frame,FRAME_RIDGE|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y) |
364 |
@cbox_frame.width = split_frame.width/2 |
@cbox_frame.width = split_frame.width/2 |
365 |
#popf_frame.setWidth(200) #frm_frame.width/2 |
#popf_frame.setWidth(200) #frm_frame.width/2 |
366 |
@cbox_thread.width = split_frame.width/2 |
@cbox_thread.width = split_frame.width/2 |
367 |
#popt_frame.setWidth(100) #frm_frame.width/2 |
#popt_frame.setWidth(100) #frm_frame.width/2 |
368 |
|
@tbox_lvar = FXText.new(frmc_frame, self, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y) |
369 |
|
|
370 |
# create the watches display tab |
# create the watches display tab |
371 |
tab_watches = FXTabItem.new(tb,"Watches",nil) |
tab_watches = FXTabItem.new(tb,"Watches",nil) |
372 |
frm_watches = FXHorizontalFrame.new(tb,FRAME_RAISED|FRAME_THICK) |
frm_watches = FXHorizontalFrame.new(tb,FRAME_RAISED|FRAME_THICK) |
374 |
# create the global variables display tab |
# create the global variables display tab |
375 |
tab_globals = FXTabItem.new(tb,"Globals",nil) |
tab_globals = FXTabItem.new(tb,"Globals",nil) |
376 |
frm_globals = FXHorizontalFrame.new(tb,FRAME_RAISED|FRAME_THICK) |
frm_globals = FXHorizontalFrame.new(tb,FRAME_RAISED|FRAME_THICK) |
377 |
|
@tbox_gvar = FXText.new(frm_globals, self, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y) |
378 |
tb.create |
tb.create |
379 |
end |
end |
380 |
|
|
381 |
## |
## |
382 |
|
# Update the local var list (text box) |
383 |
|
# |
384 |
|
def update_local_var_list(lv_ary) |
385 |
|
@tbox_lvar.text='' |
386 |
|
lv_ary.keys.sort.each { |v| |
387 |
|
#puts "#{v} => #{lv_ary[v]}\n" |
388 |
|
@tbox_lvar.appendText("#{v} => #{lv_ary[v]}\n") |
389 |
|
} |
390 |
|
end |
391 |
|
|
392 |
|
## |
393 |
|
# Update the global var list (text box) |
394 |
|
# |
395 |
|
def update_global_var_list(gv_ary) |
396 |
|
@tbox_gvar.text='' |
397 |
|
gv_ary.keys.sort.each { |v| |
398 |
|
@tbox_gvar.appendText("#{v} => #{gv_ary[v]}\n") |
399 |
|
} |
400 |
|
end |
401 |
|
|
402 |
|
## |
403 |
# Update the thread list (combobox) |
# Update the thread list (combobox) |
404 |
# |
# |
405 |
def update_thread_list(th_list) |
def update_thread_list(th_list) |