wxruby3-mdap 1.0.0.pre.rc.1
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 +7 -0
- data/.yardopts +20 -0
- data/Apache2.0-LICENSE +202 -0
- data/CC01.0-LICENSE.md +30 -0
- data/CCBY4.0-LICENSE +396 -0
- data/CREDITS.md +15 -0
- data/LICENSE +21 -0
- data/README.md +95 -0
- data/assets/logo.svg +170 -0
- data/lib/wx/mdap/art.rb +480 -0
- data/lib/wx/mdap/provider.rb +248 -0
- data/lib/wx/mdap/version.rb +12 -0
- data/lib/wx/mdap.rb +10 -0
- data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +91 -0
- data/rakelib/yard/templates/default/fulldoc/html/full_list.erb +38 -0
- data/rakelib/yard/templates/default/fulldoc/html/setup.rb +38 -0
- data/rakelib/yard/templates/default/layout/html/setup.rb +5 -0
- data/rakelib/yard/templates/default/tags/html/wxrb_require.erb +10 -0
- data/rakelib/yard/templates/default/tags/setup.rb +16 -0
- data/rakelib/yard/yard/relative_markdown_links/version.rb +8 -0
- data/rakelib/yard/yard/relative_markdown_links.rb +49 -0
- data/rakelib/yard/yard-custom-templates.rb +5 -0
- data/rakelib/yard/yard-relative_markdown_links.rb +4 -0
- metadata +87 -0
data/lib/wx/mdap/art.rb
ADDED
@@ -0,0 +1,480 @@
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
2
|
+
#
|
3
|
+
# This software is released under the MIT license.
|
4
|
+
|
5
|
+
|
6
|
+
module Wx
|
7
|
+
|
8
|
+
# Namespace for Material Design Art Provider elements.
|
9
|
+
module MDAP
|
10
|
+
|
11
|
+
# @api private
|
12
|
+
class << self
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
# private registry for collected art clients and their art
|
17
|
+
def art_registry
|
18
|
+
@art_registry ||= {}
|
19
|
+
end
|
20
|
+
|
21
|
+
# check the private registry for availability of art for given client and art ids
|
22
|
+
def get_art(client_id, art_id)
|
23
|
+
return nil unless art_registry.has_key?(client_id)
|
24
|
+
art_registry[client_id][:art][art_id]
|
25
|
+
end
|
26
|
+
|
27
|
+
# private registry mapping art client groups (FLUENT_UI, FONT_AWESOME etc.) to client ids
|
28
|
+
def art_client_groups
|
29
|
+
@art_client_groups ||= {}
|
30
|
+
end
|
31
|
+
|
32
|
+
# Base Art mapper class
|
33
|
+
# Art mapper classes are used for the mapping standard wxRuby3 Art (Client) ids to
|
34
|
+
# Material Design ids
|
35
|
+
# @api private
|
36
|
+
class ArtMapper
|
37
|
+
def get_art(_client_id, _art_id)
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
|
41
|
+
class << self
|
42
|
+
def null_mapper
|
43
|
+
@null_mapper ||= ArtMapper.new
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Toplevel standard art mapper
|
49
|
+
# @api private
|
50
|
+
class StdArtMapper < ArtMapper
|
51
|
+
|
52
|
+
def initialize
|
53
|
+
@map = {}
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_mapper(client_id)
|
57
|
+
@map[client_id] || ArtMapper.null_mapper
|
58
|
+
end
|
59
|
+
|
60
|
+
def get_art(client_id, art_id)
|
61
|
+
(@map[client_id] || ArtMapper.null_mapper).get_art(client_id, art_id)
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.create(&block)
|
65
|
+
std_mapper = StdArtMapper.new
|
66
|
+
std_mapper.instance_eval(&block) if block_given?
|
67
|
+
std_mapper
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def map_art(for_client: , &block)
|
73
|
+
@map[for_client] = ArtClientIdMapMapper.create(self, &block)
|
74
|
+
end
|
75
|
+
|
76
|
+
def redirect_art(for_client:, to_client:, &block)
|
77
|
+
@map[for_client] = ArtClientRedirectMapper.create(self, to_client, &block)
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
# A mapper that refers standard art ids to specific Material Design art ids
|
83
|
+
# (for a specific Material Design client id)
|
84
|
+
# @api private
|
85
|
+
class ArtClientIdMapMapper < ArtMapper
|
86
|
+
def initialize(base)
|
87
|
+
@base = base
|
88
|
+
@id_map = ::Hash.new(ArtMapper.null_mapper) #.merge!(id_map)
|
89
|
+
end
|
90
|
+
|
91
|
+
def get_art(client_id, art_id)
|
92
|
+
@id_map[art_id].get_art(client_id, art_id)
|
93
|
+
end
|
94
|
+
|
95
|
+
def self.create(base, &block)
|
96
|
+
client_mapper = ArtClientIdMapMapper.new(base)
|
97
|
+
client_mapper.instance_eval(&block) if block_given?
|
98
|
+
client_mapper
|
99
|
+
end
|
100
|
+
|
101
|
+
protected
|
102
|
+
|
103
|
+
def map_art_id(from_art:, to_art:, to_client: nil)
|
104
|
+
@id_map[from_art] = ArtIdAlternateMapper.new(@base, to_art, to_client)
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
# A mapper that refers a single standard art id to a specific Material Design art id
|
110
|
+
# @api private
|
111
|
+
class ArtIdAlternateMapper < ArtMapper
|
112
|
+
def initialize(base, art_id, client_id=nil)
|
113
|
+
@base = base
|
114
|
+
@art_id = art_id
|
115
|
+
@client_id = client_id
|
116
|
+
end
|
117
|
+
|
118
|
+
def get_art(client_id, _art_id)
|
119
|
+
Wx::MDAP.__send__(:get_art, @client_id || client_id, @art_id)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# A mapper that redirects mapping for a Material Design client to the mapper for another
|
124
|
+
# Material Design client (with the option of overriding partially)
|
125
|
+
# @api private
|
126
|
+
class ArtClientRedirectMapper < ArtClientIdMapMapper
|
127
|
+
def initialize(base, tgt_client_id)
|
128
|
+
super(base)
|
129
|
+
@tgt_client_id = tgt_client_id
|
130
|
+
end
|
131
|
+
|
132
|
+
def get_art(client_id, art_id)
|
133
|
+
super ||
|
134
|
+
@base.get_mapper(@tgt_client_id).get_art(client_id, art_id) ||
|
135
|
+
@base.get_mapper(@tgt_client_id).get_art(@tgt_client_id, art_id)
|
136
|
+
end
|
137
|
+
|
138
|
+
def self.create(base, tgt_client, &block)
|
139
|
+
client_redirector = ArtClientRedirectMapper.new(base, tgt_client)
|
140
|
+
client_redirector.instance_eval(&block) if block_given?
|
141
|
+
client_redirector
|
142
|
+
end
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
# Returns the standard wxRuby3 Art mappings
|
147
|
+
def std_mapper
|
148
|
+
@std_mapper ||= StdArtMapper.create do
|
149
|
+
map_art for_client: Wx::MDAP::ART_FLUENT_UI_FILLED do
|
150
|
+
map_art_id from_art: Wx::ART_ERROR, to_art: Wx::MDAP::ART_ERROR_CIRCLE
|
151
|
+
map_art_id from_art: Wx::ART_QUESTION, to_art: Wx::MDAP::ART_QUESTION
|
152
|
+
map_art_id from_art: Wx::ART_WARNING, to_art: Wx::MDAP::ART_WARNING
|
153
|
+
map_art_id from_art: Wx::ART_INFORMATION, to_art: Wx::MDAP::ART_INFO
|
154
|
+
map_art_id from_art: Wx::ART_ADD_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_ADD
|
155
|
+
map_art_id from_art: Wx::ART_DEL_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_OFF
|
156
|
+
map_art_id from_art: Wx::ART_HELP_SIDE_PANEL, to_art: Wx::MDAP::ART_PANEL_LEFT_TEXT
|
157
|
+
map_art_id from_art: Wx::ART_HELP_SETTINGS, to_art: Wx::MDAP::ART_SETTINGS
|
158
|
+
map_art_id from_art: Wx::ART_HELP_BOOK, to_art: Wx::MDAP::ART_BOOK
|
159
|
+
map_art_id from_art: Wx::ART_HELP_FOLDER, to_art: Wx::MDAP::ART_BOOK_OPEN
|
160
|
+
map_art_id from_art: Wx::ART_HELP_PAGE, to_art: Wx::MDAP::ART_DOCUMENT
|
161
|
+
map_art_id from_art: Wx::ART_GO_BACK, to_art: Wx::MDAP::ART_ARROW_LEFT
|
162
|
+
map_art_id from_art: Wx::ART_GO_FORWARD, to_art: Wx::MDAP::ART_ARROW_RIGHT
|
163
|
+
map_art_id from_art: Wx::ART_GO_UP, to_art: Wx::MDAP::ART_ARROW_UP
|
164
|
+
map_art_id from_art: Wx::ART_GO_DOWN, to_art: Wx::MDAP::ART_ARROW_DOWN
|
165
|
+
map_art_id from_art: Wx::ART_GO_TO_PARENT, to_art: Wx::MDAP::ART_ARROW_TURN_UP_LEFT
|
166
|
+
map_art_id from_art: Wx::ART_GO_HOME, to_art: Wx::MDAP::ART_HOME
|
167
|
+
map_art_id from_art: Wx::ART_GOTO_FIRST, to_art: Wx::MDAP::ART_ARROW_PREVIOUS
|
168
|
+
map_art_id from_art: Wx::ART_GOTO_LAST, to_art: Wx::MDAP::ART_ARROW_NEXT
|
169
|
+
map_art_id from_art: Wx::ART_PRINT, to_art: Wx::MDAP::ART_PRINT
|
170
|
+
map_art_id from_art: Wx::ART_HELP, to_art: Wx::MDAP::ART_QUESTION_CIRCLE
|
171
|
+
map_art_id from_art: Wx::ART_TIP, to_art: Wx::MDAP::ART_LIGHTBULB
|
172
|
+
map_art_id from_art: Wx::ART_REPORT_VIEW, to_art: Wx::MDAP::ART_CONTENT_VIEW
|
173
|
+
map_art_id from_art: Wx::ART_LIST_VIEW, to_art: Wx::MDAP::ART_TEXT_BULLET_LIST_SQUARE
|
174
|
+
map_art_id from_art: Wx::ART_NEW_DIR, to_art: Wx::MDAP::ART_FOLDER_ADD
|
175
|
+
map_art_id from_art: Wx::ART_FOLDER, to_art: Wx::MDAP::ART_FOLDER
|
176
|
+
map_art_id from_art: Wx::ART_FOLDER_OPEN, to_art: Wx::MDAP::ART_FOLDER_OPEN
|
177
|
+
map_art_id from_art: Wx::ART_GO_DIR_UP, to_art: Wx::MDAP::ART_FOLDER_ARROW_UP
|
178
|
+
map_art_id from_art: Wx::ART_EXECUTABLE_FILE, to_art: Wx::MDAP::ART_SETTINGS_COG_MULTIPLE
|
179
|
+
map_art_id from_art: Wx::ART_NORMAL_FILE, to_art: Wx::MDAP::ART_DOCUMENT
|
180
|
+
map_art_id from_art: Wx::ART_TICK_MARK, to_art: Wx::MDAP::ART_CHECKMARK
|
181
|
+
map_art_id from_art: Wx::ART_CROSS_MARK, to_art: Wx::MDAP::ART_DISMISS
|
182
|
+
map_art_id from_art: Wx::ART_MISSING_IMAGE, to_art: Wx::MDAP::ART_IMAGE_OFF
|
183
|
+
map_art_id from_art: Wx::ART_NEW, to_art: Wx::MDAP::ART_DOCUMENT_ADD
|
184
|
+
map_art_id from_art: Wx::ART_FILE_OPEN, to_art: Wx::MDAP::ART_DOCUMENT_FOLDER
|
185
|
+
map_art_id from_art: Wx::ART_FILE_SAVE, to_art: Wx::MDAP::ART_SAVE
|
186
|
+
map_art_id from_art: Wx::ART_FILE_SAVE_AS, to_art: Wx::MDAP::ART_SAVE_EDIT
|
187
|
+
map_art_id from_art: Wx::ART_DELETE, to_art: Wx::MDAP::ART_DELETE
|
188
|
+
map_art_id from_art: Wx::ART_COPY, to_art: Wx::MDAP::ART_COPY
|
189
|
+
map_art_id from_art: Wx::ART_CUT, to_art: Wx::MDAP::ART_CUT
|
190
|
+
map_art_id from_art: Wx::ART_PASTE, to_art: Wx::MDAP::ART_CLIPBOARD_PASTE
|
191
|
+
map_art_id from_art: Wx::ART_UNDO, to_art: Wx::MDAP::ART_ARROW_UNDO
|
192
|
+
map_art_id from_art: Wx::ART_REDO, to_art: Wx::MDAP::ART_ARROW_UNDO_TEMP_RTL
|
193
|
+
map_art_id from_art: Wx::ART_PLUS, to_art: Wx::MDAP::ART_ADD
|
194
|
+
map_art_id from_art: Wx::ART_MINUS, to_art: Wx::MDAP::ART_SUBTRACT
|
195
|
+
map_art_id from_art: Wx::ART_CLOSE, to_art: Wx::MDAP::ART_DISMISS_CIRCLE
|
196
|
+
map_art_id from_art: Wx::ART_QUIT, to_art: Wx::MDAP::ART_ARROW_EXIT
|
197
|
+
map_art_id from_art: Wx::ART_FIND, to_art: Wx::MDAP::ART_SEARCH
|
198
|
+
map_art_id from_art: Wx::ART_FIND_AND_REPLACE, to_art: Wx::MDAP::ART_FIND_REPLACE, to_client: Wx::MDAP::ART_MATERIAL_DESIGN_FILLED
|
199
|
+
map_art_id from_art: Wx::ART_FULL_SCREEN, to_art: Wx::MDAP::ART_FULL_SCREEN_MAXIMIZE
|
200
|
+
map_art_id from_art: Wx::ART_EDIT, to_art: Wx::MDAP::ART_EDIT
|
201
|
+
map_art_id from_art: Wx::ART_HARDDISK, to_art: Wx::MDAP::ART_HARD_DRIVE
|
202
|
+
map_art_id from_art: Wx::ART_FLOPPY, to_art: Wx::MDAP::ART_SAVE
|
203
|
+
map_art_id from_art: Wx::ART_CDROM, to_art: Wx::MDAP::ART_CD
|
204
|
+
map_art_id from_art: Wx::ART_REMOVABLE, to_art: Wx::MDAP::ART_PLUG_DISCONNECTED
|
205
|
+
map_art_id from_art: Wx::ART_STOP, to_art: Wx::MDAP::ART_STOP
|
206
|
+
map_art_id from_art: Wx::ART_REFRESH, to_art: Wx::MDAP::ART_ARROW_SYNC
|
207
|
+
end
|
208
|
+
|
209
|
+
redirect_art for_client: Wx::MDAP::ART_FLUENT_UI_REGULAR, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
210
|
+
|
211
|
+
map_art for_client: Wx::MDAP::ART_MATERIAL_DESIGN_FILLED do
|
212
|
+
map_art_id from_art: Wx::ART_ERROR, to_art: Wx::MDAP::ART_ERROR
|
213
|
+
map_art_id from_art: Wx::ART_QUESTION, to_art: Wx::MDAP::ART_QUESTION_MARK
|
214
|
+
map_art_id from_art: Wx::ART_WARNING, to_art: Wx::MDAP::ART_WARNING
|
215
|
+
map_art_id from_art: Wx::ART_INFORMATION, to_art: Wx::MDAP::ART_INFO
|
216
|
+
map_art_id from_art: Wx::ART_ADD_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_ADD
|
217
|
+
map_art_id from_art: Wx::ART_DEL_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_REMOVE
|
218
|
+
map_art_id from_art: Wx::ART_HELP_SIDE_PANEL, to_art: Wx::MDAP::ART_VERTICAL_SPLIT
|
219
|
+
map_art_id from_art: Wx::ART_HELP_SETTINGS, to_art: Wx::MDAP::ART_SETTINGS
|
220
|
+
map_art_id from_art: Wx::ART_HELP_BOOK, to_art: Wx::MDAP::ART_BOOK
|
221
|
+
map_art_id from_art: Wx::ART_HELP_FOLDER, to_art: Wx::MDAP::ART_FOLDER
|
222
|
+
map_art_id from_art: Wx::ART_HELP_PAGE, to_art: Wx::MDAP::ART_TEXT_SNIPPET
|
223
|
+
map_art_id from_art: Wx::ART_GO_BACK, to_art: Wx::MDAP::ART_KEYBOARD_ARROW_LEFT
|
224
|
+
map_art_id from_art: Wx::ART_GO_FORWARD, to_art: Wx::MDAP::ART_KEYBOARD_ARROW_RIGHT
|
225
|
+
map_art_id from_art: Wx::ART_GO_UP, to_art: Wx::MDAP::ART_KEYBOARD_ARROW_UP
|
226
|
+
map_art_id from_art: Wx::ART_GO_DOWN, to_art: Wx::MDAP::ART_KEYBOARD_ARROW_DOWN
|
227
|
+
map_art_id from_art: Wx::ART_GO_TO_PARENT, to_art: Wx::MDAP::ART_REPLAY
|
228
|
+
map_art_id from_art: Wx::ART_GO_HOME, to_art: Wx::MDAP::ART_HOME
|
229
|
+
map_art_id from_art: Wx::ART_GOTO_FIRST, to_art: Wx::MDAP::ART_FIRST_PAGE
|
230
|
+
map_art_id from_art: Wx::ART_GOTO_LAST, to_art: Wx::MDAP::ART_LAST_PAGE
|
231
|
+
map_art_id from_art: Wx::ART_PRINT, to_art: Wx::MDAP::ART_PRINT
|
232
|
+
map_art_id from_art: Wx::ART_HELP, to_art: Wx::MDAP::ART_HELP
|
233
|
+
map_art_id from_art: Wx::ART_TIP, to_art: Wx::MDAP::ART_LIGHTBULB
|
234
|
+
map_art_id from_art: Wx::ART_REPORT_VIEW, to_art: Wx::MDAP::ART_WYSIWYG
|
235
|
+
map_art_id from_art: Wx::ART_LIST_VIEW, to_art: Wx::MDAP::ART_VIEW_LIST
|
236
|
+
map_art_id from_art: Wx::ART_NEW_DIR, to_art: Wx::MDAP::ART_CREATE_NEW_FOLDER
|
237
|
+
map_art_id from_art: Wx::ART_FOLDER, to_art: Wx::MDAP::ART_FOLDER
|
238
|
+
map_art_id from_art: Wx::ART_FOLDER_OPEN, to_art: Wx::MDAP::ART_FOLDER_OPEN
|
239
|
+
map_art_id from_art: Wx::ART_GO_DIR_UP, to_art: Wx::MDAP::ART_DRIVE_FOLDER_UPLOAD
|
240
|
+
map_art_id from_art: Wx::ART_EXECUTABLE_FILE, to_art: Wx::MDAP::ART_MISCELLANEOUS_SERVICES
|
241
|
+
map_art_id from_art: Wx::ART_NORMAL_FILE, to_art: Wx::MDAP::ART_INSERT_DRIVE_FILE
|
242
|
+
map_art_id from_art: Wx::ART_TICK_MARK, to_art: Wx::MDAP::ART_CHECK
|
243
|
+
map_art_id from_art: Wx::ART_CROSS_MARK, to_art: Wx::MDAP::ART_CLEAR
|
244
|
+
map_art_id from_art: Wx::ART_MISSING_IMAGE, to_art: Wx::MDAP::ART_IMAGE_NOT_SUPPORTED
|
245
|
+
map_art_id from_art: Wx::ART_NEW, to_art: Wx::MDAP::ART_NOTE_ADD
|
246
|
+
map_art_id from_art: Wx::ART_FILE_OPEN, to_art: Wx::MDAP::ART_FILE_OPEN
|
247
|
+
map_art_id from_art: Wx::ART_FILE_SAVE, to_art: Wx::MDAP::ART_SAVE
|
248
|
+
map_art_id from_art: Wx::ART_FILE_SAVE_AS, to_art: Wx::MDAP::ART_SAVE_AS
|
249
|
+
map_art_id from_art: Wx::ART_DELETE, to_art: Wx::MDAP::ART_DELETE
|
250
|
+
map_art_id from_art: Wx::ART_COPY, to_art: Wx::MDAP::ART_CONTENT_COPY
|
251
|
+
map_art_id from_art: Wx::ART_CUT, to_art: Wx::MDAP::ART_CONTENT_CUT
|
252
|
+
map_art_id from_art: Wx::ART_PASTE, to_art: Wx::MDAP::ART_CONTENT_PASTE
|
253
|
+
map_art_id from_art: Wx::ART_UNDO, to_art: Wx::MDAP::ART_UNDO
|
254
|
+
map_art_id from_art: Wx::ART_REDO, to_art: Wx::MDAP::ART_REDO
|
255
|
+
map_art_id from_art: Wx::ART_PLUS, to_art: Wx::MDAP::ART_ADD
|
256
|
+
map_art_id from_art: Wx::ART_MINUS, to_art: Wx::MDAP::ART_REMOVE
|
257
|
+
map_art_id from_art: Wx::ART_CLOSE, to_art: Wx::MDAP::ART_CANCEL
|
258
|
+
map_art_id from_art: Wx::ART_QUIT, to_art: Wx::MDAP::ART_EXIT_TO_APP
|
259
|
+
map_art_id from_art: Wx::ART_FIND, to_art: Wx::MDAP::ART_SEARCH
|
260
|
+
map_art_id from_art: Wx::ART_FIND_AND_REPLACE, to_art: Wx::MDAP::ART_FIND_REPLACE
|
261
|
+
map_art_id from_art: Wx::ART_FULL_SCREEN, to_art: Wx::MDAP::ART_FULLSCREEN
|
262
|
+
map_art_id from_art: Wx::ART_EDIT, to_art: Wx::MDAP::ART_EDIT
|
263
|
+
map_art_id from_art: Wx::ART_HARDDISK, to_art: Wx::MDAP::ART_HARD_DRIVE, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
264
|
+
map_art_id from_art: Wx::ART_FLOPPY, to_art: Wx::MDAP::ART_SAVE
|
265
|
+
map_art_id from_art: Wx::ART_CDROM, to_art: Wx::MDAP::ART_CD, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
266
|
+
map_art_id from_art: Wx::ART_REMOVABLE, to_art: Wx::MDAP::ART_PLUG_DISCONNECTED, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
267
|
+
map_art_id from_art: Wx::ART_STOP, to_art: Wx::MDAP::ART_STOP
|
268
|
+
map_art_id from_art: Wx::ART_REFRESH, to_art: Wx::MDAP::ART_SYNC
|
269
|
+
end
|
270
|
+
|
271
|
+
redirect_art for_client: Wx::MDAP::ART_MATERIAL_DESIGN_OUTLINED, to_client: Wx::MDAP::ART_MATERIAL_DESIGN_FILLED do
|
272
|
+
map_art_id from_art: Wx::ART_HARDDISK, to_art: Wx::MDAP::ART_HARD_DRIVE, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
273
|
+
map_art_id from_art: Wx::ART_REMOVABLE, to_art: Wx::MDAP::ART_PLUG_DISCONNECTED, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
274
|
+
end
|
275
|
+
|
276
|
+
redirect_art for_client: Wx::MDAP::ART_MATERIAL_DESIGN_ROUND, to_client: Wx::MDAP::ART_MATERIAL_DESIGN_FILLED
|
277
|
+
|
278
|
+
redirect_art for_client: Wx::MDAP::ART_MATERIAL_DESIGN_SHARP, to_client: Wx::MDAP::ART_MATERIAL_DESIGN_FILLED
|
279
|
+
|
280
|
+
redirect_art for_client: Wx::MDAP::ART_MATERIAL_DESIGN_TWO_TONE, to_client: Wx::MDAP::ART_MATERIAL_DESIGN_FILLED do
|
281
|
+
map_art_id from_art: Wx::ART_HARDDISK, to_art: Wx::MDAP::ART_HARD_DRIVE, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
282
|
+
map_art_id from_art: Wx::ART_REMOVABLE, to_art: Wx::MDAP::ART_PLUG_DISCONNECTED, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
283
|
+
end
|
284
|
+
|
285
|
+
map_art for_client: Wx::MDAP::ART_FONT_AWESOME_SOLID do
|
286
|
+
map_art_id from_art: Wx::ART_ERROR, to_art: Wx::MDAP::ART_CIRCLE_EXCLAMATION
|
287
|
+
map_art_id from_art: Wx::ART_QUESTION, to_art: Wx::MDAP::ART_QUESTION
|
288
|
+
map_art_id from_art: Wx::ART_WARNING, to_art: Wx::MDAP::ART_TRIANGLE_EXCLAMATION
|
289
|
+
map_art_id from_art: Wx::ART_INFORMATION, to_art: Wx::MDAP::ART_CIRCLE_INFO
|
290
|
+
map_art_id from_art: Wx::ART_ADD_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_ADD, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
291
|
+
map_art_id from_art: Wx::ART_DEL_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_OFF, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
292
|
+
map_art_id from_art: Wx::ART_HELP_SIDE_PANEL, to_art: Wx::MDAP::ART_PANEL_LEFT_TEXT, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
293
|
+
map_art_id from_art: Wx::ART_HELP_SETTINGS, to_art: Wx::MDAP::ART_SETTINGS, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
294
|
+
map_art_id from_art: Wx::ART_HELP_BOOK, to_art: Wx::MDAP::ART_BOOK
|
295
|
+
map_art_id from_art: Wx::ART_HELP_FOLDER, to_art: Wx::MDAP::ART_FOLDER
|
296
|
+
map_art_id from_art: Wx::ART_HELP_PAGE, to_art: Wx::MDAP::ART_FILE_LINES
|
297
|
+
map_art_id from_art: Wx::ART_GO_BACK, to_art: Wx::MDAP::ART_ANGLE_LEFT
|
298
|
+
map_art_id from_art: Wx::ART_GO_FORWARD, to_art: Wx::MDAP::ART_ANGLE_RIGHT
|
299
|
+
map_art_id from_art: Wx::ART_GO_UP, to_art: Wx::MDAP::ART_ANGLE_UP
|
300
|
+
map_art_id from_art: Wx::ART_GO_DOWN, to_art: Wx::MDAP::ART_ANGLE_DOWN
|
301
|
+
map_art_id from_art: Wx::ART_GO_TO_PARENT, to_art: Wx::MDAP::ART_ARROW_TURN_UP
|
302
|
+
map_art_id from_art: Wx::ART_GO_HOME, to_art: Wx::MDAP::ART_HOUSE
|
303
|
+
map_art_id from_art: Wx::ART_GOTO_FIRST, to_art: Wx::MDAP::ART_ANGLES_LEFT
|
304
|
+
map_art_id from_art: Wx::ART_GOTO_LAST, to_art: Wx::MDAP::ART_ANGLES_RIGHT
|
305
|
+
map_art_id from_art: Wx::ART_PRINT, to_art: Wx::MDAP::ART_PRINT
|
306
|
+
map_art_id from_art: Wx::ART_HELP, to_art: Wx::MDAP::ART_CIRCLE_QUESTION
|
307
|
+
map_art_id from_art: Wx::ART_TIP, to_art: Wx::MDAP::ART_LIGHTBULB
|
308
|
+
map_art_id from_art: Wx::ART_REPORT_VIEW, to_art: Wx::MDAP::ART_TABLE_COLUMNS
|
309
|
+
map_art_id from_art: Wx::ART_LIST_VIEW, to_art: Wx::MDAP::ART_TABLE_LIST
|
310
|
+
map_art_id from_art: Wx::ART_NEW_DIR, to_art: Wx::MDAP::ART_FOLDER_PLUS
|
311
|
+
map_art_id from_art: Wx::ART_FOLDER, to_art: Wx::MDAP::ART_FOLDER
|
312
|
+
map_art_id from_art: Wx::ART_FOLDER_OPEN, to_art: Wx::MDAP::ART_FOLDER_OPEN
|
313
|
+
map_art_id from_art: Wx::ART_GO_DIR_UP, to_art: Wx::MDAP::ART_ARROW_TURN_UP
|
314
|
+
map_art_id from_art: Wx::ART_EXECUTABLE_FILE, to_art: Wx::MDAP::ART_GEARS
|
315
|
+
map_art_id from_art: Wx::ART_NORMAL_FILE, to_art: Wx::MDAP::ART_FILE
|
316
|
+
map_art_id from_art: Wx::ART_TICK_MARK, to_art: Wx::MDAP::ART_CHECK
|
317
|
+
map_art_id from_art: Wx::ART_CROSS_MARK, to_art: Wx::MDAP::ART_XMARK
|
318
|
+
map_art_id from_art: Wx::ART_MISSING_IMAGE, to_art: Wx::MDAP::ART_RECTANGLE_XMARK
|
319
|
+
map_art_id from_art: Wx::ART_NEW, to_art: Wx::MDAP::ART_FILE_CIRCLE_PLUS
|
320
|
+
map_art_id from_art: Wx::ART_FILE_OPEN, to_art: Wx::MDAP::ART_FILE_ARROW_UP
|
321
|
+
map_art_id from_art: Wx::ART_FILE_SAVE, to_art: Wx::MDAP::ART_FILE_ARROW_DOWN
|
322
|
+
map_art_id from_art: Wx::ART_FILE_SAVE_AS, to_art: Wx::MDAP::ART_FILE_PEN
|
323
|
+
map_art_id from_art: Wx::ART_DELETE, to_art: Wx::MDAP::ART_TRASH_CAN
|
324
|
+
map_art_id from_art: Wx::ART_COPY, to_art: Wx::MDAP::ART_COPY
|
325
|
+
map_art_id from_art: Wx::ART_CUT, to_art: Wx::MDAP::ART_SCISSORS
|
326
|
+
map_art_id from_art: Wx::ART_PASTE, to_art: Wx::MDAP::ART_PASTE
|
327
|
+
map_art_id from_art: Wx::ART_UNDO, to_art: Wx::MDAP::ART_ARROW_ROTATE_LEFT
|
328
|
+
map_art_id from_art: Wx::ART_REDO, to_art: Wx::MDAP::ART_ARROW_ROTATE_RIGHT
|
329
|
+
map_art_id from_art: Wx::ART_PLUS, to_art: Wx::MDAP::ART_PLUS
|
330
|
+
map_art_id from_art: Wx::ART_MINUS, to_art: Wx::MDAP::ART_MINUS
|
331
|
+
map_art_id from_art: Wx::ART_CLOSE, to_art: Wx::MDAP::ART_CIRCLE_XMARK
|
332
|
+
map_art_id from_art: Wx::ART_QUIT, to_art: Wx::MDAP::ART_ARROW_RIGHT_FROM_BRACKET
|
333
|
+
map_art_id from_art: Wx::ART_FIND, to_art: Wx::MDAP::ART_MAGNIFYING_GLASS
|
334
|
+
map_art_id from_art: Wx::ART_FIND_AND_REPLACE, to_art: Wx::MDAP::ART_FIND_REPLACE, to_client: Wx::MDAP::ART_MATERIAL_DESIGN_FILLED
|
335
|
+
map_art_id from_art: Wx::ART_FULL_SCREEN, to_art: Wx::MDAP::ART_EXPAND
|
336
|
+
map_art_id from_art: Wx::ART_EDIT, to_art: Wx::MDAP::ART_PEN
|
337
|
+
map_art_id from_art: Wx::ART_HARDDISK, to_art: Wx::MDAP::ART_HARD_DRIVE
|
338
|
+
map_art_id from_art: Wx::ART_FLOPPY, to_art: Wx::MDAP::ART_FLOPPY_DISK
|
339
|
+
map_art_id from_art: Wx::ART_CDROM, to_art: Wx::MDAP::ART_CD, to_client: Wx::MDAP::ART_FLUENT_UI_FILLED
|
340
|
+
map_art_id from_art: Wx::ART_REMOVABLE, to_art: Wx::MDAP::ART_PLUG
|
341
|
+
map_art_id from_art: Wx::ART_STOP, to_art: Wx::MDAP::ART_STOP
|
342
|
+
map_art_id from_art: Wx::ART_REFRESH, to_art: Wx::MDAP::ART_ARROWS_ROTATE
|
343
|
+
end
|
344
|
+
|
345
|
+
redirect_art for_client: Wx::MDAP::ART_FONT_AWESOME_REGULAR, to_client: Wx::MDAP::ART_FONT_AWESOME_SOLID do
|
346
|
+
map_art_id from_art: Wx::ART_ADD_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_ADD, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
347
|
+
map_art_id from_art: Wx::ART_DEL_BOOKMARK, to_art: Wx::MDAP::ART_BOOKMARK_REMOVE, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
348
|
+
map_art_id from_art: Wx::ART_HELP_SIDE_PANEL, to_art: Wx::MDAP::ART_PANEL_LEFT_TEXT, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
349
|
+
map_art_id from_art: Wx::ART_HELP_SETTINGS, to_art: Wx::MDAP::ART_SETTINGS, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
350
|
+
map_art_id from_art: Wx::ART_FIND_AND_REPLACE, to_art: Wx::MDAP::ART_FIND_REPLACE, to_client: Wx::MDAP::ART_MATERIAL_DESIGN_OUTLINED
|
351
|
+
map_art_id from_art: Wx::ART_CDROM, to_art: Wx::MDAP::ART_CD, to_client: Wx::MDAP::ART_FLUENT_UI_REGULAR
|
352
|
+
end
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
356
|
+
# Collects art from the given collection and auto-creates art client ids and art ids.
|
357
|
+
# Registers all art for later retrieval.
|
358
|
+
# @param [String] collection name of art collection (folder)
|
359
|
+
# @return [void]
|
360
|
+
def collect_art_for(collection)
|
361
|
+
# recursively iterate the folders and files of the `collection` directory
|
362
|
+
# and auto-create Art Client Ids and Art Ids
|
363
|
+
art_folder = File.directory?(collection) ? File.expand_path(collection) : File.join(__dir__, 'art', collection)
|
364
|
+
art_group = File.basename(art_folder, '.*').upcase.gsub('-', '_')
|
365
|
+
raise ArgumentError, "Cannot find art folder #{collection}." unless File.directory?(art_folder)
|
366
|
+
art_client_groups[art_group] ||= []
|
367
|
+
Dir[File.join(art_folder, '*')].each do |art_client_path|
|
368
|
+
if File.directory?(art_client_path)
|
369
|
+
# does this folder contain SVG files?
|
370
|
+
img_list = Dir[File.join(art_client_path, '*.svg')]
|
371
|
+
unless img_list.empty?
|
372
|
+
|
373
|
+
# create ArtClientId constant for this folder and register art client
|
374
|
+
art_const = "ART_#{art_group}_#{File.basename(art_client_path, '.*').upcase.gsub('-', '_')}"
|
375
|
+
art_client_id = const_set(art_const, "#{art_const}_C")
|
376
|
+
art_registry[art_client_id] = { const: art_const.to_sym, art: {} }
|
377
|
+
art_client_groups[art_group] << art_const.to_sym
|
378
|
+
|
379
|
+
# create and register ArtId for each image file
|
380
|
+
art_id_registry = art_registry[art_client_id][:art]
|
381
|
+
img_list.each do |img_file|
|
382
|
+
art_id = "ART_#{File.basename(img_file, '.*').upcase.gsub('-', '_')}"
|
383
|
+
const_set(art_id, art_id) unless const_defined?(art_id)
|
384
|
+
art_id_registry[art_id] = img_file
|
385
|
+
end
|
386
|
+
|
387
|
+
end
|
388
|
+
end
|
389
|
+
end
|
390
|
+
nil
|
391
|
+
end
|
392
|
+
|
393
|
+
public
|
394
|
+
|
395
|
+
# @api private
|
396
|
+
def get_art_client_group_ids
|
397
|
+
art_client_groups.keys
|
398
|
+
end
|
399
|
+
alias :art_client_group_ids :get_art_client_group_ids
|
400
|
+
|
401
|
+
# @api private
|
402
|
+
def get_art_client_ids_for_group(grp_id)
|
403
|
+
art_client_groups[grp_id] || []
|
404
|
+
end
|
405
|
+
alias :art_client_ids_for_group :get_art_client_ids_for_group
|
406
|
+
|
407
|
+
# @api private
|
408
|
+
def get_art_group_for_client(client)
|
409
|
+
grp, _ = art_client_groups.find { |_, grp_clients| grp_clients.include?(client) }
|
410
|
+
grp
|
411
|
+
end
|
412
|
+
alias :art_group_for_client :get_art_group_for_client
|
413
|
+
|
414
|
+
# @api private
|
415
|
+
def get_art_ids_for_group(grp_id)
|
416
|
+
get_art_client_ids_for_group(grp_id).inject([]) { |list, sym| list |= get_all_art_ids_for(MDAP.const_get(sym)) }.sort
|
417
|
+
end
|
418
|
+
alias :art_ids_for_group :get_art_ids_for_group
|
419
|
+
|
420
|
+
# Returns the image path for the art for the specified client and id
|
421
|
+
# @param [String] client art client id
|
422
|
+
# @param [String] id art id
|
423
|
+
# @return [String] art path
|
424
|
+
# @api private
|
425
|
+
def get_art_for(client, id)
|
426
|
+
# try to resolve exact match
|
427
|
+
art_path = get_art(client, id)
|
428
|
+
# if not found and this is a standard wxWidgets Art Id try the std mappers
|
429
|
+
if art_path.nil? && id.start_with?('wx')
|
430
|
+
art_path = std_mapper.get_art(client, id)
|
431
|
+
end
|
432
|
+
art_path
|
433
|
+
end
|
434
|
+
alias :art_for :get_art_for
|
435
|
+
|
436
|
+
# Returns a list op all art client constant names (as symbols).
|
437
|
+
# @return [Array<Symbol>] art client constant names
|
438
|
+
# @api private
|
439
|
+
def get_all_art_clients
|
440
|
+
art_registry.values.collect { |clreg| clreg[:const] }
|
441
|
+
end
|
442
|
+
alias :all_art_clients :get_all_art_clients
|
443
|
+
|
444
|
+
# Returns a list of all art id constant names (as symbols) for the given art client id
|
445
|
+
# @param [String] client Art Client Id
|
446
|
+
# @return [Array<Symbol>] art id constant names
|
447
|
+
# @api private
|
448
|
+
def get_all_art_ids_for(client)
|
449
|
+
art_registry.has_key?(client) ? art_registry[client][:art].keys.collect { |art_id| art_id.to_sym } : []
|
450
|
+
end
|
451
|
+
alias :all_art_ids_for :get_all_art_ids_for
|
452
|
+
|
453
|
+
# @api private
|
454
|
+
def has_art_client_id?(client)
|
455
|
+
art_registry.has_key?(client)
|
456
|
+
end
|
457
|
+
|
458
|
+
# @api private
|
459
|
+
def has_art_id?(client, id)
|
460
|
+
art_registry.has_key?(client) && art_registry[client][:art].has_key?(id)
|
461
|
+
end
|
462
|
+
|
463
|
+
# Returns a list of all Material Design art id constant names (as symbols)
|
464
|
+
# @return [Array<Symbol>] art id constant names
|
465
|
+
# @api private
|
466
|
+
def get_all_art_ids
|
467
|
+
art_registry.values.collect { |clreg| clreg[:art].keys.collect { |art_id| art_id.to_sym } }.flatten.uniq
|
468
|
+
end
|
469
|
+
alias :all_art_ids :get_all_art_ids
|
470
|
+
|
471
|
+
end
|
472
|
+
|
473
|
+
collect_art_for('fluent_ui')
|
474
|
+
collect_art_for('font_awesome')
|
475
|
+
collect_art_for('material_design')
|
476
|
+
collect_art_for('simple_icons')
|
477
|
+
|
478
|
+
end
|
479
|
+
|
480
|
+
end
|