Module: Roebe::GUI::Gtk::EmailModule

Includes:
Gtk::BaseModule
Defined in:
lib/roebe/gui/shared_code/email/email_module.rb

Constant Summary collapse

TITLE =
#

TITLE

#
'Email'
WIDTH =
#

WIDTH

#
'80%'
HEIGHT =
#

HEIGHT

#
880
USE_THIS_FONT =
#

USE_THIS_FONT

#
:hack_18

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.runObject

#

Roebe::GUI::Gtk::EmailModule.run

#


169
170
171
172
173
174
175
176
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 169

def self.run
  require 'gtk_paradise/run'
  r = ::Gtk.run
  r << ::Roebe::GUI::Gtk::Email.new
  r.easy_exit
  r.automatic_size
  r.top_left_then_run
end

Instance Method Details

#connect_skeletonObject

#

connect_skeleton

#


144
145
146
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 144

def connect_skeleton
  add_with_viewport(@box_with_tree_view)
end

#create_liststoreObject

#

create_liststore

#


106
107
108
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 106

def create_liststore
  @list_store = liststore(Integer, String)
end

#create_rendererObject

#

create_renderer

#


82
83
84
85
86
87
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 82

def create_renderer
  @renderer = gtk_cell_renderer_text
  @renderer.editable = true
  @renderer.set_property('background', 'white')
  @renderer.set_cell_background('slateblue') # This makes the blue border.
end

#create_skeletonObject

#

create_skeleton

#


158
159
160
161
162
163
164
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 158

def create_skeleton
  create_renderer
  create_liststore # This one must come before populate_the_liststore().
  populate_the_liststore
  create_the_treeview
  @box_with_tree_view = vbox(@tree_view)
end

#create_the_treeviewObject

#

create_the_treeview

#


130
131
132
133
134
135
136
137
138
139
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 130

def create_the_treeview
  @tree_view = tree_view(@list_store)
  @tree_view.hadjustment = gtk_adjustment(
    0.0, 0.0, 105.0, 0.2, 1.0, 1.0
  )
  @tree_view.clickable_headers
  @tree_view.append_this_column('Number', @renderer, text: 0)
  @tree_view.append_this_column('Email Addresses', @renderer, text: 1)
  @tree_view.the_headers_are_resizable
end

#dataset?Boolean

#

dataset?

#

Returns:

  • (Boolean)


75
76
77
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 75

def dataset?
  @dataset
end

#favicon?Boolean

#

favicon?

#

Returns:

  • (Boolean)


99
100
101
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 99

def favicon?
  :tabble
end

#initialize(run_already = true) ⇒ Object

#

initialize

#


46
47
48
49
50
51
52
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 46

def initialize(
    run_already = true
  )
  super()
  reset
  run if run_already
end

#padding?Boolean

#

padding?

#

Returns:

  • (Boolean)


92
93
94
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 92

def padding?
  0
end

#populate_the_liststoreObject

#

populate_the_liststore

#


113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 113

def populate_the_liststore
  dataset?.each_with_index { |email_address, index|
    iter = @list_store.append
    # ===================================================================== #
    # If we have trouble with german umlauts then we could consider
    # using the next line - but I believe this is no longer necessary
    # past 2021.
    #   iter.set_value(0, GLib.convert(email_address, 'utf-8', 'iso-8859-1') ) # ü ä ö
    # ===================================================================== #
    iter.set_value(0, index+1)
    iter.set_value(1, email_address)
  }
end

#resetObject

#

reset (reset tag)

#


57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 57

def reset
  reset_the_internal_variables
  # ======================================================================= #
  # === @configuration
  # ======================================================================= #
  @configuration = [true, __dir__, NAMESPACE]
  title_width_height_font(TITLE, WIDTH, HEIGHT, USE_THIS_FONT)
  _ = Roebe::Email.new(:do_not_run_yet)
  # ======================================================================= #
  # === @dataset
  # ======================================================================= #
  @dataset = _.return_array_of_all_entries.uniq # Obtain all email.
  append_project_css_file
end

#runObject

#

run (run tag)

#


151
152
153
# File 'lib/roebe/gui/shared_code/email/email_module.rb', line 151

def run
  create_skeleton_then_connect_skeleton
end