Commit 6a8c2f09f96f7ac5e840c0ef4935a5641e83fc18
1 parent
5a230ad0
add colspan and rowspan attributes for editor and form table lines
Showing
3 changed files
with
121 additions
and
9 deletions
Show diff stats
ds_files/ds_types.anubis
| @@ -258,8 +258,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description = | @@ -258,8 +258,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description = | ||
| 258 | ]) | 258 | ]) |
| 259 | ]), | 259 | ]), |
| 260 | 260 | ||
| 261 | + ds_type("HK_Editor_Table_Line_Attribute", [ | ||
| 262 | + alternative("colspan", [ | ||
| 263 | + component(int, "number") | ||
| 264 | + ]), | ||
| 265 | + alternative("rowspan", [ | ||
| 266 | + component(int, "number") | ||
| 267 | + ]) | ||
| 268 | + ]), | ||
| 269 | + | ||
| 261 | ds_type("HK_Editor_Table_Line", [ | 270 | ds_type("HK_Editor_Table_Line", [ |
| 262 | alternative("line", [ | 271 | alternative("line", [ |
| 272 | + component(list, ds_type("HK_Editor_Table_Line_Attribute"), "line_attr"), | ||
| 263 | component(list, ds_type("HK_Editor_Table_Cell"), "cells") | 273 | component(list, ds_type("HK_Editor_Table_Cell"), "cells") |
| 264 | ]) | 274 | ]) |
| 265 | ]), | 275 | ]), |
| @@ -282,8 +292,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description = | @@ -282,8 +292,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description = | ||
| 282 | ]) | 292 | ]) |
| 283 | ]), | 293 | ]), |
| 284 | 294 | ||
| 295 | + ds_type("HK_Form_Table_Line_Attribute", no_message, [ | ||
| 296 | + alternative("colspan", [ | ||
| 297 | + component(int, "number") | ||
| 298 | + ]), | ||
| 299 | + alternative("rowspan", [ | ||
| 300 | + component(int, "number") | ||
| 301 | + ]) | ||
| 302 | + ]), | ||
| 303 | + | ||
| 285 | ds_type("HK_Form_Table_Line", no_message, [ | 304 | ds_type("HK_Form_Table_Line", no_message, [ |
| 286 | alternative("hk_form_table_line", [ | 305 | alternative("hk_form_table_line", [ |
| 306 | + component(list, ds_type("HK_Form_Table_Line_Attribute"), "line_attr"), | ||
| 287 | component(list, ds_type("HK_Form_Table_Cell"), "form_table_cells") | 307 | component(list, ds_type("HK_Form_Table_Cell"), "form_table_cells") |
| 288 | ]) | 308 | ]) |
| 289 | ]), | 309 | ]), |
view/types/hk_editor_table.anubis
| 1 | /* | 1 | /* |
| 2 | * Created by 伝作 (Densaku). | 2 | * Created by 伝作 (Densaku). |
| 3 | * Types & Messages generator written by フランスのトトロ aka (David RENÉ) | 3 | * Types & Messages generator written by フランスのトトロ aka (David RENÉ) |
| 4 | - * Date: 2017-04-12 | ||
| 5 | - * Time: 23:52:21 | 4 | + * Date: 2017-04-19 |
| 5 | + * Time: 16:17:58 | ||
| 6 | * | 6 | * |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| @@ -41,9 +41,20 @@ public type HK_Editor_Table_Cell: | @@ -41,9 +41,20 @@ public type HK_Editor_Table_Cell: | ||
| 41 | . | 41 | . |
| 42 | 42 | ||
| 43 | 43 | ||
| 44 | +public type HK_Editor_Table_Line_Attribute: | ||
| 45 | + colspan( | ||
| 46 | + Int number | ||
| 47 | + ), | ||
| 48 | + rowspan( | ||
| 49 | + Int number | ||
| 50 | + ) | ||
| 51 | +. | ||
| 52 | + | ||
| 53 | + | ||
| 44 | public type HK_Editor_Table_Line: | 54 | public type HK_Editor_Table_Line: |
| 45 | line( | 55 | line( |
| 46 | - List(HK_Editor_Table_Cell) cells | 56 | + List(HK_Editor_Table_Line_Attribute) line_attr, |
| 57 | + List(HK_Editor_Table_Cell) cells | ||
| 47 | ) | 58 | ) |
| 48 | . | 59 | . |
| 49 | 60 | ||
| @@ -136,6 +147,69 @@ public define Maybe(HK_Editor_Table_Cell) | @@ -136,6 +147,69 @@ public define Maybe(HK_Editor_Table_Cell) | ||
| 136 | 147 | ||
| 137 | 148 | ||
| 138 | 149 | ||
| 150 | + HK_Editor_Table_Line_Attribute message format | ||
| 151 | + ============================================= | ||
| 152 | + | ||
| 153 | + | ||
| 154 | +public define Message | ||
| 155 | + to_Message | ||
| 156 | + ( | ||
| 157 | + HK_Editor_Table_Line_Attribute _hk_editor_table_line_attribute | ||
| 158 | + )= | ||
| 159 | + with _hk_editor_table_line_attribute_message = message((Word32)0), // | ||
| 160 | + forget(add_string(_hk_editor_table_line_attribute_message, "__TYPE__", "HK_Editor_Table_Line_Attribute")); | ||
| 161 | + if _hk_editor_table_line_attribute is | ||
| 162 | + { | ||
| 163 | + //Alternative colspan | ||
| 164 | + colspan(_number) then | ||
| 165 | + forget(add_string(_hk_editor_table_line_attribute_message, "__TYPE_ALT__", "colspan")); | ||
| 166 | + // [type = Int] colspan.number | ||
| 167 | + forget(add_string(_hk_editor_table_line_attribute_message, "number", to_String(_number))), | ||
| 168 | + | ||
| 169 | + //Alternative rowspan | ||
| 170 | + rowspan(_number) then | ||
| 171 | + forget(add_string(_hk_editor_table_line_attribute_message, "__TYPE_ALT__", "rowspan")); | ||
| 172 | + // [type = Int] rowspan.number | ||
| 173 | + forget(add_string(_hk_editor_table_line_attribute_message, "number", to_String(_number))), | ||
| 174 | + | ||
| 175 | + }; | ||
| 176 | + _hk_editor_table_line_attribute_message | ||
| 177 | +. | ||
| 178 | + | ||
| 179 | +public define Maybe(HK_Editor_Table_Line_Attribute) | ||
| 180 | + from_Message | ||
| 181 | + ( | ||
| 182 | + Message _hk_editor_table_line_attribute_message | ||
| 183 | + )= | ||
| 184 | + if find_string(_hk_editor_table_line_attribute_message, "__TYPE__") is {failure then failure, success(__type__) then | ||
| 185 | + if find_string(_hk_editor_table_line_attribute_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then | ||
| 186 | + if __type__ = "HK_Editor_Table_Line_Attribute" then | ||
| 187 | + //Alternative colspan | ||
| 188 | + if __type_alt__ = "colspan" then //Alternative colspan | ||
| 189 | + // [type = Int] colspan.number | ||
| 190 | + if find_string(_hk_editor_table_line_attribute_message, "number") is {failure then failure, success(__number_) then | ||
| 191 | + if decimal_scan(__number_) is { failure then failure, success(_number_) then | ||
| 192 | + | ||
| 193 | + success(colspan(_number_)) | ||
| 194 | + }} | ||
| 195 | + else //Alternative rowspan | ||
| 196 | + if __type_alt__ = "rowspan" then //Alternative rowspan | ||
| 197 | + // [type = Int] rowspan.number | ||
| 198 | + if find_string(_hk_editor_table_line_attribute_message, "number") is {failure then failure, success(__number_) then | ||
| 199 | + if decimal_scan(__number_) is { failure then failure, success(_number_) then | ||
| 200 | + | ||
| 201 | + success(rowspan(_number_)) | ||
| 202 | + }} | ||
| 203 | + else | ||
| 204 | + failure //No valid Alternative found ! | ||
| 205 | + else | ||
| 206 | + failure //Type not found in message ! | ||
| 207 | + }} | ||
| 208 | +. | ||
| 209 | + | ||
| 210 | + | ||
| 211 | + | ||
| 212 | + | ||
| 139 | HK_Editor_Table_Line message format | 213 | HK_Editor_Table_Line message format |
| 140 | =================================== | 214 | =================================== |
| 141 | 215 | ||
| @@ -150,8 +224,10 @@ public define Message | @@ -150,8 +224,10 @@ public define Message | ||
| 150 | if _hk_editor_table_line is | 224 | if _hk_editor_table_line is |
| 151 | { | 225 | { |
| 152 | //Alternative line | 226 | //Alternative line |
| 153 | - line(__cells) then | 227 | + line(__line_attr, __cells) then |
| 154 | forget(add_string(_hk_editor_table_line_message, "__TYPE_ALT__", "line")); | 228 | forget(add_string(_hk_editor_table_line_message, "__TYPE_ALT__", "line")); |
| 229 | + // [type = List(HK_Editor_Table_Line_Attribute)] line.line_attr | ||
| 230 | + map_forget((HK_Editor_Table_Line_Attribute _line_attr) |-> add_message(_hk_editor_table_line_message, "line_attr", to_Message(_line_attr)), __line_attr); | ||
| 155 | // [type = List(HK_Editor_Table_Cell)] line.cells | 231 | // [type = List(HK_Editor_Table_Cell)] line.cells |
| 156 | map_forget((HK_Editor_Table_Cell _cells) |-> add_message(_hk_editor_table_line_message, "cells", to_Message(_cells)), __cells), | 232 | map_forget((HK_Editor_Table_Cell _cells) |-> add_message(_hk_editor_table_line_message, "cells", to_Message(_cells)), __cells), |
| 157 | 233 | ||
| @@ -169,12 +245,15 @@ public define Maybe(HK_Editor_Table_Line) | @@ -169,12 +245,15 @@ public define Maybe(HK_Editor_Table_Line) | ||
| 169 | if __type__ = "HK_Editor_Table_Line" then | 245 | if __type__ = "HK_Editor_Table_Line" then |
| 170 | //Alternative line | 246 | //Alternative line |
| 171 | if __type_alt__ = "line" then //Alternative line | 247 | if __type_alt__ = "line" then //Alternative line |
| 248 | + // [type = List(HK_Editor_Table_Line_Attribute)] line.line_attr | ||
| 249 | + with mb__line_attr_ = map_escape(( Message msg ) |-> (Maybe(HK_Editor_Table_Line_Attribute)) from_Message(msg), find_messages(_hk_editor_table_line_message, "line_attr")), | ||
| 250 | + if mb__line_attr_ is {failure then failure, success(_line_attr_) then | ||
| 172 | // [type = List(HK_Editor_Table_Cell)] line.cells | 251 | // [type = List(HK_Editor_Table_Cell)] line.cells |
| 173 | with mb__cells_ = map_escape(( Message msg ) |-> (Maybe(HK_Editor_Table_Cell)) from_Message(msg), find_messages(_hk_editor_table_line_message, "cells")), | 252 | with mb__cells_ = map_escape(( Message msg ) |-> (Maybe(HK_Editor_Table_Cell)) from_Message(msg), find_messages(_hk_editor_table_line_message, "cells")), |
| 174 | if mb__cells_ is {failure then failure, success(_cells_) then | 253 | if mb__cells_ is {failure then failure, success(_cells_) then |
| 175 | 254 | ||
| 176 | - success(line(_cells_)) | ||
| 177 | - } | 255 | + success(line(_line_attr_, _cells_)) |
| 256 | + }} | ||
| 178 | else | 257 | else |
| 179 | failure //No valid Alternative found ! | 258 | failure //No valid Alternative found ! |
| 180 | else | 259 | else |
view/types/hk_form_table.anubis
| 1 | /* | 1 | /* |
| 2 | * Created by 伝作 (Densaku). | 2 | * Created by 伝作 (Densaku). |
| 3 | * Types & Messages generator written by フランスのトトロ aka (David RENÉ) | 3 | * Types & Messages generator written by フランスのトトロ aka (David RENÉ) |
| 4 | - * Date: 2017-04-12 | ||
| 5 | - * Time: 23:52:21 | 4 | + * Date: 2017-04-19 |
| 5 | + * Time: 15:54:06 | ||
| 6 | * | 6 | * |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| @@ -38,9 +38,20 @@ public type HK_Form_Table_Cell: | @@ -38,9 +38,20 @@ public type HK_Form_Table_Cell: | ||
| 38 | . | 38 | . |
| 39 | 39 | ||
| 40 | 40 | ||
| 41 | +public type HK_Form_Line_Attribute: | ||
| 42 | + colspan( | ||
| 43 | + Int number | ||
| 44 | + ), | ||
| 45 | + rowspan( | ||
| 46 | + Int number | ||
| 47 | + ) | ||
| 48 | +. | ||
| 49 | + | ||
| 50 | + | ||
| 41 | public type HK_Form_Table_Line: | 51 | public type HK_Form_Table_Line: |
| 42 | hk_form_table_line( | 52 | hk_form_table_line( |
| 43 | - List(HK_Form_Table_Cell) form_table_cells | 53 | + List(HK_Form_Line_Attribute) line_attr, |
| 54 | + List(HK_Form_Table_Cell) form_table_cells | ||
| 44 | ) | 55 | ) |
| 45 | . | 56 | . |
| 46 | 57 | ||
| @@ -64,6 +75,8 @@ public type HK_Form_Table: | @@ -64,6 +75,8 @@ public type HK_Form_Table: | ||
| 64 | 75 | ||
| 65 | 76 | ||
| 66 | 77 | ||
| 78 | + | ||
| 79 | + | ||
| 67 | HK_Form_Table_Attribute message format | 80 | HK_Form_Table_Attribute message format |
| 68 | ====================================== | 81 | ====================================== |
| 69 | 82 |