# Add another tab when opening file

**URL:** <https://www.ruby-forum.com/t/add-another-tab-when-opening-file/151786>\
**Category:** FXRuby\
**Created:** [October 25, 2008, 5:25pm UTC](https://www.ruby-forum.com/t/add-another-tab-when-opening-file/151786 "2008-10-25T17:25:52Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![wujciol](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f475e1/32.png) [@wujciol](https://www.ruby-forum.com/u/wujciol)\
**Post date:** [October 25, 2008, 5:25pm UTC](https://www.ruby-forum.com/t/add-another-tab-when-opening-file/151786/1 "2008-10-25T17:25:52Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![wujciol](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f475e1/32.png) [@wujciol](https://www.ruby-forum.com/u/wujciol)\
**Post date:** [October 25, 2008, 6:10pm UTC](https://www.ruby-forum.com/t/add-another-tab-when-opening-file/151786/2 "2008-10-25T18:10:38Z")

</div>

Fixed
