cxxproject 0.5.59 → 0.5.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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