cxxproject 0.5.59 → 0.5.60

Sign up to get free protection for your applications and to get access to all the features.
@@ -216,7 +216,6 @@ module Cxxproject
216
216
  block.call
217
217
  end
218
218
  t.type = type
219
- t.progress_count = 1
220
219
  return t
221
220
  end
222
221
 
@@ -220,7 +220,6 @@ module Rake
220
220
  attr_accessor :deps # used to store deps by depfile task for the apply task (no re-read of depsfile)
221
221
  attr_accessor :type
222
222
  attr_accessor :transparent_timestamp
223
- attr_accessor :progress_count
224
223
  attr_accessor :output_string
225
224
  attr_accessor :output_after_execute
226
225
  attr_accessor :immediate_output
@@ -255,7 +254,6 @@ module Rake
255
254
  @type = UNKNOWN
256
255
  @deps = nil
257
256
  @transparent_timestamp = false
258
- @progress_count = 0
259
257
  @ignore = false
260
258
  @failure = false
261
259
  @output_after_execute = true
@@ -1,7 +1,7 @@
1
1
  module Cxxproject
2
2
  class Version
3
3
  def self.cxxproject
4
- "0.5.59"
4
+ "0.5.60"
5
5
  end
6
6
  end
7
7
  end
data/lib/cxxproject.rb CHANGED
@@ -12,10 +12,6 @@ require 'cxxproject/utils/ubigraph'
12
12
  require 'cxxproject/utils/graphstream'
13
13
  require 'cxxproject/toolchain/provider'
14
14
 
15
- require 'cxxproject/utils/progress'
16
- require 'cxxproject/utils/rbcurse'
17
- require 'cxxproject/utils/progress'
18
- require 'cxxproject/utils/rbcurse'
19
15
  require 'cxxproject/utils/stats'
20
16
 
21
17
  include Cxxproject::Toolchain
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cxxproject
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.5.59
5
+ version: 0.5.60
6
6
  platform: ruby
7
7
  authors:
8
8
  - oliver mueller
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-08-27 00:00:00 Z
13
+ date: 2013-01-15 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: highline
@@ -34,17 +34,6 @@ dependencies:
34
34
  version: "0"
35
35
  type: :runtime
36
36
  version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: progressbar
39
- prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- type: :runtime
47
- version_requirements: *id003
48
37
  description: " Some more high level building blocks for cpp projects.\n"
49
38
  email: oliver.mueller@gmail.com
50
39
  executables:
@@ -54,12 +43,44 @@ extensions: []
54
43
  extra_rdoc_files: []
55
44
 
56
45
  files:
57
- - lib/cxxproject.rb
58
- - lib/tools/project_wizard.rb
46
+ - lib/cxxproject/buildingblocks/binary_library.rb
47
+ - lib/cxxproject/buildingblocks/building_block.rb
48
+ - lib/cxxproject/buildingblocks/command_line.rb
49
+ - lib/cxxproject/buildingblocks/custom_building_block.rb
50
+ - lib/cxxproject/buildingblocks/executable.rb
51
+ - lib/cxxproject/buildingblocks/has_dependencies_mixin.rb
52
+ - lib/cxxproject/buildingblocks/has_includes_mixin.rb
53
+ - lib/cxxproject/buildingblocks/has_libraries_mixin.rb
54
+ - lib/cxxproject/buildingblocks/has_sources_mixin.rb
55
+ - lib/cxxproject/buildingblocks/makefile.rb
56
+ - lib/cxxproject/buildingblocks/module.rb
57
+ - lib/cxxproject/buildingblocks/single_source.rb
58
+ - lib/cxxproject/buildingblocks/source_library.rb
59
+ - lib/cxxproject/errorparser/diab_compiler_error_parser.rb
60
+ - lib/cxxproject/errorparser/diab_linker_error_parser.rb
61
+ - lib/cxxproject/errorparser/error_parser.rb
62
+ - lib/cxxproject/errorparser/gcc_compiler_error_parser.rb
63
+ - lib/cxxproject/errorparser/gcc_linker_error_parser.rb
64
+ - lib/cxxproject/errorparser/ti_compiler_error_parser.rb
65
+ - lib/cxxproject/errorparser/ti_linker_error_parser.rb
59
66
  - lib/cxxproject/eval_context.rb
