Module: Wuffl::BasicElements

Defined in:
lib/wuffl/basic_elements.rb

Class Method Summary collapse

Class Method Details

.define_boxesObject

define the boxes which are parts of the window



16
17
18
19
20
21
# File 'lib/wuffl/basic_elements.rb', line 16

def self.define_boxes
  vbox = Gtk::Box.new :vertical, 5
  hbox = Gtk::Box.new :horizontal, 10

  return [vbox, hbox]
end

.define_buttonsObject

define the necessary buttons



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/wuffl/basic_elements.rb', line 32

def self.define_buttons
  #-----------Definition of Buttons ----------

  #-----------Previous-Button----------------------
  prev_btn = Gtk::Button.new 
  prev_btn.label = "Previous"
  prev_btn.set_tooltip_text "Previous image"
  prev_btn.sensitive = false

  #-----------Next-Button-----------------------
  next_btn = Gtk::Button.new
  next_btn.label = "Next"
  next_btn.set_tooltip_text "Next image"
  next_btn.sensitive = false

  #-----------Rotate-Button----------------------
  rotate_btn = Gtk::Button.new
  rotate_btn.label = "Rotate"
  rotate_btn.set_tooltip_text "Rotate image"
  rotate_btn.sensitive = false

  #-----------Select-Button-----------------
  select_btn = Gtk::Button.new
  select_btn.label = "Move to \"Selected\""
  select_btn.set_tooltip_text "Move the image to the \"Selected\" folder"
  select_btn.sensitive = false

  #-----------Delete-Button---------------------
  delete_btn = Gtk::Button.new
  delete_btn.label = "Move to \"Deleted\""
  delete_btn.set_tooltip_text "Move the image to the \"Deleted\" folder"
  delete_btn.sensitive = false

  return {prev_btn: prev_btn, next_btn: next_btn, rotate_btn: rotate_btn, select_btn: select_btn, delete_btn: delete_btn}
end

.define_img_parameters(win_width, win_height, img_current) ⇒ Object

define the image parameters



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/wuffl/basic_elements.rb', line 86

def self.define_img_parameters(win_width, win_height, img_current)
  pb_current, pb_portrait = define_pixbuf

  img_parameters = {
    dir_path: "", # path of the image folder
    selected_path: "", 
    deleted_path: "", 
    name: "",
    rotation_case: 'A',
    ind: 0,      
    is_landscape: true, 
    all_orig_img: [],
    all_orig_pb: [],
    pb_current: pb_current,
    pb_portrait: pb_portrait,
    img_current: img_current, # current image
    img_max_w: (win_width * 0.37).to_i, # max width for each image
    img_max_h: (win_height * 0.37).to_i , # max height for each image
    reduction_factor: 0.95
  }
  return img_parameters
end

.define_menuObject

define the menu



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/wuffl/basic_elements.rb', line 69

def self.define_menu
  mb = Gtk::MenuBar.new
  file = Gtk::MenuItem.new :label => "File"
  filemenu = Gtk::Menu.new
  file.set_submenu filemenu

  open_file = Gtk::MenuItem.new :label => "Open file"
  quit = Gtk::MenuItem.new :label => "Exit"

  filemenu.append open_file
  filemenu.append quit
  mb.append file

  return [mb, open_file, quit]
end

.define_pixbufObject

define the pixel buffers



24
25
26
27
28
29
# File 'lib/wuffl/basic_elements.rb', line 24

def self.define_pixbuf
  pb_current = GdkPixbuf::Pixbuf.new #current pixbuf
  pb_portrait = GdkPixbuf::Pixbuf.new #pixbuf in portrait format (relevant only for rotations)

  return [pb_current, pb_portrait]
end

.define_window(win_width, win_height) ⇒ Object

define the interface window



5
6
7
8
9
10
11
12
13
# File 'lib/wuffl/basic_elements.rb', line 5

def self.define_window(win_width, win_height)
  window = Gtk::Window.new
  window.set_title "Wuffl"
  window.set_window_position :center
  window.set_default_size win_width, win_height
  window.signal_connect("destroy") {Gtk.main_quit}

  return window
end