Add another tab when opening file


#1

I’m writing editor using FXRuby but I’ve got a problem. FXTabItems are
only visible if i add them in initialize method of my class. How to
connect add_tab method with position in menu to show FXTabItem? This is
code:

#! /usr/bin/ruby

require ‘fox16’
include Fox

class Editor < FXMainWindow

def initialize(app)
super(app, “Editor - #{@filename}” ,:width => 200, :height => 100)
self.icon = FXJPGIcon.new(app,File.open(“pbr.jpg”, “rb”).read)
add_menu_bar

contents =

FXHorizontalFrame.new(self,LAYOUT_SIDE_TOP|FRAME_NONE|LAYOUT_FILL_X|LAYOUT_FILL_Y|PACK_UNIFORM_WIDTH)
@tabbook = FXTabBook.new(contents,:opts =>
LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_RIGHT)

add_file_edit

end

def create
super
show(PLACEMENT_SCREEN)
end

def add_file_edit(app)
FXTabItem.new(@tabbook, “List”, nil)
frame = FXHorizontalFrame.new(@tabbook, FRAME_THICK|FRAME_RAISED)
FXText.new(frame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
end

def add_menu_bar
menu_bar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)

file_menu = FXMenuPane.new(self)
FXMenuTitle.new(menu_bar, "File" , :popupMenu => file_menu)

edit_menu = FXMenuPane.new(self)
FXMenuTitle.new(menu_bar, "Edit" , :popupMenu => edit_menu)

search_menu = FXMenuPane.new(self)
FXMenuTitle.new(menu_bar, "Search" , :popupMenu => search_menu)

help_menu = FXMenuPane.new(self)
FXMenuTitle.new(menu_bar, "Help" , :popupMenu => help_menu)

new_cmd = FXMenuCommand.new(file_menu, "New" )
new_cmd.connect(SEL_COMMAND) do
  @text.text = ""
end

open_cmd = FXMenuCommand.new(file_menu, "Open" )
open_cmd.connect(SEL_COMMAND) do
  dialog = FXFileDialog.new(self, "Import Photos" )
  dialog.selectMode = SELECTFILE_MULTIPLE
  dialog.patternList = ["C/C++ files (*.c, *.cpp, *.h, *.hh)" ]
  if dialog.execute != 0
    dialog.filenames.each do |filename|
      add_file_edit
    end
  end
end

save_cmd = FXMenuCommand.new(file_menu, "Save" )
save_cmd.connect(SEL_COMMAND) do
  @text.text = ""
end

saveas_cmd = FXMenuCommand.new(file_menu, "Save as..." )
saveas_cmd.connect(SEL_COMMAND) do
  @text.text = ""
end

FXMenuSeparator.new(file_menu)

exit_cmd = FXMenuCommand.new(file_menu, "Exit" )
exit_cmd.connect(SEL_COMMAND) do
  exit
end

end

end

FXApp.new do |app|
Editor.new(app)
app.create
app.run
end


#2

Fixed