67
+ - lib/cxxproject/ext/file.rb
68
+ - lib/cxxproject/ext/filelist.rb
69
+ - lib/cxxproject/ext/rake.rb
70
+ - lib/cxxproject/ext/rake_dirty.rb
71
+ - lib/cxxproject/ext/rake_listener.rb
72
+ - lib/cxxproject/ext/stdout.rb
73
+ - lib/cxxproject/ext/string.rb
60
74
  - lib/cxxproject/ide_interface.rb
75
+ - lib/cxxproject/toolchain/clang.rb
76
+ - lib/cxxproject/toolchain/colorizing_formatter.rb
77
+ - lib/cxxproject/toolchain/diab.rb
78
+ - lib/cxxproject/toolchain/gcc.rb
79
+ - lib/cxxproject/toolchain/provider.rb
80
+ - lib/cxxproject/toolchain/ti.rb
81
+ - lib/cxxproject/toolchain/toolchain.rb
82
+ - lib/cxxproject/toolchain/toolchain_benchmark.rb
61
83
  - lib/cxxproject/torake.rb
62
- - lib/cxxproject/version.rb
63
84
  - lib/cxxproject/utils/cleanup.rb
64
85
  - lib/cxxproject/utils/console.rb
65
86
  - lib/cxxproject/utils/exit_helper.rb
@@ -67,52 +88,13 @@ files:
67
88
  - lib/cxxproject/utils/optional.rb
68
89
  - lib/cxxproject/utils/printer.rb
69
90
  - lib/cxxproject/utils/process.rb
70
- - lib/cxxproject/utils/progress.rb
71
- - lib/cxxproject/utils/progress_helper.rb
72
- - lib/cxxproject/utils/rbcurse.rb
73
- - lib/cxxproject/utils/rbcurse_executable_ext.rb
74
- - lib/cxxproject/utils/rbcurse_progress.rb
75
- - lib/cxxproject/utils/rbcurse_tasktable.rb
76
91
  - lib/cxxproject/utils/stats.rb
77
92
  - lib/cxxproject/utils/ubigraph.rb
78
93
  - lib/cxxproject/utils/utils.rb
79
94
  - lib/cxxproject/utils/valgrind.rb
80
- - lib/cxxproject/toolchain/clang.rb
81
- - lib/cxxproject/toolchain/colorizing_formatter.rb
82
- - lib/cxxproject/toolchain/diab.rb
83
- - lib/cxxproject/toolchain/gcc.rb
84
- - lib/cxxproject/toolchain/provider.rb
85
- - lib/cxxproject/toolchain/ti.rb
86
- - lib/cxxproject/toolchain/toolchain.rb
87
- - lib/cxxproject/toolchain/toolchain_benchmark.rb
88
- - lib/cxxproject/ext/file.rb
89
- - lib/cxxproject/ext/filelist.rb
90
- - lib/cxxproject/ext/progressbar.rb
91
- - lib/cxxproject/ext/rake.rb
92
- - lib/cxxproject/ext/rake_dirty.rb
93
- - lib/cxxproject/ext/rake_listener.rb
94
- - lib/cxxproject/ext/stdout.rb
95
- - lib/cxxproject/ext/string.rb
96
- - lib/cxxproject/errorparser/diab_compiler_error_parser.rb
97
- - lib/cxxproject/errorparser/diab_linker_error_parser.rb
98
- - lib/cxxproject/errorparser/error_parser.rb
99
- - lib/cxxproject/errorparser/gcc_compiler_error_parser.rb
100
- - lib/cxxproject/errorparser/gcc_linker_error_parser.rb
101
- - lib/cxxproject/errorparser/ti_compiler_error_parser.rb
102
- - lib/cxxproject/errorparser/ti_linker_error_parser.rb
103
- - lib/cxxproject/buildingblocks/binary_library.rb
104
- - lib/cxxproject/buildingblocks/building_block.rb
105
- - lib/cxxproject/buildingblocks/command_line.rb
106
- - lib/cxxproject/buildingblocks/custom_building_block.rb
107
- - lib/cxxproject/buildingblocks/executable.rb
108
- - lib/cxxproject/buildingblocks/has_dependencies_mixin.rb
109
- - lib/cxxproject/buildingblocks/has_includes_mixin.rb
110
- - lib/cxxproject/buildingblocks/has_libraries_mixin.rb
111
- - lib/cxxproject/buildingblocks/has_sources_mixin.rb
112
- - lib/cxxproject/buildingblocks/makefile.rb
113
- - lib/cxxproject/buildingblocks/module.rb
114
- - lib/cxxproject/buildingblocks/single_source.rb
115
- - lib/cxxproject/buildingblocks/source_library.rb
95
+ - lib/cxxproject/version.rb
96
+ - lib/cxxproject.rb
97
+ - lib/tools/project_wizard.rb
116
98
  - Rakefile.rb
