libguib 1.1.0

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.
data/src/style.rb ADDED
@@ -0,0 +1,116 @@
1
+ # Copyright (c) 2004-2006 by Henon (meinrad dot recheis at gmail dot com)
2
+
3
+ require "libGUIb14" if __FILE__ == $0 # MAKE_DROP
4
+
5
+ class StyleVisitor
6
+ def apply_to(widget, recursive = true)
7
+ widget.recursive { |w|
8
+ identifier = "#{w.class.to_s.gsub(/Fox|::|FX/, "")}_style"
9
+ send identifier, w # if respond_to? identifier
10
+ break unless recursive
11
+ }
12
+ end
13
+ end
14
+
15
+ class FlatStyle < StyleVisitor
16
+ attr_accessor :frameColor
17
+ def initialize
18
+ @frameColor = Fox::FXRGB 0, 0, 0
19
+ @backColor = Fox::FXRGB 230, 230, 230
20
+ end
21
+
22
+ def Button_style w
23
+ w.frameStyle = Fox::FRAME_LINE
24
+ w.hiliteColor = @frameColor
25
+ w.shadowColor = @frameColor
26
+ w.backColor = @backColor
27
+ end
28
+
29
+ def TextField_style w
30
+ w.frameStyle = Fox::FRAME_LINE
31
+ w.borderColor = Fox::FXRGB 168, 168, 168
32
+ # w.shadowColor=@frameColor
33
+ end
34
+
35
+ def method_missing(*args)
36
+ identifier, w = args
37
+ unless /style/.match?(identifier.to_s)
38
+ raise args.join(",")
39
+ end
40
+ w.backColor = @backColor
41
+ end
42
+ end
43
+
44
+ # unit test
45
+ if __FILE__ == $0 # MAKE_CUTOFF
46
+
47
+ # source generated by foxGUIb 0.5.1
48
+ class DialogBox
49
+ def initialize(parent)
50
+ construct_widget_tree(parent)
51
+ init if respond_to? :init
52
+ end
53
+
54
+ def construct_widget_tree(parent)
55
+ @topwin =
56
+ FX::MainWindow.new(parent) { |w|
57
+ @dialogBox = w
58
+ w.wdg_name = "dialogBox"
59
+ w.width = 500
60
+ w.shown = true
61
+ w.y = 552
62
+ w.height = 400
63
+ w.x = 121
64
+ FX::Label.new(@dialogBox) { |w|
65
+ @label = w
66
+ w.wdg_name = "label"
67
+ w.width = 38
68
+ w.height = 19
69
+ }
70
+ FX::TextField.new(@dialogBox) { |w|
71
+ @textfield = w
72
+ w.wdg_name = "textfield"
73
+ w.width = 86
74
+ w.y = 23
75
+ w.height = 21
76
+ w.numColumns = 10
77
+ }
78
+ FX::Button.new(@dialogBox) { |w|
79
+ @button = w
80
+ w.wdg_name = "button"
81
+ w.width = 51
82
+ w.y = 48
83
+ w.height = 23
84
+ }
85
+ FX::CheckButton.new(@dialogBox) { |w|
86
+ @checkbutton = w
87
+ w.wdg_name = "checkbutton"
88
+ w.width = 103
89
+ w.y = 75
90
+ w.height = 19
91
+ }
92
+ FX::RadioButton.new(@dialogBox) { |w|
93
+ @radiobutton = w
94
+ w.wdg_name = "radiobutton"
95
+ w.width = 99
96
+ w.y = 98
97
+ w.height = 19
98
+ }
99
+ }
100
+ end
101
+ attr_reader :topwin
102
+ attr_reader :dialogBox
103
+ attr_reader :label
104
+ attr_reader :textfield
105
+ attr_reader :button
106
+ attr_reader :checkbutton
107
+ attr_reader :radiobutton
108
+ end
109
+
110
+ app = FX::App.new
111
+ w = DialogBox.new app
112
+ w.topwin.show(Fox::PLACEMENT_SCREEN)
113
+ FlatStyle.new.apply_to w.topwin
114
+ app.create
115
+ app.run
116
+ end
data/src/table.rb ADDED
@@ -0,0 +1,84 @@
1
+ # Copyright (c) 2004-2006 by Henon (meinrad dot recheis at gmail dot com)
2
+
3
+ module FX
4
+ class TableWidget < FX::VerticalFrame
5
+ HEADER_COLOR = Fox::FXRGB(200, 200, 200)
6
+
7
+ def initialize(*args)
8
+ super
9
+ @autoresize_titles = true
10
+ Header.new(self) { |w|
11
+ @header = w
12
+ w.headerStyle = HEADER_HORIZONTAL | HEADER_TRACKING
13
+ w.frameStyle = 0
14
+ w.backColor = HEADER_COLOR
15
+ w.connect(SEL_CONFIGURE) {
16
+ set_title_widths
17
+ }
18
+ w.layoutHints = LAYOUT_FILL_X | LAYOUT_FIX_HEIGHT
19
+ w.height = 20
20
+ }
21
+ FXMatrix.new(self, 1) { |w|
22
+ @matrix = w
23
+ }
24
+ end
25
+
26
+ attr_accessor :autoresize_titles
27
+
28
+ def create
29
+ super
30
+ end
31
+
32
+ def set_titles stringarr
33
+ stringarr.each { |str|
34
+ @header.appendItem(" " + str)
35
+ }
36
+ set_cols stringarr.size
37
+ set_title_widths
38
+ end
39
+
40
+ def set_title_widths numarray = nil
41
+ if numarray
42
+ else # ok, calculate the item widths from their titles
43
+ total = 0
44
+ totalsize = 0
45
+ i = 0
46
+ @header.each { |item|
47
+ total += item.text.size
48
+ totalsize += item.size
49
+ item.data = i
50
+ i += 1
51
+ }
52
+ if @autoresize_titles or totalsize == 0
53
+ quant = (@header.width / total.to_f)
54
+ offset = 0
55
+ @header.each { |item|
56
+ i = item.data
57
+ size = (item.text.size * quant).to_i
58
+ @header.setItemSize i, size
59
+ # @header.setItemOffset i, offset
60
+ offset += size
61
+ }
62
+ end
63
+ end
64
+ end
65
+
66
+ def set_cols n
67
+ end
68
+
69
+ def set_rows n
70
+ end
71
+ end
72
+ end
73
+
74
+ # unit test
75
+ if __FILE__ == $0
76
+ app = App.new
77
+ mw = MainWindow.new app
78
+ w = TableWidget.new mw
79
+ mw.show(0)
80
+ app.create
81
+ w.set_titles ["title1", "h2", "supadupa-long title"]
82
+
83
+ app.run
84
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,147 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: libguib
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Meinrad Recheis aka Henon
8
+ - Lars Kanis
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain:
12
+ - |
13
+ -----BEGIN CERTIFICATE-----
14
+ MIIDLjCCAhagAwIBAgIBDDANBgkqhkiG9w0BAQsFADA9MQ4wDAYDVQQDDAVrYW5p
15
+ czEXMBUGCgmSJomT8ixkARkWB2NvbWNhcmQxEjAQBgoJkiaJk/IsZAEZFgJkZTAe
16
+ Fw0yNDA1MDIxMTAwNDVaFw0yNTA1MDIxMTAwNDVaMD0xDjAMBgNVBAMMBWthbmlz
17
+ MRcwFQYKCZImiZPyLGQBGRYHY29tY2FyZDESMBAGCgmSJomT8ixkARkWAmRlMIIB
18
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApop+rNmg35bzRugZ21VMGqI6
19
+ HGzPLO4VHYncWn/xmgPU/ZMcZdfj6MzIaZJ/czXyt4eHpBk1r8QOV3gBXnRXEjVW
20
+ 9xi+EdVOkTV2/AVFKThcbTAQGiF/bT1n2M+B1GTybRzMg6hyhOJeGPqIhLfJEpxn
21
+ lJi4+ENAVT4MpqHEAGB8yFoPC0GqiOHQsdHxQV3P3c2OZqG+yJey74QtwA2tLcLn
22
+ Q53c63+VLGsOjODl1yPn/2ejyq8qWu6ahfTxiIlSar2UbwtaQGBDFdb2CXgEufXT
23
+ L7oaPxlmj+Q2oLOfOnInd2Oxop59HoJCQPsg8f921J43NCQGA8VHK6paxIRDLQID
24
+ AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUvgTdT7fe
25
+ x17ugO3IOsjEJwW7KP4wDQYJKoZIhvcNAQELBQADggEBAH+LA+CcA9vbbqtuhK4J
26
+ lG1lQwA+hCKiueQgVsepNbXyDzx6PMC8ap/bFaKSaoUWABBA/bsh3jDNXT/eVZrN
27
+ lFP8cVGrznSYIBG8D/QQmJKpvDBJgnC4Zk01HkhYlqJC4qCTn9X+/uZNHLPLbAEL
28
+ xl3P43zyL3GQb1IP9bp0xV6oxwG9FO9Rk8bYDojky/69ylowFI5aODS39v01Siu2
29
+ FsEjM9tMSNb7lQRywQ/432KXi+8AAPTm+wdGnlt3wLE9w2TTpGUBsNKk+QiytTZO
30
+ zwbjAdVlRm0pg/vpDzzFmRf1GYVckMm8hpCRt8BP0akAbNyw1snYvZBwgLqxztru
31
+ bEo=
32
+ -----END CERTIFICATE-----
33
+ date: 2024-07-02 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: fxruby
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 1.6.0
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 1.6.0
49
+ - !ruby/object:Gem::Dependency
50
+ name: bundler
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '1.11'
56
+ - - "<="
57
+ - !ruby/object:Gem::Version
58
+ version: '3.0'
59
+ type: :development
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '1.11'
66
+ - - "<="
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '13.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '13.0'
83
+ description: Helper library for the Fox GUI builder
84
+ email:
85
+ - meinrad.recheis@gmail.com
86
+ - lars@greiz-reinsdorf.de
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - install-pkg.rb
92
+ - install.rb
93
+ - lgpl.txt
94
+ - lib/libGUIb14.rb
95
+ - lib/libGUIb16.rb
96
+ - libguib.gemspec
97
+ - readme.txt
98
+ - src/Container.rb
99
+ - src/FileSelector.rb
100
+ - src/FileSelector.rbin
101
+ - src/PathSelector-extension.rb
102
+ - src/PathSelector.rb
103
+ - src/PathSelector.rbin
104
+ - src/__FX__.rb
105
+ - src/_guib_FileSelector.rb
106
+ - src/app.rb
107
+ - src/dcwindow.rb
108
+ - src/event_listener.rb
109
+ - src/fox_classes.rb
110
+ - src/fxbase.rb
111
+ - src/fxobjects.rb
112
+ - src/icon_not_found.png
113
+ - src/main-window.rb
114
+ - src/make.rb
115
+ - src/middle-right-mouse.rb
116
+ - src/radio_group.rb
117
+ - src/radio_matrix.rb
118
+ - src/relative-path.rb
119
+ - src/style.rb
120
+ - src/table.rb
121
+ homepage: https://github.com/larskanis/foxGUIb
122
+ licenses:
123
+ - LGPL-2.1
124
+ metadata: {}
125
+ post_install_message:
126
+ rdoc_options: []
127
+ require_paths:
128
+ - lib
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '2.5'
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '4.0'
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ requirements: []
143
+ rubygems_version: 3.5.11
144
+ signing_key:
145
+ specification_version: 4
146
+ summary: Helper library for foxGUIb
147
+ test_files: []
metadata.gz.sig ADDED
Binary file