cryptopunks-gui 0.0.3 → 0.0.7
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/README.md +97 -9
- data/VERSION +1 -1
- data/app/cryptopunks_gui.rb +223 -30
- data/cryptopunks-gui.gemspec +5 -5
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 697c564d1fcf6db201efa8144a72df008861afc9cb0dad432b6554610acf7a41
|
|
4
|
+
data.tar.gz: b500b6957a6f03f5cf0d82acb3354ceeb8bdce676283431d3803b8f6a4cbe79b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 88ae74464c874aac202584de37a467082bc2c32c98a503abf84ee34ed53f75a1ef337f97588bf04cfa7ccbc4bfa00fcd49881fe1d64a64525c4ce2f3bebf0146
|
|
7
|
+
data.tar.gz: adfcd69acbcd13814d9102038781b8550cf8488a5f9f8f009ec466e48274d154dcbfc75bc7946ddc41e3c8c109ea8bed6a655aaa703d2a86d9e2c80caab58944
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 0.0.7
|
|
4
|
+
|
|
5
|
+
- Multiple Punk Collections (https://github.com/cryptopunksnotdead/awesome-24px)
|
|
6
|
+
|
|
7
|
+
## 0.0.6
|
|
8
|
+
|
|
9
|
+
- Provide option to change output location
|
|
10
|
+
- Update default output location not to be a hidden location, switching `~/.cryptopunks` to `~/cryptopunks`
|
|
11
|
+
- Remember last selected output location upon app start
|
|
12
|
+
- Avoid hardcoding punk count in code (change 9999 to size of `@punks` array)
|
|
13
|
+
|
|
14
|
+
## 0.0.5
|
|
15
|
+
|
|
16
|
+
- Led style spacing option
|
|
17
|
+
- Led style round corner option
|
|
18
|
+
- Sketch style line option
|
|
19
|
+
- Apply zoom to led and sketch styles correctly
|
|
20
|
+
- Fixed issue with typing punk index higher than 9999 (ignore)
|
|
21
|
+
|
|
22
|
+
## 0.0.4
|
|
23
|
+
|
|
24
|
+
- Changed flip and mirror to checkbuttons
|
|
25
|
+
- Fixed zooming for led and sketch styles
|
|
26
|
+
|
|
3
27
|
## 0.0.3
|
|
4
28
|
|
|
5
29
|
- Style support (e.g. mirror, flip, sketch, led)
|
data/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# <img src="https://raw.githubusercontent.com/AndyObtiva/cryptopunks-gui/master/icons/cryptopunks-gui.png" height=85 /> CryptoPunks GUI 0.0.
|
|
1
|
+
# <img src="https://raw.githubusercontent.com/AndyObtiva/cryptopunks-gui/master/icons/cryptopunks-gui.png" height=85 /> CryptoPunks GUI 0.0.7
|
|
2
2
|
## Simplified Minting
|
|
3
3
|
[](http://badge.fury.io/rb/cryptopunks-gui)
|
|
4
4
|
|
|
5
5
|
This is a Graphical User Interface for the famous [cryptopunks Ruby gem](https://github.com/cryptopunksnotdead/cryptopunks/tree/master/cryptopunks).
|
|
6
6
|
|
|
7
|
-
It automatically downloads `punks.png` from https://github.com/larvalabs/cryptopunks
|
|
7
|
+
It automatically downloads image collection sprites on first use (e.g. `punks.png` from https://github.com/larvalabs/cryptopunks).
|
|
8
8
|
|
|
9
|
-
Minted cryptopunks are stored at
|
|
9
|
+
Minted cryptopunks are stored at `~/cryptopunks/` by default ([output location can be changed](#output-location)).
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
|
@@ -25,7 +25,7 @@ You can use CryptoPunks GUI via gem or via cloning repository.
|
|
|
25
25
|
Run:
|
|
26
26
|
|
|
27
27
|
```
|
|
28
|
-
gem install cryptopunks-gui -v0.0.
|
|
28
|
+
gem install cryptopunks-gui -v0.0.7
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Afterwards, run app via:
|
|
@@ -69,9 +69,61 @@ ruby app/cryptopunks_gui.rb
|
|
|
69
69
|
|
|
70
70
|
## Instructions
|
|
71
71
|
|
|
72
|
-
###
|
|
73
|
-
|
|
74
|
-
Change
|
|
72
|
+
### Collection
|
|
73
|
+
|
|
74
|
+
Change collection to pick a different collection of images.
|
|
75
|
+
|
|
76
|
+
There are currently 73 available collections (from https://github.com/cryptopunksnotdead/awesome-24px):
|
|
77
|
+
- Punks
|
|
78
|
+
- Mohawks
|
|
79
|
+
- Blondies
|
|
80
|
+
- Zombies
|
|
81
|
+
- Apes
|
|
82
|
+
- Aliens
|
|
83
|
+
- Golden Punks
|
|
84
|
+
- Halloween Punks
|
|
85
|
+
- Front Punks
|
|
86
|
+
- More Punks
|
|
87
|
+
- Expansion Punks
|
|
88
|
+
- Avalanche Punks
|
|
89
|
+
- Intl Punks
|
|
90
|
+
- Ape Punks
|
|
91
|
+
- Alien Clan
|
|
92
|
+
- Bored Apes Blue
|
|
93
|
+
- Bored Apes Red
|
|
94
|
+
- Bored Apes Neon Glow
|
|
95
|
+
- Bored Apes Stars and Stripes
|
|
96
|
+
- Bored Apes Acid
|
|
97
|
+
- Cool Cats
|
|
98
|
+
- Cool Cats Mohawks
|
|
99
|
+
- Cool Cats Ninjas
|
|
100
|
+
- Cool Cats TV Heads
|
|
101
|
+
- Cool Cats Pirates
|
|
102
|
+
- Cool Cats Unicorns
|
|
103
|
+
- Cool Cats Dragons
|
|
104
|
+
- Cool Cats Frogs
|
|
105
|
+
- Pudgy Penguins
|
|
106
|
+
- Dodge
|
|
107
|
+
- Rocks
|
|
108
|
+
- Punk Rocks
|
|
109
|
+
- Tulips
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+

|
|
113
|
+
|
|
114
|
+

|
|
115
|
+
|
|
116
|
+

|
|
117
|
+
|
|
118
|
+

|
|
119
|
+
|
|
120
|
+

|
|
121
|
+
|
|
122
|
+

|
|
123
|
+
|
|
124
|
+
### Image Index
|
|
125
|
+
|
|
126
|
+
Change image index to pick a different image.
|
|
75
127
|
|
|
76
128
|

|
|
77
129
|
|
|
@@ -99,14 +151,50 @@ Change palette to get different punk colors.
|
|
|
99
151
|
|
|
100
152
|
Change style to get different punk looks.
|
|
101
153
|
|
|
102
|
-
|
|
154
|
+
#### Normal Style
|
|
155
|
+
|
|
156
|
+

|
|
103
157
|
|
|
104
|
-
|
|
158
|
+
#### Led Style
|
|
105
159
|
|
|
106
160
|

|
|
107
161
|
|
|
162
|
+
##### Led Spacing
|
|
163
|
+
|
|
164
|
+

|
|
165
|
+
|
|
166
|
+
##### Led Round Corner
|
|
167
|
+
|
|
168
|
+

|
|
169
|
+
|
|
170
|
+
#### Sketch Style
|
|
171
|
+
|
|
108
172
|

|
|
109
173
|
|
|
174
|
+
##### Sketch Line
|
|
175
|
+
|
|
176
|
+

|
|
177
|
+
|
|
178
|
+
### Mirror/Flip
|
|
179
|
+
|
|
180
|
+
Check mirror and/or flip to apply punk transformations. Can be combined with different palettes and styles.
|
|
181
|
+
|
|
182
|
+

|
|
183
|
+
|
|
184
|
+

|
|
185
|
+
|
|
186
|
+

|
|
187
|
+
|
|
188
|
+

|
|
189
|
+
|
|
190
|
+

|
|
191
|
+
|
|
192
|
+
### Output Location
|
|
193
|
+
|
|
194
|
+
You may select a new output location by clicking on the `...` button.
|
|
195
|
+
|
|
196
|
+

|
|
197
|
+
|
|
110
198
|
## TODO
|
|
111
199
|
|
|
112
200
|
[TODO.md](TODO.md)
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.7
|
data/app/cryptopunks_gui.rb
CHANGED
|
@@ -5,25 +5,67 @@ require 'fileutils'
|
|
|
5
5
|
require 'net/http'
|
|
6
6
|
require 'uri'
|
|
7
7
|
require 'glimmer/data_binding/observer'
|
|
8
|
+
require 'yaml'
|
|
8
9
|
require 'puts_debuggerer'
|
|
9
10
|
|
|
10
11
|
class CryptopunksGui
|
|
11
12
|
include Glimmer
|
|
12
13
|
|
|
13
|
-
PALETTES = ['Standard'] + (Palette8bit.constants).map(&:name).map {|palette| palette.split('_').map(&:capitalize).join(' ')}.reject { |palette| palette.include?(' ') }
|
|
14
|
-
STYLES = ['Normal', '
|
|
14
|
+
PALETTES = ['Standard'] + (Palette8bit.constants).map(&:name).map {|palette| palette.split('_').map(&:capitalize).join(' ')}.reject { |palette| palette.include?(' ') }.sort
|
|
15
|
+
STYLES = ['Normal', 'Led', 'Sketch']
|
|
16
|
+
COLLECTION_URL_MAP = {
|
|
17
|
+
'Punks' => 'https://raw.githubusercontent.com/larvalabs/cryptopunks/master/punks.png',
|
|
18
|
+
'Mohawks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/mohawks.png',
|
|
19
|
+
'Blondies' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/blondies.png',
|
|
20
|
+
'Zombies' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/zombies.png',
|
|
21
|
+
'Apes' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/apes.png',
|
|
22
|
+
'Aliens' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/aliens.png',
|
|
23
|
+
'Golden Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/goldenpunks.png',
|
|
24
|
+
'Halloween Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/halloweenpunks.png',
|
|
25
|
+
'Front Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/frontpunks.png',
|
|
26
|
+
'More Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/morepunks.png',
|
|
27
|
+
'Expansion Punks' => 'https://expansionpunks.com/provenance/expansionpunks.png',
|
|
28
|
+
'Avalanche Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/avalanchepunks.png',
|
|
29
|
+
'Intl Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/intlpunks.png',
|
|
30
|
+
'Ape Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/apepunks.png',
|
|
31
|
+
'Alien Clan' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/alienclan.png',
|
|
32
|
+
'Bored Apes Blue' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_blue.png',
|
|
33
|
+
'Bored Apes Red' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_red.png',
|
|
34
|
+
'Bored Apes Neon Glow' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_neon_glow.png',
|
|
35
|
+
'Bored Apes Stars and Stripes' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_stars_and_stripes.png',
|
|
36
|
+
'Bored Apes Acid' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_acid.png',
|
|
37
|
+
'Cool Cats' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats.png',
|
|
38
|
+
'Cool Cats Mohawks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_mohawks.png',
|
|
39
|
+
'Cool Cats Ninjas' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_ninjas.png',
|
|
40
|
+
'Cool Cats TV Heads' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_tvheads.png',
|
|
41
|
+
'Cool Cats Pirates' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_pirates.png',
|
|
42
|
+
'Cool Cats Unicorns' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_unicorns.png',
|
|
43
|
+
'Cool Cats Dragons' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_dragons.png',
|
|
44
|
+
'Cool Cats Frogs' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_frogs.png',
|
|
45
|
+
'Pudgy Penguins' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/pudgypenguins.png',
|
|
46
|
+
'Dodge' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/dodge.png',
|
|
47
|
+
'Rocks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/rocks.png',
|
|
48
|
+
'Punk Rocks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/punkrocks.png',
|
|
49
|
+
'Tulips' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/tulips.png',
|
|
50
|
+
}
|
|
15
51
|
|
|
16
|
-
attr_accessor :
|
|
52
|
+
attr_accessor :collection, :image_index, :zoom, :palette, :style, :led_spacing, :led_round_corner, :sketch_line, :flip, :mirror
|
|
17
53
|
|
|
18
54
|
def initialize
|
|
19
|
-
|
|
55
|
+
initialize_punk_directory
|
|
56
|
+
initialize_collection
|
|
57
|
+
load_config
|
|
20
58
|
initialize_defaults
|
|
21
59
|
observe_image_attribute_changes
|
|
22
60
|
create_gui
|
|
23
|
-
self.
|
|
61
|
+
self.image_index = 0
|
|
24
62
|
@root.open
|
|
25
63
|
end
|
|
26
64
|
|
|
65
|
+
def collection_options
|
|
66
|
+
COLLECTION_URL_MAP.keys
|
|
67
|
+
end
|
|
68
|
+
|
|
27
69
|
def palette_options
|
|
28
70
|
PALETTES
|
|
29
71
|
end
|
|
@@ -32,47 +74,87 @@ class CryptopunksGui
|
|
|
32
74
|
STYLES
|
|
33
75
|
end
|
|
34
76
|
|
|
35
|
-
def
|
|
36
|
-
@punk_directory = File.join(Dir.home, '
|
|
77
|
+
def initialize_punk_directory
|
|
78
|
+
@punk_directory = @punk_config_directory = File.join(Dir.home, 'cryptopunks')
|
|
37
79
|
FileUtils.mkdir_p(@punk_directory)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def initialize_collection
|
|
83
|
+
return if @collection && @collection == @last_collection
|
|
84
|
+
@collection ||= COLLECTION_URL_MAP.keys.first
|
|
85
|
+
url = COLLECTION_URL_MAP[@collection]
|
|
86
|
+
@punk_file = File.join(@punk_config_directory, File.basename(url, '.png'))
|
|
87
|
+
File.write(@punk_file, Net::HTTP.get(URI(url))) unless File.exist?(@punk_file)
|
|
88
|
+
@images ||= {}
|
|
89
|
+
@images[@collection] ||= Punks::Image::Composite.read(@punk_file)
|
|
90
|
+
@last_collection = @collection
|
|
91
|
+
self.image_index = 0
|
|
92
|
+
@image_index_spinbox.to = @images[@collection].size - 1 if @image_index_spinbox
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def load_config
|
|
96
|
+
@punk_config_file = File.join(@punk_config_directory, 'cryptopunks.yml')
|
|
97
|
+
FileUtils.touch(@punk_config_file)
|
|
98
|
+
@punk_config = YAML.load(File.read(@punk_config_file)) || {punk_directory: @punk_directory}
|
|
99
|
+
@punk_directory = @punk_config[:punk_directory]
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def save_config
|
|
103
|
+
File.write(@punk_config_file, YAML.dump(@punk_config))
|
|
41
104
|
end
|
|
42
105
|
|
|
43
106
|
def initialize_defaults
|
|
107
|
+
@collection = COLLECTION_URL_MAP.keys.first
|
|
44
108
|
@zoom = 12
|
|
45
109
|
@palette = PALETTES.first
|
|
46
110
|
@style = STYLES.first
|
|
111
|
+
@led_spacing = 2
|
|
112
|
+
@led_round_corner = false
|
|
113
|
+
@sketch_line = 1
|
|
114
|
+
@mirror = false
|
|
115
|
+
@flip = false
|
|
47
116
|
end
|
|
48
117
|
|
|
49
118
|
def observe_image_attribute_changes
|
|
50
119
|
observer = Glimmer::DataBinding::Observer.proc { generate_image }
|
|
51
|
-
observer.observe(self, :
|
|
120
|
+
observer.observe(self, :collection)
|
|
121
|
+
observer.observe(self, :image_index)
|
|
52
122
|
observer.observe(self, :zoom)
|
|
53
123
|
observer.observe(self, :palette)
|
|
54
124
|
observer.observe(self, :style)
|
|
125
|
+
observer.observe(self, :led_spacing)
|
|
126
|
+
observer.observe(self, :led_round_corner)
|
|
127
|
+
observer.observe(self, :sketch_line)
|
|
128
|
+
observer.observe(self, :mirror)
|
|
129
|
+
observer.observe(self, :flip)
|
|
55
130
|
end
|
|
56
131
|
|
|
57
132
|
def generate_image
|
|
58
|
-
|
|
133
|
+
initialize_collection
|
|
134
|
+
return if @image_index.to_i > @images[@collection].size
|
|
135
|
+
image_location = File.join(@punk_directory, "#{@collection.gsub(' ', '').downcase}-#{@image_index}#{"x#{@zoom}" if @zoom.to_i > 1}#{"-#{@palette.underscore}" if @palette != PALETTES.first}#{"-#{@style.underscore}" if @style != STYLES.first}.png")
|
|
59
136
|
puts "Writing punk image to #{image_location}"
|
|
60
|
-
selected_punk = @
|
|
137
|
+
selected_punk = @images[@collection][@image_index.to_i]
|
|
61
138
|
selected_punk = selected_punk.change_palette8bit(Palette8bit.const_get(@palette.gsub(' ', '_').upcase.to_sym)) if @palette != PALETTES.first
|
|
62
139
|
@original_zoom = @zoom
|
|
63
140
|
if @style != STYLES.first
|
|
64
|
-
|
|
65
|
-
if @style
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
141
|
+
style_options = {}
|
|
142
|
+
if @style == 'Led'
|
|
143
|
+
style_options[:spacing] = @led_spacing.to_i
|
|
144
|
+
style_options[:round_corner] = @led_round_corner
|
|
145
|
+
end
|
|
146
|
+
if @style == 'Sketch'
|
|
147
|
+
style_options[:line] = @sketch_line.to_i
|
|
70
148
|
end
|
|
149
|
+
selected_punk = selected_punk.send(@style.underscore, @zoom.to_i, **style_options)
|
|
71
150
|
end
|
|
72
|
-
selected_punk = selected_punk.
|
|
151
|
+
selected_punk = selected_punk.mirror if @mirror
|
|
152
|
+
selected_punk = selected_punk.flip if @flip
|
|
153
|
+
selected_punk = selected_punk.zoom(@zoom.to_i) if @style == STYLES.first
|
|
73
154
|
selected_punk.save(image_location)
|
|
74
155
|
@image_label.image = image_location
|
|
75
|
-
@
|
|
156
|
+
@output_location_entry.text = image_location
|
|
157
|
+
@previous_style = @style
|
|
76
158
|
notify_observers(:zoom) if @zoom != @original_zoom
|
|
77
159
|
end
|
|
78
160
|
|
|
@@ -83,17 +165,20 @@ class CryptopunksGui
|
|
|
83
165
|
|
|
84
166
|
frame {
|
|
85
167
|
label {
|
|
86
|
-
text '
|
|
87
|
-
|
|
168
|
+
text 'Collection:'
|
|
169
|
+
}
|
|
170
|
+
combobox {
|
|
171
|
+
readonly true
|
|
172
|
+
text <=> [self, :collection]
|
|
88
173
|
}
|
|
89
174
|
|
|
90
175
|
label {
|
|
91
|
-
text '
|
|
176
|
+
text 'Image Index:'
|
|
92
177
|
}
|
|
93
|
-
spinbox {
|
|
178
|
+
@image_index_spinbox = spinbox {
|
|
94
179
|
from 0
|
|
95
|
-
to @
|
|
96
|
-
text <=> [self, :
|
|
180
|
+
to @images[@collection].size - 1
|
|
181
|
+
text <=> [self, :image_index]
|
|
97
182
|
}
|
|
98
183
|
|
|
99
184
|
label {
|
|
@@ -118,14 +203,66 @@ class CryptopunksGui
|
|
|
118
203
|
}
|
|
119
204
|
combobox {
|
|
120
205
|
readonly true
|
|
121
|
-
text <=> [self, :style,
|
|
206
|
+
text <=> [self, :style, after_write: ->(val) {add_style_options}]
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
@style_options_frame = frame {
|
|
210
|
+
padding 0
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
frame {
|
|
214
|
+
padding 0
|
|
215
|
+
|
|
216
|
+
checkbutton {
|
|
217
|
+
grid row: 0, column: 0, column_weight: 0
|
|
218
|
+
variable <=> [self, :mirror]
|
|
219
|
+
}
|
|
220
|
+
label {
|
|
221
|
+
grid row: 0, column: 1
|
|
222
|
+
text 'Mirror'
|
|
223
|
+
|
|
224
|
+
on('Button-1') do
|
|
225
|
+
self.mirror = !mirror
|
|
226
|
+
end
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
checkbutton {
|
|
230
|
+
grid row: 0, column: 2
|
|
231
|
+
variable <=> [self, :flip]
|
|
232
|
+
}
|
|
233
|
+
label {
|
|
234
|
+
grid row: 0, column: 3
|
|
235
|
+
text 'Flip'
|
|
236
|
+
|
|
237
|
+
on('Button-1') do
|
|
238
|
+
self.flip = !flip
|
|
239
|
+
end
|
|
240
|
+
}
|
|
122
241
|
}
|
|
123
242
|
|
|
124
243
|
label {
|
|
125
244
|
text 'Output Location:'
|
|
126
245
|
}
|
|
127
|
-
|
|
128
|
-
|
|
246
|
+
frame {
|
|
247
|
+
padding 0
|
|
248
|
+
|
|
249
|
+
@output_location_entry = entry {
|
|
250
|
+
grid row: 0, column: 0
|
|
251
|
+
readonly true
|
|
252
|
+
width 47
|
|
253
|
+
}
|
|
254
|
+
button {
|
|
255
|
+
grid row: 0, column: 1
|
|
256
|
+
text '...'
|
|
257
|
+
width 1.1
|
|
258
|
+
|
|
259
|
+
on('command') do
|
|
260
|
+
@punk_directory = choose_directory(parent: @root)
|
|
261
|
+
@punk_config[:punk_directory] = @punk_directory
|
|
262
|
+
save_config
|
|
263
|
+
generate_image
|
|
264
|
+
end
|
|
265
|
+
}
|
|
129
266
|
}
|
|
130
267
|
|
|
131
268
|
@image_label = label {
|
|
@@ -134,6 +271,62 @@ class CryptopunksGui
|
|
|
134
271
|
}
|
|
135
272
|
}
|
|
136
273
|
end
|
|
274
|
+
|
|
275
|
+
def add_style_options
|
|
276
|
+
@style_options_frame.content {
|
|
277
|
+
@style_options_frame.children.each(&:destroy)
|
|
278
|
+
if @style == 'Led'
|
|
279
|
+
frame {
|
|
280
|
+
padding 0
|
|
281
|
+
|
|
282
|
+
label {
|
|
283
|
+
grid row: 0, column: 0, column_weight: 0
|
|
284
|
+
text 'Spacing:'
|
|
285
|
+
}
|
|
286
|
+
spinbox {
|
|
287
|
+
grid row: 0, column: 1
|
|
288
|
+
from 1
|
|
289
|
+
to 72
|
|
290
|
+
text <=> [self, :led_spacing]
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
checkbutton {
|
|
294
|
+
grid row: 0, column: 2
|
|
295
|
+
variable <=> [self, :led_round_corner]
|
|
296
|
+
}
|
|
297
|
+
label {
|
|
298
|
+
grid row: 0, column: 3
|
|
299
|
+
text 'Round Corner'
|
|
300
|
+
|
|
301
|
+
on('Button-1') do
|
|
302
|
+
self.led_round_corner = !led_round_corner
|
|
303
|
+
end
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
elsif @style == 'Sketch'
|
|
307
|
+
frame {
|
|
308
|
+
padding 0
|
|
309
|
+
|
|
310
|
+
label {
|
|
311
|
+
grid row: 0, column: 0, column_weight: 0
|
|
312
|
+
text 'Line:'
|
|
313
|
+
}
|
|
314
|
+
spinbox {
|
|
315
|
+
grid row: 0, column: 1
|
|
316
|
+
from 1
|
|
317
|
+
to 72
|
|
318
|
+
text <=> [self, :sketch_line]
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else
|
|
322
|
+
frame { # filler
|
|
323
|
+
padding 0
|
|
324
|
+
height 0
|
|
325
|
+
width 0
|
|
326
|
+
}
|
|
327
|
+
end
|
|
328
|
+
}
|
|
329
|
+
end
|
|
137
330
|
end
|
|
138
331
|
|
|
139
332
|
CryptopunksGui.new.launch
|
data/cryptopunks-gui.gemspec
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: cryptopunks-gui 0.0.
|
|
5
|
+
# stub: cryptopunks-gui 0.0.7 ruby app
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "cryptopunks-gui".freeze
|
|
9
|
-
s.version = "0.0.
|
|
9
|
+
s.version = "0.0.7"
|
|
10
10
|
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
12
|
s.require_paths = ["app".freeze]
|
|
13
13
|
s.authors = ["Andy Maleh".freeze]
|
|
14
|
-
s.date = "2021-10-
|
|
15
|
-
s.description = "
|
|
14
|
+
s.date = "2021-10-28"
|
|
15
|
+
s.description = "CryptoPunks GUI for Simplified Minting - Built with Glimmer DSL for Tk (requires ActiveTcl to run cryptopunks-gui command)".freeze
|
|
16
16
|
s.email = "andy.am@gmail.com".freeze
|
|
17
17
|
s.executables = ["cryptopunks-gui".freeze]
|
|
18
18
|
s.extra_rdoc_files = [
|
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
|
|
|
34
34
|
s.licenses = ["MIT".freeze]
|
|
35
35
|
s.post_install_message = "To launch CryptoPunks GUI, run command: cryptopunks-gui".freeze
|
|
36
36
|
s.rubygems_version = "3.2.22".freeze
|
|
37
|
-
s.summary = "
|
|
37
|
+
s.summary = "CryptoPunks GUI for Simplified Minting".freeze
|
|
38
38
|
|
|
39
39
|
if s.respond_to? :specification_version then
|
|
40
40
|
s.specification_version = 4
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cryptopunks-gui
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andy Maleh
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-10-
|
|
11
|
+
date: 2021-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: glimmer-dsl-tk
|
|
@@ -108,7 +108,7 @@ dependencies:
|
|
|
108
108
|
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '0'
|
|
111
|
-
description:
|
|
111
|
+
description: CryptoPunks GUI for Simplified Minting - Built with Glimmer DSL for Tk
|
|
112
112
|
(requires ActiveTcl to run cryptopunks-gui command)
|
|
113
113
|
email: andy.am@gmail.com
|
|
114
114
|
executables:
|
|
@@ -149,5 +149,5 @@ requirements: []
|
|
|
149
149
|
rubygems_version: 3.2.22
|
|
150
150
|
signing_key:
|
|
151
151
|
specification_version: 4
|
|
152
|
-
summary:
|
|
152
|
+
summary: CryptoPunks GUI for Simplified Minting
|
|
153
153
|
test_files: []
|