117
99
  - spec/building_block_spec.rb
118
100
  - spec/cxxproject_2_rake_spec.rb
@@ -123,15 +105,15 @@ files:
123
105
  - spec/rake_listener_ext_spec.rb
124
106
  - spec/spec_helper.rb
125
107
  - spec/string_spec.rb
126
- - spec/toolchain_spec.rb
108
+ - spec/testdata/basic/exe12/project.rb
109
+ - spec/testdata/basic/lib1/project.rb
110
+ - spec/testdata/basic/lib2/project.rb
111
+ - spec/testdata/multiple_levels/libs/lib1/project.rb
112
+ - spec/testdata/multiple_levels/libs/lib2/project.rb
113
+ - spec/testdata/multiple_levels/mainproject/basic/project.rb
127
114
  - spec/testdata/onlyOneHeader/project.rb
128
115
  - spec/testdata/onlyOneHeader/Rakefile.rb
129
- - spec/testdata/multiple_levels/mainproject/basic/project.rb
130
- - spec/testdata/multiple_levels/libs/lib2/project.rb
131
- - spec/testdata/multiple_levels/libs/lib1/project.rb
132
- - spec/testdata/basic/lib2/project.rb
133
- - spec/testdata/basic/lib1/project.rb
134
- - spec/testdata/basic/exe12/project.rb
116
+ - spec/toolchain_spec.rb
135
117
  - lib/tools/project.rb.template
136
118
  - lib/tools/Rakefile.rb.template
137
119
  - bin/cxx
@@ -158,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
140
  requirements: []
159
141
 
160
142
  rubyforge_project:
161
- rubygems_version: 1.8.23
143
+ rubygems_version: 1.8.24
162
144
  signing_key:
163
145
  specification_version: 3
164
146
  summary: Cpp Support for Rake.
