CppUmlClass 0.8.0 → 1.0.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/lib/css/index.css CHANGED
@@ -1,182 +1,354 @@
1
1
  body {
2
- color: #000000;
3
- background-color: #cac3ec4f;
4
- overflow: hidden;
5
- font-size: 14px;
2
+ font-family: 'Roboto', Arial, sans-serif;
3
+ background: linear-gradient(135deg, #e3f0fc 0%, #b6d6f6 100%);
4
+ min-height: 100vh;
5
+ margin: 0;
6
+ padding: 0;
7
+ color: #234067;
8
+ font-size: 13px;
6
9
  }
7
10
 
8
- hr {
9
- color: #ffffff;
10
- background-color: #000000;
11
- height: 1px;
12
- /* 線の太さ */
13
- border: 1px;
14
- /* 枠の太さ */
15
- border-style: solid;
16
- /* 枠の種類 */
11
+ .app-header {
12
+ display: flex;
13
+ align-items: center;
14
+ background: #b3d6f6;
15
+ padding: 10px 20px;
16
+ box-shadow: 0 1px 8px #afd6f9aa;
17
+ border-bottom: 1px solid #a3c9e6;
17
18
  }
18
19
 
19
- .error {
20
- color: red;
20
+ .app-header .material-icons {
21
+ font-size: 1.6rem;
22
+ color: #539ad9;
23
+ margin-right: 10px;
21
24
  }
22
25
 
23
- .outarea {
24
- background-color: #FFFFFF;
25
- margin: 5px;
26
- padding: 5px;
27
- width: 95vw;
28
- height: 50vh;
29
- overflow: auto;
26
+ .app-title {
27
+ font-size: 1.2rem;
28
+ font-weight: 700;
29
+ letter-spacing: 1px;
30
+ color: #234067;
30
31
  }
31
32
 
32
- .inarea {
33
- border: thin solid #000000;
34
- margin: 5px;
35
- padding: 5px;
36
- width: 95%;
33
+ /* Modern Menu Styling */
34
+ .menu {
35
+ display: flex;
36
+ list-style: none;
37
+ padding: 0;
38
+ margin: 18px 0 0 18px;
39
+ gap: 10px;
40
+ font-size: 13px;
37
41
  }
38
42
 
39
- input.long {
40
- width: 90%;
41
- background-color: #FAFAFA;
42
- margin: 5px;
43
- padding: 5px;
43
+ .menu>li {
44
+ position: relative;
45
+ background: #e5f2fb;
46
+ border-radius: 5px;
47
+ overflow: visible;
48
+ transition: box-shadow 0.2s;
44
49
  }
45
50
 
46
- textarea.long {
47
- width: 95vw;
48
- height: 50vh;
51
+ .menu>li:hover,
52
+ .menu>li:focus-within {
53
+ box-shadow: 0 2px 8px #539ad955;
54
+ background: #d2e8f7;
49
55
  }
50
56
 
51
- .ui-widget {
52
- font-size: 14px;
57
+ .menu>li>a,
58
+ .menu>li>span {
59
+ display: block;
60
+ color: #234067;
61
+ font-weight: 500;
62
+ padding: 7px 16px;
63
+ text-decoration: none;
64
+ cursor: pointer;
65
+ font-size: 13px;
66
+ transition: background 0.2s;
53
67
  }
54
68
 
55
- .ui-autocomplete {
56
- max-height: 45vh;
57
- max-width: 90wh;
58
- overflow-y: auto;
59
- overflow-x: auto;
60
- padding-right: 10px;
69
+ /* サブメニューの表示制御 */
70
+ .menuSub {
71
+ display: none;
72
+ position: absolute;
73
+ top: 100%;
74
+ left: 0;
75
+ background: #f6fbff;
76
+ box-shadow: 0 1px 5px #b6d6f6;
77
+ border-radius: 0 0 5px 5px;
78
+ min-width: 150px;
79
+ z-index: 100;
80
+ padding: 0;
81
+ margin: 0;
61
82
  }
62
83
 
63
- #jquery-ui-autocomplete label {
64
- float: left;
65
- margin-right: 0.5em;
66
- color: black;
84
+ .menu>li:hover>.menuSub,
85
+ .menu>li:focus-within>.menuSub {
86
+ display: block;
67
87
  }
68
88
 
69
- .ui-autocomplete.ui-front {
70
- max-height: 250px;
71
- overflow-y: auto;
72
- /* prevent horizontal scrollbar */
73
- overflow-x: hidden;
74
- /* add padding to account for vertical scrollbar */
75
- z-index: 1000 !important;
89
+ .menuSub li {
90
+ list-style: none;
76
91
  }
77
92
 
78
- .ui-dialog {
79
- position: absolute;
80
- top: 0;
81
- left: 0;
82
- padding: .2em;
83
- outline: 0;
93
+ .menuSub li a {
94
+ color: #3b5c7e;
95
+ padding: 7px 15px;
96
+ display: block;
97
+ border-bottom: 1px solid #e3f0fc;
98
+ transition: color 0.2s, background 0.2s;
99
+ text-decoration: none;
100
+ font-size: 13px;
84
101
  }
85
102
 
86
- .long {
87
- width: 90%;
103
+ .menuSub li:last-child a {
104
+ border-bottom: none;
88
105
  }
89
106
 
90
- #setting_dialog {
91
- color: #ffffff;
92
- background-color: #000000;
93
- font-size: 14px;
107
+ .menuSub li a:hover {
108
+ background: #d2e8f7;
109
+ color: #234067;
94
110
  }
95
111
 
96
- .setting_name {
97
- width: 300px;
98
- color: #ffffff;
99
- background-color: #000000;
100
- font-size: 14px;
112
+ /* Main Content Layout */
113
+ .main-content {
114
+ display: flex;
115
+ flex-direction: column;
116
+ margin: 5px 1vw 0 1vw;
117
+ /* 余白を減らす */
118
+ gap: 6px;
119
+ /* 要素間の隙間も少し減らす */
120
+ font-size: 13px;
101
121
  }
102
122
 
103
- .setting_value {
104
- width: 300px;
105
- color: #ffffff;
106
- background-color: #000000;
107
- font-size: 14px;
123
+ .input-row {
124
+ display: flex;
125
+ align-items: center;
126
+ gap: 10px;
127
+ margin-bottom: 7px;
128
+ font-size: 13px;
108
129
  }
109
130
 
110
- .setting_checkbox {
111
- color: #ffffff;
112
- background-color: #000000;
113
- font-size: 14px;
131
+ .input-row input[type="search"],
132
+ .input-row input[type="text"] {
133
+ background: #e5f2fb;
134
+ border: 1px solid #b3d6f6;
135
+ border-radius: 4px;
136
+ padding: 6px 10px;
137
+ color: #234067;
138
+ font-size: 13px;
139
+ outline: none;
140
+ transition: box-shadow 0.2s;
141
+ width: 170px;
114
142
  }
115
143
 
116
- ul.log {
117
- list-style-type: decimal;
144
+ .input-row input[type="search"]:focus {
145
+ box-shadow: 0 0 0 2px #b6d6f6;
146
+ }
147
+
148
+ .input-row button,
149
+ .input-row input[type="button"] {
150
+ background: #b6d6f6;
151
+ color: #234067;
152
+ border: none;
153
+ border-radius: 4px;
154
+ padding: 6px 13px;
155
+ font-size: 13px;
156
+ cursor: pointer;
157
+ transition: background 0.2s, color 0.2s;
158
+ font-weight: 500;
159
+ margin-left: 1px;
160
+ box-shadow: 0 1px 4px #b6d6f633;
161
+ }
162
+
163
+ .input-row button:hover,
164
+ .input-row input[type="button"]:hover {
165
+ background: #d2e8f7;
166
+ color: #539ad9;
167
+ box-shadow: 0 1px 8px #b6d6f6cc;
168
+ }
169
+
170
+ /* Log Output */
171
+ .outarea {
172
+ background: #f6fbff;
173
+ border-radius: 7px;
174
+ min-height: 200px;
175
+ width: 95vw;
176
+ height: 75vh;
177
+ max-width: 95vw;
178
+ max-height: 90vh;
179
+ box-shadow: 0 1px 8px #b6d6f677;
180
+ margin-top: 4px;
181
+ color: #b0bec5;
182
+ overflow-y: auto;
118
183
  font-size: 12px;
119
- color: #5d0a94;
184
+ margin-left: 1px;
185
+ margin-right: 1px;
186
+ display: block;
187
+ padding: 1px 1px;
188
+
120
189
  }
121
190
 
122
- input[type="search"] {
123
- -webkit-appearance: searchfield;
191
+ ul.log {
192
+ margin: 0;
193
+ padding-left: 0.5px;
194
+ font-size: 13px;
195
+ color: #539ad9;
196
+ letter-spacing: 0.1px;
197
+ padding: 0.5px 0.5px;
124
198
  }
125
199
 
126
- input[type="search"]::-webkit-search-cancel-button {
127
- -webkit-appearance: searchfield-cancel-button;
200
+ ul.log li {
201
+ margin-bottom: 0.3em;
128
202
  }
129
203
 
130
- /* menu */
131
- .menu {
132
- display: flex;
133
- justify-content: flex-start;
134
- list-style-type: none;
135
- color: #393737;
136
- padding: 0;
137
- font-size: 14px;
204
+ /* Dialog Styling Overrides */
205
+ .ui-dialog {
206
+ background: #e5f2fb;
207
+ color: #234067;
208
+ border-radius: 6px;
209
+ box-shadow: 0 2px 12px #b6d6f677;
210
+ border: none;
211
+ font-size: 13px;
212
+ }
213
+
214
+ .ui-dialog-titlebar {
215
+ background: #b6d6f6;
216
+ color: #539ad9;
217
+ border: none;
218
+ border-radius: 6px 6px 0 0;
219
+ font-weight: 700;
220
+ font-size: 13px;
221
+ }
222
+
223
+ .ui-dialog-buttonpane button {
224
+ background: #b6d6f6;
225
+ color: #234067;
226
+ border: none;
227
+ border-radius: 4px;
228
+ padding: 5px 11px;
138
229
  font-weight: bold;
230
+ margin: 0 5px;
231
+ font-size: 13px;
232
+ transition: background 0.2s, color 0.2s;
139
233
  }
140
234
 
141
- .menu li {
142
- position: relative;
143
- width: 100px;
144
- margin-left: 1px;
145
- padding: 5px;
146
- background: #d8dada;
147
- list-style-type: none;
235
+ .ui-dialog-buttonpane button:hover {
236
+ background: #539ad9;
237
+ color: #f6fbff;
148
238
  }
149
239
 
150
- .menu li a {
151
- color: rgb(20, 114, 192);
240
+ /* Settings dialog table */
241
+ #setting_dialog table {
242
+ width: 95%;
243
+ margin-bottom: 5px;
244
+ font-size: 13px;
152
245
  }
153
246
 
154
- .menu li a:hover {
155
- background: #eba399;
247
+ #setting_dialog .setting_name {
248
+ color: #539ad9;
249
+ width: 120px;
250
+ font-weight: bold;
251
+ padding-right: 12px;
252
+ font-size: 13px;
156
253
  }
157
254
 
158
- .menuSub {
159
- position: absolute;
160
- margin-left: -6px;
161
- padding: 0;
162
- display: none;
255
+ #setting_dialog .setting_value {
256
+ width: 100%;
257
+ max-width: 100%;
258
+ min-width: 120px;
259
+ box-sizing: border-box;
163
260
  }
164
261
 
165
- /*.openが付与された時、表示の設定*/
166
- .menuSub.open {
167
- display: block;
262
+ #setting_dialog input,
263
+ #setting_dialog select {
264
+ background: #f6fbff;
265
+ color: #234067;
266
+ border: 1px solid #b3d6f6;
267
+ border-radius: 4px;
268
+ padding: 5px 8px;
269
+ font-size: 13px;
168
270
  }
169
271
 
170
- .menuSub li a {
171
- padding: 5px;
172
- margin-left: -5px;
173
- margin-right: -5px;
174
- margin-bottom: -5px;
175
- display: block;
176
- color: rgb(20, 114, 192);
177
- text-decoration: none;
272
+ #msg_text {
273
+ font-size: 13px;
274
+ color: #234067;
275
+ padding: 10px 0;
178
276
  }
179
277
 
180
- .menuSub li a:hover {
181
- background: #eba399;
182
- }
278
+ @media (max-width: 700px) {
279
+ .main-content {
280
+ margin: 7px 2vw;
281
+ }
282
+
283
+ .outarea {
284
+ padding: 7px;
285
+ }
286
+
287
+ .menu>li>a,
288
+ .menu>li>span {
289
+ padding: 7px 7px;
290
+ }
291
+
292
+ .input-row input[type="search"] {
293
+ width: 80px;
294
+ }
295
+ }
296
+
297
+ .input-row input#inDir {
298
+ width: 80vw;
299
+ max-width: 80vw;
300
+ min-width: 200px;
301
+ }
302
+
303
+ .input-row input#outFile {
304
+ width: 80vw;
305
+ max-width: 80vw;
306
+ min-width: 200px;
307
+ }
308
+
309
+ .input-row input#inDir,
310
+ .input-row input#outDir {
311
+ background: #f6fbff;
312
+ color: #234067;
313
+ border: 1px solid #b3d6f6;
314
+ border-radius: 4px;
315
+ padding: 6px 10px;
316
+ font-size: 13px;
317
+ outline: none;
318
+ transition: box-shadow 0.2s;
319
+ }
320
+
321
+ .input-row input#inDir:focus,
322
+ .input-row input#outDir:focus {
323
+ box-shadow: 0 0 0 2px #b6d6f6;
324
+ }
325
+
326
+ .input-row input#outFile,
327
+ .input-row input#outDir {
328
+ background: #f6fbff;
329
+ color: #234067;
330
+ border: 1px solid #b3d6f6;
331
+ border-radius: 4px;
332
+ padding: 6px 10px;
333
+ font-size: 13px;
334
+ outline: none;
335
+ transition: box-shadow 0.2s;
336
+ }
337
+
338
+ .input-row input#outFile:focus,
339
+ .input-row input#outDir:focus {
340
+ box-shadow: 0 0 0 2px #b6d6f6;
341
+ }
342
+
343
+ #dialog1 #search_str {
344
+ width: 100%;
345
+ box-sizing: border-box;
346
+ min-width: 120px;
347
+ max-width: 100%;
348
+ }
349
+
350
+ #dialog2 #search_str2 {
351
+ width: 100%;
352
+ box-sizing: border-box;
353
+ min-width: 120px;
354
+ max-width: 100%;
data/lib/html/index.html CHANGED
@@ -1,13 +1,16 @@
1
1
  <!DOCTYPE html>
2
- <html>
2
+ <html lang="ja">
3
3
 
4
4
  <head>
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
  <title>CppUMLClass</title>
8
- <!-- jQuery -->
8
+ <!-- Google Fonts & Material Icons -->
9
+ <link href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap" rel="stylesheet">
10
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
11
+
12
+ <!-- jQuery & jQuery UI -->
9
13
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
10
- <!-- jQuery UI -->
11
14
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
12
15
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
13
16
 
@@ -16,65 +19,59 @@
16
19
  </head>
17
20
 
18
21
  <body>
19
- <div id="msg_dialog" style="display:none;">
20
- <div id="msg_text">message</div>
21
- </div>
22
- <hr>
22
+ <header class="app-header">
23
+ <span class="material-icons">developer_board</span>
24
+ <span class="app-title">CppUMLClass</span>
25
+ </header>
26
+
23
27
  <!-- menu -->
24
- <div id="setting_dialog" style="display:none;">
25
- <dl id="wrap"></dl>
26
- </div>
27
- <div>
28
- <ul class="menu">
29
- <Li><a href="#" id="exec" name="exec">実行</a></li>
30
- <li><a href="#" id="stop" name="stop">停止</a></li>
31
- <li>
28
+ <ul class="menu">
29
+ <li><a href="#" id="exec"><span class="material-icons" style="vertical-align:middle;">play_arrow</span> 実行</a></li>
30
+ <li><a href="#" id="stop"><span class="material-icons" style="vertical-align:middle;">stop</span> 停止</a></li>
31
+ <li>
32
+ <span style="display:flex;align-items:center;gap:4px;cursor:pointer;">
33
+ <span class="material-icons" style="vertical-align:middle;">settings</span>
32
34
  設定
33
- <ul class="menuSub">
34
- <li><a href="#" id="setting">設定</a></li>
35
- <li><a href="#" id="save_setting">設定保存</a></li>
36
- <li><a href="#" id="load_setting">設定読み込み</a></li>
37
- </ul>
38
- </li>
39
- <!--
40
- <li>
41
- menu3
42
- <ul class="menuSub">
43
- <li><a href="#">menu3-1</a></li>
44
- <li><a href="#">menu3-2</a></li>
45
- </ul>
46
- </li>
47
- -->
48
- </ul>
49
- </div>
35
+ </span>
36
+ <ul class="menuSub">
37
+ <li><a href="#" id="setting">設定ダイアログ</a></li>
38
+ <li><a href="#" id="save_setting">設定保存</a></li>
39
+ <li><a href="#" id="load_setting">設定読み込み</a></li>
40
+ </ul>
41
+ </li>
42
+ </ul>
50
43
 
51
- <table>
52
- <tr>
53
- <td>
54
- <div id="dialog1" style="display:none;">
55
- <input class="inarea" type="search" name="search_str" id="search_str">
56
- </div>
57
- </td>
58
- <td class="long"><input class="inarea" type="search" id="inDir" name="inDir"></td>
59
- <td><input type="button" id="select_dir" value="対象フォルダ" /></td>
60
- </tr>
61
- <tr>
62
- <td>
63
- <div id="dialog2" style="display:none;">
64
- <input class="inarea" type="search" name="search_str2" id="search_str2">
65
- </div>
66
- </td>
67
- <td class="long"><input class="inarea" type="search" id="outFile" name="outFile"></td>
68
- <td><input type="button" id="select_file" value="出力ファイル" /></td>
69
- <td><input type="button" id="open_file" value="開く" /></td>
70
- </tr>
71
- </table>
44
+ <section class="main-content">
45
+ <div id="msg_dialog" style="display:none;">
46
+ <div id="msg_text">message</div>
47
+ </div>
48
+ <div id="setting_dialog" style="display:none;">
49
+ <dl id="wrap"></dl>
50
+ </div>
72
51
 
73
- <div class="outarea">
74
- <ul name="log" id="log" class="log">
75
- </ul>
76
- </div>
52
+ <!-- 入力行: 入力ディレクトリ/ファイル、検索 -->
53
+ <div class="input-row">
54
+ <input class="inarea" type="search" id="inDir" name="inDir" placeholder="入力フォルダ">
55
+ <div id="dialog1" style="display:none;">
56
+ <input class="inarea" type="search" name="search_str" id="search_str" placeholder="ファイル/ディレクトリ検索...">
57
+ </div>
58
+ <input type="button" id="select_dir" value="対象フォルダ" />
59
+ </div>
60
+ <div class="input-row">
61
+ <input class="inarea" type="search" id="outFile" name="outFile" placeholder="出力ファイル">
62
+ <div id="dialog2" style="display:none;">
63
+ <input class="inarea" type="search" name="search_str2" id="search_str2" placeholder="ファイル名検索...">
64
+ </div>
65
+ <input type="button" id="select_file" value="出力ファイル" />
66
+ <input type="button" id="open_file" value="開く" />
67
+ </div>
77
68
 
69
+ <!-- ログ表示 -->
70
+ <div class="outarea">
71
+ <ul name="log" id="log" class="log">
72
+ </ul>
73
+ </div>
74
+ </section>
78
75
  </body>
79
76
 
80
77
  </html>