@@ -1,20 +0,0 @@
1
- class ::ProgressBar
2
- attr_writer :title
3
-
4
- def title_width=(w)
5
- @title_width = w
6
- @format = "%-#{@title_width}s #{'%3d%%'.red} #{'%s'.green} #{'%s'.blue}"
7
- end
8
-
9
- show_original = self.instance_method(:show)
10
- define_method(:show) do
11
- if @unblocked && !RakeFileUtils.verbose
12
- show_original.bind(self).call
13
- end
14
- end
15
-
16
- def unblock
17
- @unblocked = true
18
- show
19
- end
20
- end
@@ -1,66 +0,0 @@
1
- module Cxxproject
2
- module Utils
3
- define_progress = lambda do
4
- require 'rake'
5
- require 'cxxproject/ext/rake'
6
-
7
- require 'progressbar'
8
- require 'cxxproject/ext/progressbar'
9
- require 'colored'
10
- require 'cxxproject/utils/progress_helper'
11
-
12
- class ProgressListener
13
- def initialize
14
- @progress_helper = ProgressHelper.new
15
- Rake::application.top_level_tasks.each do |name|
16
- @progress_helper.count_with_filter(name)
17
- end
18
- @progress = ProgressBar.new('all tasks', @progress_helper.todo)
19
- @progress.title_width = 30
20
- @progress.unblock
21
- end
22
-
23
- def after_execute(name)
24
- needed_tasks = @progress_helper.needed_tasks
25
- if needed_tasks[name]
26
- task = Rake::Task[name]
27
- @progress.title = task.name
28
- @progress.inc(task.progress_count)
29
- if (@progress.total == @progress.current)
30
- puts
31
- end
32
- end
33
- end
34
- end
35
-
36
- require 'benchmark'
37
- class BenchmarkedProgressListener < ProgressListener
38
- def initialize
39
- Benchmark.bm do |x|
40
- x.report('ProgressListener.initialize') do
41
- super
42
- end
43
- end
44
- end
45
- end
46
-
47
- desc 'show a progressbar for the build (use with -s for best results)'
48
- task :progress do
49
- require 'cxxproject/ext/rake_listener'
50
- Rake::add_listener(ProgressListener.new)
51
- end
52
-
53
- task :benchmark_progress do
54
- require 'cxxproject/ext/rake_listener'
55
- Rake::add_listener(BenchmarkedProgressListener.new)
56
- end
57
- end
58
-
59
- could_not_define_progress = lambda {
60
- task :progress do
61
- puts 'could not define progress'
62
- end
63
- }
64
- optional_package(define_progress, could_not_define_progress)
65
- end
66
- end
@@ -1,77 +0,0 @@
1
- module Cxxproject
2
- module Utils
3
- class ProgressHelper
4
-
5
- attr_reader :todo
6
-
7
- attr_reader :needed_tasks
8
-
9
- def initialize
10
- @todo = 0.0
11
- @needed_tasks = {}
12
- end
13
-
14
- def count_with_filter(name)
15
- tasks = find_tasks_for_toplevel_task(name)
16
- tasks.each do |t|
17
- count(t)
18
- end
19
- if @todo < 1
20
- @todo = 1
21
- end
22
- end
23
-
24
- def find_tasks_for_toplevel_task(name)
25
- regex = create_regex_for_name(name)
26
- return filter_all_tasks(regex)
27
- end
28
-
29
- def create_regex_for_name(name)
30
- res = Regexp.new(name)
31
- res = create_regex_for_filter(name, res)
32
- return res
33
- end
34
-
35
- def is_filter(name)
36
- return name.index('filter')
37
- end
38
-
39
- def create_regex_for_filter(name, res)
40
- return res unless is_filter(name)
41
-
42
- name = name.gsub('filter', '')
43
- if name.index('[') == nil
44
- name = name + '.*'
45
- else
46
- name = name.gsub('[', '')
47
- name = name.gsub(']', '')
48
- end
49
- return Regexp.new(name)
50
- end
51
-
52
- def filter_all_tasks(regex)
53
- return Rake::Task::tasks.find_all do |t|
54
- task_name = t.name
55
- res = ((task_name.index('filter') == nil) && regex.match(task_name)!=nil)
56
- end
57
- end
58
-
59
- def count(task)
60
- task.visit() do |t|
61
- count_needed_tasks(t)
62
- true
63
- end
64
- end
65
-
66
- def count_needed_tasks(t)
67
- c = t.progress_count
68
- if c && c > 0
69
- if t.needed? && @needed_tasks[t.name] == nil
70
- @needed_tasks[t.name] = true
71
- @todo += c
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end
@@ -1,284 +0,0 @@
1
- module Cxxproject
2
- module Utils
3
- define_rbcurse_ui = lambda do
4
- require 'rake'
5
- require 'ncurses'
6
- require 'rbcurse'
7
-
8
- require 'rbcurse/rtable'
9
- require 'rbcurse/table/tablecellrenderer'
10
- require 'rbcurse/rsplitpane'
11
- require 'rbcurse/rtextview'
12
- require 'cxxproject/ext/rake_listener'
13
- require 'cxxproject/utils/rbcurse_progress'
14
- require 'cxxproject/utils/rbcurse_tasktable'
15
-
16
- include RubyCurses
17
-
18
- Rake::TaskManager.record_task_metadata = true
19
-
20
- class RakeGui
21
- def initialize
22
- require 'cxxproject/utils/rbcurse_executable_ext'
23
- Cxxproject::ColorizingFormatter.enabled = false
24
- Rake::Task.output_disabled = true
25
-
26
- $log = Logger.new(File.join("./", "view.log"))
27
- $log.level = Logger::ERROR
28
- @data_stack = []
29
- @path_stack = []
30
- end
31
-
32
- def self.keycode(s)
33
- return s[0].to_i
34
- end
35
-
36
- def create_table
37
- @col_names = ['name', 'desc']
38
- return TaskTable.new(self) do
39
- name 'my table'
40
- title 'my table'
41
- cell_editing_allowed false
42
- end
43
- end
44
-
45
- def reenable_including_prerequisites(task)
46
- task.visit() do |t|
47
- t.reenable
48
- true
49
- end
50
- end
51
-
52
- def invoke(table)
53
- t = table.get_value_at(table.focussed_row, 0)
54
- @progress_helper = ProgressHelper.new
55
- complete_task_name = t.name
56
- args = []
57
- if @progress_helper.is_filter(t.name)
58
- args = [get_string('please input filterpattern', 20, '.*')]
59
- complete_task_name = "#{t.name}[#{args[0]}]"
60
- end
61
- @progress_helper.count_with_filter(complete_task_name)
62
-
63
- @progress.max = @progress_helper.todo
64
- Rake::add_listener(self)
65
- reenable_including_prerequisites(t)
66
- t.invoke(args)
67
- Rake::remove_listener(self)
68
- show_details_for(table.focussed_row)
69
- table.repaint_all(true)
70
- end
71
-
72
- def after_execute(name)
73
- needed_tasks = @progress_helper.needed_tasks
74
- if needed_tasks[name]
75
- task = Rake::Task[name]
76
- @progress.title = task.name
77
- @progress.inc(task.progress_count)
78
- @form.repaint
79
- end
80
- end
81
-
82
- def details(table)
83
- t = table.get_value_at(table.focussed_row, 0)
84
- pre = t.prerequisite_tasks
85
- if pre.size > 0
86
- push_table_data(pre, t.name)
87
- table.set_focus_on 0
88
-
89
- show_details_for(0)
90
- end
91
- end
92
-
93
- def repaint_and_next_char
94
- @form.repaint
95
- @window.wrefresh
96
- return @window.getchar
97
- end
98
-
99
- def process_input_events
100
- ch = repaint_and_next_char
101
- while ch != RakeGui.keycode('q')
102
- $log.error "entered key: #{ch}"
103
- case ch
104
- when RakeGui.keycode('a')
105
- @h_split.set_divider_location(@h_split.divider_location+1)
106
- when RakeGui.keycode('s')
107
- @h_split.set_divider_location(@h_split.divider_location-1)
108
- else
109
- @form.handle_key(ch)
110
- end
111
- ch = repaint_and_next_char
112
- end
113
- end
114
-
115
- def push_table_data(task_data, new_path=nil)
116
- @path_stack.push(new_path) if new_path
117
- set_breadcrumbs
118
-
119
- @data_stack.push(task_data)
120
- set_table_data(task_data)
121
- end
122
- def set_table_data(task_data)
123
- size = size()
124
- new_data = task_data.map{|t|[t, t.comment]}
125
- @table.set_data new_data, @col_names
126
- tcm = @table.table_column_model
127
- first_col_width = task_data.map{|t|t.name.size}.max
128
- tcm.column(0).width(first_col_width)
129
- tcm.column(1).width(size[0]-first_col_width-3)
130
- end
131
- def set_breadcrumbs
132
- crumbs = File.join(@path_stack.map{|i|"(#{i})"}.join('/'))
133
- @breadcrumbs.text = crumbs
134
- @breadcrumbs.repaint_all(true)
135
- end
136
- def pop_data
137
- if @data_stack.size > 1
138
- @path_stack.pop
139
- set_breadcrumbs
140
-
141
- popped = @data_stack.pop
142
- top= @data_stack.last
143
- set_table_data(top)
144
- end
145
- end
146
-
147
- def size
148
- return @window.default_for(:width), @window.default_for(:height)
149
- end
150
-
151
- def show_details_for(row)
152
- buffer = StringIO.new
153
- t = @table.get_value_at(row, 0)
154
- t.visit do |t|
155
- if t.output_string && t.output_string.length > 0
156
- buffer.puts(t.output_string)
157
- end
158
- if t.failure
159
- true
160
- else
161
- false
162
- end
163
- end
164
- @output.set_content(buffer.string)
165
- @output.set_focus_on(0)
166
- @output.repaint_all(true)
167
- end
168
-
169
- def start_editor_for_task(t)
170
- file_name = t.name
171
- return unless File.exists?(file_name)
172
-
173
- start_editor(file_name, 0, 0)
174
- end
175
-
176
- def start_editor(file, line, column)
177
- $log.error "starting editor for #{file}:#{line}"
178
- editor = ENV['EDITOR']
179
- editor = 'vi' unless editor
180
- cmd = "#{editor} +#{line} #{file}"
181
- shell_out(cmd)
182
- end
183
-
184
- def shell_out(cmd)
185
- @window.hide
186
- Ncurses.endwin
187
- system(cmd)
188
- Ncurses.refresh
189
- @window.show
190
- end
191
-
192
- def create_breadcrumbs(size)
193
- @breadcrumbs = Label.new @form do
194
- name 'breadcrumbs'
195
- row 0
196
- col 0
197
- width size[0]
198
- height 1
199
- end
200
- @breadcrumbs.display_length(size[0])
201
- @breadcrumbs.text = ''
202
- end
203
-
204
- def create_splitpane(size)
205
- @h_split = SplitPane.new @form do
206
- name 'mainpane'
207
- row 1
208
- col 0
209
- width size[0]
210
- height size[1]-3
211
- orientation :HORIZONTAL_SPLIT
212
- end
213
- end
214
-
215
- def create_output_view(size)
216
- @output = TextView.new nil
217
- @output.set_content('')
218
- @output.configure do
219
- bind_key(RakeGui.keycode('e')) do |code|
220
- line = selected_item
221
- file_pattern = '(.*?):(\d+):(\d*):? '
222
- error_pattern = Regexp.new("#{file_pattern}(error: .*)")
223
- warning_pattern = Regexp.new("#{file_pattern}(warning: .*)")
224
- md = error_pattern.match(line)
225
- md = warning_pattern.match(line) unless md
226
- if md
227
- file_name = md[1]
228
- line = md[2]
229
- col = md[3]
230
- rake_gui.start_editor(file_name, line, col)
231
- end
232
- end
233
- end
234
- end
235
-
236
- def create_components(size)
237
- create_breadcrumbs(size)
238
- @progress = Progress.new(@form, size)
239
- create_splitpane(size)
240
- @table = create_table
241
- push_table_data(Rake::Task.tasks.select {|t|t.comment})
242
-
243
- create_output_view(size)
244
- end
245
-
246
- def wire_components
247
- @h_split.first_component(@table)
248
- @h_split.second_component(@output)
249
- @h_split.set_resize_weight(0.50)
250
- end
251
-
252
- def run
253
- rake_gui = self
254
- begin
255
- VER::start_ncurses
256
-
257
- @window = VER::Window.root_window
258
- @form = Form.new @window
259
-
260
- create_components(size())
261
- wire_components
262
-
263
- @table.bind(:TABLE_TRAVERSAL_EVENT) do |e|
264
- rake_gui.show_details_for(e.newrow)
265
- end
266
-
267
- process_input_events
268
- rescue => e
269
- puts e
270
- end
271
- @window.destroy if @window
272
- VER::stop_ncurses
273
- end
274
- end
275
-
276
- task :ui do
277
- RakeGui.new.run
278
- end
279
-
280
- end
281
-
282
- optional_package(define_rbcurse_ui, nil)
283
- end
284
- end
@@ -1,14 +0,0 @@
1
- module Cxxproject
2
- module Utils
3
- class Executable
4
- def run_command(task, command)
5
- require 'open3'
6
- stdin, stdout, stderr = Open3.popen3(command)
7
- puts "StdOut:"
8
- puts stdout.readlines
9
- puts "StdErr:"
10
- puts stderr.readlines
11
- end
12
- end
13
- end
14
- end
@@ -1,71 +0,0 @@
1
- module Cxxproject
2
- module Utils
3
- class Progress
4
- def initialize(form, size)
5
- @width = size[0]
6
- initialize_progress(form, size)
7
- initialize_title(form, size)
8
- max = 100
9
- end
10
-
11
- def initialize_progress(form, size)
12
- @progress = Label.new form do
13
- name 'progress'
14
- row size[1]-1
15
- col 0
16
- width size[0]
17
- height 1
18
- end
19
- @progress.display_length(@width)
20
- @progress.text = ' '*@width
21
- end
22
-
23
- def initialize_title(form, size)
24
- @title = Label.new form do
25
- name 'title'
26
- row size[1]-2
27
- col 0
28
- width size[0]
29
- height 1
30
- end
31
- @title.display_length(@widget)
32
- @title.text = 'Idle'
33
- end
34
-
35
- def title=(t)
36
- @title_text = t
37
- format_title
38
- end
39
-
40
- def inc(i)
41
- @current += i
42
- format_title
43
- format_progress
44
- end
45
-
46
- def percentage
47
- return @current.to_f / @max.to_f
48
- end
49
-
50
- def format_progress
51
- total = (percentage * @width.to_f).to_i
52
- text = "#" * total
53
- @progress.text = text
54
- @progress.repaint_all(true)
55
- end
56
-
57
- def format_title
58
- format = "%3d%% - worked on %s "
59
- @title.text = sprintf(format, (percentage*100).to_i, @title_text)
60
- @title.repaint_all(true)
61
- end
62
-
63
- def max=(f)
64
- @max = f.to_f
65
- @current = 0.0
66
- format_progress
67
- format_title
68
- end
69
- end
70
- end
71
- end
@@ -1,51 +0,0 @@
1
- module Cxxproject
2
- module Utils
3
- class TaskTable < Table
4
- def initialize(rake_gui, form=nil, config={}, &block)
5
- super(form, config, &block)
6
- @rake_gui = rake_gui
7
- activate_keybindings
8
- end
9
- def activate_keybindings
10
- configure do
11
- bind_key(RakeGui.keycode('r')) do
12
- @rake_gui.invoke(self)
13
- end
14
- bind_key(RakeGui.keycode('d')) do
15
- @rake_gui.details(self)
16
- end
17
- bind_key(RakeGui.keycode('e')) do
18
- task = get_value_at(focussed_row, 0)
19
- @rake_gui.start_editor_for_task(task)
20
- end
21
- [RakeGui.keycode('p'), KEY_BACKSPACE, 127].each do |code|
22
- bind_key(code) do
23
- @rake_gui.pop_data
24
- end
25
- end
26
- end
27
- end
28
-
29
- def get_cell_renderer(row, col)
30
- renderer = super(row, col)
31
- content = get_value_at(row, 0)
32
- if renderer.nil?
33
- renderer = get_default_cell_renderer_for_class(content.class.to_s) if renderer.nil?
34
- column = @table_column_model.column(col)
35
- renderer.display_length column.width if column
36
- end
37
-
38
- if content && content.failure
39
- renderer.color('red')
40
- renderer.bgcolor('black')
41
- else
42
- renderer.color('white')
43
- renderer.bgcolor('black')
44
- end
45
- return renderer
46
- end
47
-
48
- end
49
-
50
- end
51
- end