From c5431e4d321dbf0152e6826841c1ef5c1291ba5b Mon Sep 17 00:00:00 2001 From: Syndamia Date: Tue, 14 Jun 2022 15:38:50 +0300 Subject: Added files from project 2 (mirror) --- .../Project 2/docs/html/CellDouble_8h.html | 96 + .../Project 2/docs/html/CellDouble_8h_source.html | 107 ++ .../Project 2/docs/html/CellFormula_8h.html | 99 ++ .../Project 2/docs/html/CellFormula_8h_source.html | 119 ++ .../Project 2/docs/html/CellInt_8h.html | 96 + .../Project 2/docs/html/CellInt_8h_source.html | 107 ++ .../Project 2/docs/html/CellString_8h.html | 96 + .../Project 2/docs/html/CellString_8h_source.html | 106 ++ .../Project 2/docs/html/Cell_8h.html | 97 ++ .../Project 2/docs/html/Cell_8h_source.html | 102 ++ .../Project 2/docs/html/Command_8h.html | 95 + .../Project 2/docs/html/Command_8h_source.html | 98 ++ .../docs/html/FMI-OOP-P2_Table Overview.svg | 403 +++++ .../Project 2/docs/html/List_8hpp.html | 180 ++ .../Project 2/docs/html/List_8hpp_source.html | 380 ++++ .../Project 2/docs/html/Menu_8h.html | 97 ++ .../Project 2/docs/html/Menu_8h_source.html | 106 ++ .../Project 2/docs/html/Pair_8hpp.html | 95 + .../Project 2/docs/html/Pair_8hpp_source.html | 100 ++ .../Project 2/docs/html/String_8h.html | 104 ++ .../Project 2/docs/html/String_8h_source.html | 133 ++ .../Project 2/docs/html/Table_8h.html | 98 ++ .../Project 2/docs/html/Table_8h_source.html | 113 ++ .../Project 2/docs/html/Toolbox_8hpp.html | 227 +++ .../Project 2/docs/html/Toolbox_8hpp_source.html | 129 ++ .../Project 2/docs/html/UserInterface_8h.html | 98 ++ .../docs/html/UserInterface_8h_source.html | 114 ++ .../Project 2/docs/html/annotated.html | 91 + .../Project 2/docs/html/bc_s.png | Bin 0 -> 676 bytes .../Project 2/docs/html/bdwn.png | Bin 0 -> 147 bytes .../Project 2/docs/html/classCell-members.html | 83 + .../Project 2/docs/html/classCell.html | 235 +++ .../Project 2/docs/html/classCell.png | Bin 0 -> 846 bytes .../docs/html/classCellDouble-members.html | 86 + .../Project 2/docs/html/classCellDouble.html | 271 +++ .../Project 2/docs/html/classCellDouble.png | Bin 0 -> 367 bytes .../docs/html/classCellFormula-members.html | 85 + .../Project 2/docs/html/classCellFormula.html | 254 +++ .../Project 2/docs/html/classCellFormula.png | Bin 0 -> 385 bytes .../Project 2/docs/html/classCellInt-members.html | 86 + .../Project 2/docs/html/classCellInt.html | 252 +++ .../Project 2/docs/html/classCellInt.png | Bin 0 -> 309 bytes .../docs/html/classCellString-members.html | 85 + .../Project 2/docs/html/classCellString.html | 248 +++ .../Project 2/docs/html/classCellString.png | Bin 0 -> 376 bytes .../Project 2/docs/html/classCommand-members.html | 82 + .../Project 2/docs/html/classCommand.html | 167 ++ .../Project 2/docs/html/classList-members.html | 106 ++ .../Project 2/docs/html/classList.html | 429 +++++ .../Project 2/docs/html/classMenu-members.html | 82 + .../Project 2/docs/html/classMenu.html | 132 ++ .../Project 2/docs/html/classString-members.html | 98 ++ .../Project 2/docs/html/classString.html | 444 +++++ .../Project 2/docs/html/classTable-members.html | 85 + .../Project 2/docs/html/classTable.html | 116 ++ .../docs/html/classUserInterface-members.html | 80 + .../Project 2/docs/html/classUserInterface.html | 97 ++ .../Project 2/docs/html/classes.html | 99 ++ .../Project 2/docs/html/closed.png | Bin 0 -> 132 bytes .../html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html | 86 + .../html/dir_13a0a9da12973dc2d2eb801d618278f1.html | 100 ++ .../html/dir_2264f2756aad4c6edc6800fd12175f32.html | 86 + .../html/dir_25ba087ece98efc8c7278d78326e4919.html | 91 + .../html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html | 93 + .../html/dir_36df885461d6bd14211edf06510d126c.html | 101 ++ .../html/dir_49e56c817e5e54854c35e136979f97ca.html | 79 + .../html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html | 86 + .../html/dir_68267d1309a1af8e8297ef4c3efbcdba.html | 93 + .../html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html | 86 + .../html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html | 86 + .../html/dir_826eb72f5c1b884914782ed7017f0eb6.html | 85 + .../html/dir_962376993fec580a14c8c11054a78b19.html | 86 + .../html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html | 79 + .../html/dir_b37d33ceb7f5c107fb027d4db224bc89.html | 91 + .../html/dir_b531042f772ac0962b48690ffe7677e8.html | 92 + .../html/dir_bba1b217f5afc342a21d50631c0a2103.html | 86 + .../html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html | 92 + .../html/dir_fe8e9063aee6652b92d0c0438ff517cb.html | 86 + .../Project 2/docs/html/doc.png | Bin 0 -> 746 bytes .../Project 2/docs/html/doxygen.css | 1841 ++++++++++++++++++++ .../Project 2/docs/html/doxygen.svg | 26 + .../Project 2/docs/html/dynsections.js | 121 ++ .../Project 2/docs/html/files.html | 101 ++ .../Project 2/docs/html/folderclosed.png | Bin 0 -> 616 bytes .../Project 2/docs/html/folderopen.png | Bin 0 -> 597 bytes .../Project 2/docs/html/functions.html | 158 ++ .../Project 2/docs/html/functions_func.html | 156 ++ .../Project 2/docs/html/functions_rela.html | 76 + .../Project 2/docs/html/globals.html | 81 + .../Project 2/docs/html/globals_func.html | 81 + .../Project 2/docs/html/hierarchy.html | 96 + .../Project 2/docs/html/index.html | 108 ++ .../Project 2/docs/html/jquery.js | 35 + .../Project 2/docs/html/main_8cpp.html | 94 + .../Project 2/docs/html/menu.js | 127 ++ .../Project 2/docs/html/menudata.js | 65 + .../Project 2/docs/html/nav_f.png | Bin 0 -> 153 bytes .../Project 2/docs/html/nav_g.png | Bin 0 -> 95 bytes .../Project 2/docs/html/nav_h.png | Bin 0 -> 98 bytes .../Project 2/docs/html/open.png | Bin 0 -> 123 bytes .../Project 2/docs/html/search/all_0.html | 37 + .../Project 2/docs/html/search/all_0.js | 5 + .../Project 2/docs/html/search/all_1.html | 37 + .../Project 2/docs/html/search/all_1.js | 18 + .../Project 2/docs/html/search/all_2.html | 37 + .../Project 2/docs/html/search/all_2.js | 5 + .../Project 2/docs/html/search/all_3.html | 37 + .../Project 2/docs/html/search/all_3.js | 11 + .../Project 2/docs/html/search/all_4.html | 37 + .../Project 2/docs/html/search/all_4.js | 5 + .../Project 2/docs/html/search/all_5.html | 37 + .../Project 2/docs/html/search/all_5.js | 9 + .../Project 2/docs/html/search/all_6.html | 37 + .../Project 2/docs/html/search/all_6.js | 6 + .../Project 2/docs/html/search/all_7.html | 37 + .../Project 2/docs/html/search/all_7.js | 4 + .../Project 2/docs/html/search/all_8.html | 37 + .../Project 2/docs/html/search/all_8.js | 7 + .../Project 2/docs/html/search/all_9.html | 37 + .../Project 2/docs/html/search/all_9.js | 11 + .../Project 2/docs/html/search/all_a.html | 37 + .../Project 2/docs/html/search/all_a.js | 7 + .../Project 2/docs/html/search/all_b.html | 37 + .../Project 2/docs/html/search/all_b.js | 6 + .../Project 2/docs/html/search/all_c.html | 37 + .../Project 2/docs/html/search/all_c.js | 6 + .../Project 2/docs/html/search/all_d.html | 37 + .../Project 2/docs/html/search/all_d.js | 5 + .../Project 2/docs/html/search/all_e.html | 37 + .../Project 2/docs/html/search/all_e.js | 5 + .../Project 2/docs/html/search/classes_0.html | 37 + .../Project 2/docs/html/search/classes_0.js | 9 + .../Project 2/docs/html/search/classes_1.html | 37 + .../Project 2/docs/html/search/classes_1.js | 8 + .../Project 2/docs/html/search/classes_2.html | 37 + .../Project 2/docs/html/search/classes_2.js | 4 + .../Project 2/docs/html/search/classes_3.html | 37 + .../Project 2/docs/html/search/classes_3.js | 5 + .../Project 2/docs/html/search/classes_4.html | 37 + .../Project 2/docs/html/search/classes_4.js | 4 + .../Project 2/docs/html/search/classes_5.html | 37 + .../Project 2/docs/html/search/classes_5.js | 4 + .../Project 2/docs/html/search/classes_6.html | 37 + .../Project 2/docs/html/search/classes_6.js | 4 + .../Project 2/docs/html/search/close.svg | 31 + .../Project 2/docs/html/search/files_0.html | 37 + .../Project 2/docs/html/search/files_0.js | 9 + .../Project 2/docs/html/search/files_1.html | 37 + .../Project 2/docs/html/search/files_1.js | 4 + .../Project 2/docs/html/search/files_2.html | 37 + .../Project 2/docs/html/search/files_2.js | 5 + .../Project 2/docs/html/search/files_3.html | 37 + .../Project 2/docs/html/search/files_3.js | 4 + .../Project 2/docs/html/search/files_4.html | 37 + .../Project 2/docs/html/search/files_4.js | 4 + .../Project 2/docs/html/search/files_5.html | 37 + .../Project 2/docs/html/search/files_5.js | 5 + .../Project 2/docs/html/search/files_6.html | 37 + .../Project 2/docs/html/search/files_6.js | 4 + .../Project 2/docs/html/search/functions_0.html | 37 + .../Project 2/docs/html/search/functions_0.js | 5 + .../Project 2/docs/html/search/functions_1.html | 37 + .../Project 2/docs/html/search/functions_1.js | 8 + .../Project 2/docs/html/search/functions_2.html | 37 + .../Project 2/docs/html/search/functions_2.js | 4 + .../Project 2/docs/html/search/functions_3.html | 37 + .../Project 2/docs/html/search/functions_3.js | 11 + .../Project 2/docs/html/search/functions_4.html | 37 + .../Project 2/docs/html/search/functions_4.js | 5 + .../Project 2/docs/html/search/functions_5.html | 37 + .../Project 2/docs/html/search/functions_5.js | 4 + .../Project 2/docs/html/search/functions_6.html | 37 + .../Project 2/docs/html/search/functions_6.js | 4 + .../Project 2/docs/html/search/functions_7.html | 37 + .../Project 2/docs/html/search/functions_7.js | 4 + .../Project 2/docs/html/search/functions_8.html | 37 + .../Project 2/docs/html/search/functions_8.js | 7 + .../Project 2/docs/html/search/functions_9.html | 37 + .../Project 2/docs/html/search/functions_9.js | 8 + .../Project 2/docs/html/search/functions_a.html | 37 + .../Project 2/docs/html/search/functions_a.js | 7 + .../Project 2/docs/html/search/functions_b.html | 37 + .../Project 2/docs/html/search/functions_b.js | 5 + .../Project 2/docs/html/search/functions_c.html | 37 + .../Project 2/docs/html/search/functions_c.js | 5 + .../Project 2/docs/html/search/mag_sel.svg | 74 + .../Project 2/docs/html/search/nomatches.html | 13 + .../Project 2/docs/html/search/pages_0.html | 37 + .../Project 2/docs/html/search/pages_0.js | 4 + .../Project 2/docs/html/search/related_0.html | 37 + .../Project 2/docs/html/search/related_0.js | 5 + .../Project 2/docs/html/search/search.css | 263 +++ .../Project 2/docs/html/search/search.js | 794 +++++++++ .../Project 2/docs/html/search/search_l.png | Bin 0 -> 567 bytes .../Project 2/docs/html/search/search_m.png | Bin 0 -> 158 bytes .../Project 2/docs/html/search/search_r.png | Bin 0 -> 553 bytes .../Project 2/docs/html/search/searchdata.js | 30 + .../Project 2/docs/html/splitbar.png | Bin 0 -> 314 bytes .../Project 2/docs/html/structPair-members.html | 82 + .../Project 2/docs/html/structPair.html | 107 ++ .../Project 2/docs/html/sync_off.png | Bin 0 -> 853 bytes .../Project 2/docs/html/sync_on.png | Bin 0 -> 845 bytes .../Project 2/docs/html/tab_a.png | Bin 0 -> 142 bytes .../Project 2/docs/html/tab_b.png | Bin 0 -> 169 bytes .../Project 2/docs/html/tab_h.png | Bin 0 -> 177 bytes .../Project 2/docs/html/tab_s.png | Bin 0 -> 184 bytes .../Project 2/docs/html/tabs.css | 1 + 207 files changed, 15530 insertions(+) create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCell.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classList.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classString.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/classes.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/closed.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/doc.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/files.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/functions.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/globals.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/index.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/menu.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/open.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/search_l.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/search_m.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/search_r.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/search/searchdata.js create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/splitbar.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/structPair-members.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.png create mode 100644 Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css (limited to 'Year 1/Object-oriented Programming/Project 2/docs/html') diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html new file mode 100644 index 0000000..0bde245 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h.html @@ -0,0 +1,96 @@ + + + + + + + +FMI Table: src/Models/CellDouble.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
CellDouble.h File Reference
+
+
+ +

Stores the declaration of class CellDouble. +More...

+
#include "Cell.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  CellDouble
 A table cell which contains a double-precision floating point number. More...
 
+

Detailed Description

+

Stores the declaration of class CellDouble.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html new file mode 100644 index 0000000..66cefe2 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellDouble_8h_source.html @@ -0,0 +1,107 @@ + + + + + + + +FMI Table: src/Models/CellDouble.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
CellDouble.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CELLDOUBLE
+
2#define HEADER_CELLDOUBLE
+
3
+
8#include "Cell.h"
+
9
+
14class CellDouble : public Cell {
+
15 double value;
+
16
+
17public:
+
18 CellDouble() = default;
+
19 CellDouble(double value);
+
20 CellDouble(const char* str);
+
21
+
22 double getNumeralValue() const override;
+
23 String getValueForPrint() const override;
+
24 void parseAndSetValue(const char* str) override;
+
25 void writeToFile(std::ofstream& file) override;
+
26};
+
27
+
28#endif
+
Stores the declaration of class Cell.
+
A table cell which contains a double-precision floating point number.
Definition: CellDouble.h:14
+
void writeToFile(std::ofstream &file) override
Writes value to a text file.
Definition: CellDouble.cpp:37
+
double getNumeralValue() const override
Returns the value of the cell as a double-precision floating point number.
Definition: CellDouble.cpp:25
+
void parseAndSetValue(const char *str) override
Parses given C-style string and stores value.
Definition: CellDouble.cpp:33
+
String getValueForPrint() const override
Returns the value of the cell as a String.
Definition: CellDouble.cpp:29
+
Fully abstract class that represents a cell in the table.
Definition: Cell.h:13
+
A dynamically-allocated C-style string with extra features.
Definition: String.h:17
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html new file mode 100644 index 0000000..1106b0b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h.html @@ -0,0 +1,99 @@ + + + + + + + +FMI Table: src/Models/CellFormula.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
CellFormula.h File Reference
+
+
+ +

Stores the declaration of class CellFormula. +More...

+
#include "Cell.h"
+#include "CellDouble.h"
+#include "../Generic/List/List.hpp"
+#include "../Generic/Pair/Pair.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  CellFormula
 A table cell which contains a formula. More...
 
+

Detailed Description

+

Stores the declaration of class CellFormula.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html new file mode 100644 index 0000000..7c793a1 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellFormula_8h_source.html @@ -0,0 +1,119 @@ + + + + + + + +FMI Table: src/Models/CellFormula.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
CellFormula.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CELLFORMULA
+
2#define HEADER_CELLFORMULA
+
3
+
8#include "Cell.h"
+
9#include "CellDouble.h"
+
10#include "../Generic/List/List.hpp"
+
11#include "../Generic/Pair/Pair.hpp"
+
12
+
17class CellFormula : public Cell {
+
18 const List<List<Cell*>>* tableCells;
+
19 List<CellDouble> localCells;
+
20
+
21 List<Pair<Pair<int, int>, char>> formula;
+
22 String rawFormula;
+
23
+
24 const Cell* ptrByInd(Pair<int, int> loc) const;
+
25 double calculate(unsigned index = 0) const;
+
26
+
27public:
+
28 CellFormula() = default;
+
29 CellFormula(const char* str, const List<List<Cell*>>* tableCells);
+
30
+
31 double getNumeralValue() const override;
+
32 String getValueForPrint() const override;
+
33 void parseAndSetValue(const char* str) override;
+
34 void writeToFile(std::ofstream& file) override;
+
35};
+
36
+
37#endif
+
Stores the declaration of class CellDouble.
+
Stores the declaration of class Cell.
+
A table cell which contains a formula.
Definition: CellFormula.h:17
+
void writeToFile(std::ofstream &file) override
Writes value to a text file.
Definition: CellFormula.cpp:188
+
String getValueForPrint() const override
Definition: CellFormula.cpp:84
+
double getNumeralValue() const override
Definition: CellFormula.cpp:69
+
void parseAndSetValue(const char *str) override
Definition: CellFormula.cpp:128
+
Fully abstract class that represents a cell in the table.
Definition: Cell.h:13
+
Templated class that stores an array of elements in dynamic memory.
Definition: List.hpp:22
+
A dynamically-allocated C-style string with extra features.
Definition: String.h:17
+
Stores two values of any types.
Definition: Pair.hpp:13
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html new file mode 100644 index 0000000..e1fc925 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h.html @@ -0,0 +1,96 @@ + + + + + + + +FMI Table: src/Models/CellInt.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
CellInt.h File Reference
+
+
+ +

Stores the declaration of class Cell. +More...

+
#include "Cell.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  CellInt
 A table cell which contains an integer. More...
 
+

Detailed Description

+

Stores the declaration of class Cell.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html new file mode 100644 index 0000000..a9d9712 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellInt_8h_source.html @@ -0,0 +1,107 @@ + + + + + + + +FMI Table: src/Models/CellInt.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
CellInt.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CELLINT
+
2#define HEADER_CELLINT
+
3
+
8#include "Cell.h"
+
9
+
14class CellInt : public Cell {
+
15 int value;
+
16
+
17public:
+
18 CellInt() = default;
+
19 CellInt(int value);
+
20 CellInt(const char* str);
+
21
+
22 double getNumeralValue() const override;
+
23 String getValueForPrint() const override;
+
24 void parseAndSetValue(const char* str) override;
+
25 void writeToFile(std::ofstream& file) override;
+
26};
+
27
+
28#endif
+
Stores the declaration of class Cell.
+
A table cell which contains an integer.
Definition: CellInt.h:14
+
String getValueForPrint() const override
Returns the value of the cell as a String.
Definition: CellInt.cpp:23
+
void parseAndSetValue(const char *str) override
Parses given C-style string and stores value.
Definition: CellInt.cpp:27
+
void writeToFile(std::ofstream &file) override
Writes value to a text file.
Definition: CellInt.cpp:31
+
double getNumeralValue() const override
Returns the value of the cell as a double-precision floating point number.
Definition: CellInt.cpp:19
+
Fully abstract class that represents a cell in the table.
Definition: Cell.h:13
+
A dynamically-allocated C-style string with extra features.
Definition: String.h:17
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html new file mode 100644 index 0000000..c7f8fa5 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h.html @@ -0,0 +1,96 @@ + + + + + + + +FMI Table: src/Models/CellString.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
CellString.h File Reference
+
+
+ +

Stores the declaration of class CellString. +More...

+
#include "Cell.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  CellString
 A table cell which contains a String value. More...
 
+

Detailed Description

+

Stores the declaration of class CellString.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html new file mode 100644 index 0000000..0e3e9d2 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/CellString_8h_source.html @@ -0,0 +1,106 @@ + + + + + + + +FMI Table: src/Models/CellString.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
CellString.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CELLSTRING
+
2#define HEADER_CELLSTRING
+
3
+
8#include "Cell.h"
+
9
+
12class CellString : public Cell {
+
13 String value;
+
14
+
15public:
+
16 CellString() = default;
+
17 CellString(const char* str);
+
18
+
19 double getNumeralValue() const override;
+
20 String getValueForPrint() const override;
+
21 void parseAndSetValue(const char* str) override;
+
22 void writeToFile(std::ofstream& file) override;
+
23};
+
24
+
25#endif
+
Stores the declaration of class Cell.
+
A table cell which contains a String value.
Definition: CellString.h:12
+
String getValueForPrint() const override
Returns the value of the cell as a String.
Definition: CellString.cpp:12
+
void parseAndSetValue(const char *str) override
Parses given C-style string and stores value.
Definition: CellString.cpp:16
+
void writeToFile(std::ofstream &file) override
Writes value to a text file.
Definition: CellString.cpp:20
+
double getNumeralValue() const override
Returns the value of the cell as a double-precision floating point number.
Definition: CellString.cpp:8
+
Fully abstract class that represents a cell in the table.
Definition: Cell.h:13
+
A dynamically-allocated C-style string with extra features.
Definition: String.h:17
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html new file mode 100644 index 0000000..6037deb --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h.html @@ -0,0 +1,97 @@ + + + + + + + +FMI Table: src/Models/Cell.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
Cell.h File Reference
+
+
+ +

Stores the declaration of class Cell. +More...

+
#include <fstream>
+#include "../Generic/String/String.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  Cell
 Fully abstract class that represents a cell in the table. More...
 
+

Detailed Description

+

Stores the declaration of class Cell.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html new file mode 100644 index 0000000..a2ce69a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Cell_8h_source.html @@ -0,0 +1,102 @@ + + + + + + + +FMI Table: src/Models/Cell.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Cell.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CELL
+
2#define HEADER_CELL
+
3
+
8#include <fstream>
+
9#include "../Generic/String/String.h"
+
10
+
13class Cell {
+
14public:
+
16 virtual double getNumeralValue() const = 0;
+
18 virtual String getValueForPrint() const = 0;
+
20 virtual void parseAndSetValue(const char* str) = 0;
+
22 virtual void writeToFile(std::ofstream& file) = 0;
+
23
+
24 virtual ~Cell() = default;
+
25};
+
26
+
27#endif
+
Fully abstract class that represents a cell in the table.
Definition: Cell.h:13
+
virtual double getNumeralValue() const =0
Returns the value of the cell as a double-precision floating point number.
+
virtual void writeToFile(std::ofstream &file)=0
Writes value to a text file.
+
virtual void parseAndSetValue(const char *str)=0
Parses given C-style string and stores value.
+
virtual String getValueForPrint() const =0
Returns the value of the cell as a String.
+
A dynamically-allocated C-style string with extra features.
Definition: String.h:17
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html new file mode 100644 index 0000000..000f8e7 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h.html @@ -0,0 +1,95 @@ + + + + + + + +FMI Table: src/Generic/ConsoleInterface/Command.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
Command.h File Reference
+
+
+ +

Stores the declaration of class Command. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  Command
 Stores a 256 character name and a function pointer to be executed when calling run() More...
 
+

Detailed Description

+

Stores the declaration of class Command.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html new file mode 100644 index 0000000..00c165a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Command_8h_source.html @@ -0,0 +1,98 @@ + + + + + + + +FMI Table: src/Generic/ConsoleInterface/Command.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Command.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CONSOLEINTERFACE_COMMAND
+
2#define HEADER_CONSOLEINTERFACE_COMMAND
+
3
+
12class Command {
+
13 char name[256];
+
14 void (*exec)(const char* params);
+
15
+
16public:
+
18 Command();
+
20 Command(const char* name, void (*exec)(const char* params));
+
22 void run(const char* params) const;
+
23
+
24 const char* get_name() const;
+
25};
+
26
+
27#endif
+
Stores a 256 character name and a function pointer to be executed when calling run()
Definition: Command.h:12
+
Command()
Leaves name empty and exec function pointer to nullptr.
Definition: Command.cpp:4
+
void run(const char *params) const
Executes the stored function pointer.
Definition: Command.cpp:17
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg new file mode 100644 index 0000000..89459ee --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/FMI-OOP-P2_Table Overview.svg @@ -0,0 +1,403 @@ + + FMI-OOP-P2_Table Overview + #title: FMI-OOP-P2_Table Overview + #background: #fdf6e3 + #bendSize: 0 + #fillArrows: true + #lineWidth: 2 + #leading: 1.3 + + #.groupui: title=italic fill=#b2ee97 direction=right + #.groupes: title=italic fill=#97c8ee direction=right + #.groupm: title=italic fill=#ee9797 direction=down + #.groupv: title=italic fill=#eee997 direction=right + #.groupgc: title=italic fill=#c0baac direction=right + + [<groupui> User Interface| + [ConsoleUI.cpp| + run() + > open + > close + > save + > saveas + > help + > exit + -- + > print + > edit + ] + ] + + [<groupm> Models| + [Table| + List<List<Cell>> cells + ] + [Table]--[Cell] + + [<abstract>Cell| + String getValueForPrint() = 0 + setValue(char*) = 0 + openFromFile(char*) = 0 + saveToFile(char*) = 0 + ] + + [CellString| + ] + [Cell]<:--[CellString] + + [CellInt| + ] + [Cell]<:--[CellInt] + + [CellDouble| + ] + [Cell]<:--[CellDouble] + + [CellFormula| + List<Cell*> referencedCells + ] + [Cell]<:--[CellFormula] + ] + [User Interface]<--[Models] + + [<groupgc> Generic Classes| + [List<T>| + add(elem) + insertAt(elem, index) + removeAt(index) + findIndex(elem); + contain(elem); + operator\[\](index) + ] + + [String| + char* str + unsigned length + unsigned count + ] + [List<T>]-/-[String] + + [Command| + String name + void (*exec)() + ] + + [Menu| + List<Command> commands + navigate() + ] + [Menu]-->[Command] + ] + [<hidden>H1]-/-[Generic Classes] + + + + + + + + + + + + + + + + + + + User Interface + + + + + + + + + + + + + + ConsoleUI.cpp + + + + + + run() + > open + > close + > save + > saveas + > help + > exit + -- + > print + > edit + + + + + + + + + + + + + + + + Models + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Table + + + + + + List<List<Cell>> cells + + + + + + + + + + + + Cell + + + + + + String getValueForPrint() = 0 + setValue(char*) = 0 + openFromFile(char*) = 0 + saveToFile(char*) = 0 + + + + + + + + + + + + CellString + + + + + + + + + + + + + + + + + CellInt + + + + + + + + + + + + + + + + + CellDouble + + + + + + + + + + + + + + + + + CellFormula + + + + + + List<Cell*> referencedCells + + + + + + + + + + + + + + + + Generic Classes + + + + + + + + + + + + + + + + + + List<T> + + + + + + add(elem) + insertAt(elem, index) + removeAt(index) + findIndex(elem) + contain(elem) + operator[](index) + + + + + + + + + + + + String + + + + + + char* str + unsigned length + unsigned count + + + + + + + + + + + + Command + + + + + + String name + void (*exec)() + + + + + + + + + + + + Menu + + + + + + List<Command> commands + navigate() + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html new file mode 100644 index 0000000..ef7295e --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp.html @@ -0,0 +1,180 @@ + + + + + + + +FMI Table: src/Generic/List/List.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
List.hpp File Reference
+
+
+ +

Stores declaration and definition of templated class List. +More...

+
#include <istream>
+#include <ostream>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  List< T >
 Templated class that stores an array of elements in dynamic memory. More...
 
+ + + + + + + + + +

+Functions

template<typename T >
std::istream & operator>> (std::istream &istr, List< T > &obj)
 Reads List from stream with >> operator. More...
 
template<typename T >
std::ostream & operator<< (std::ostream &ostr, const List< T > &obj)
 Writes List to stream with << operator. More...
 
+

Detailed Description

+

Stores declaration and definition of templated class List.

+

Function Documentation

+ +

◆ operator<<()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
std::ostream & operator<< (std::ostream & ostr,
const List< T > & obj 
)
+
+ +

Writes List to stream with << operator.

+

Uses the stream's << operator to write the count and then all objects.

+
Warning
The function depends on the type having the operator << defined, which takes an std::ostream& and writes it's data to it. Return type doesn't matter.
+
Note
Best used with std::cout or text std::ofstream
+ +
+
+ +

◆ operator>>()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
std::istream & operator>> (std::istream & istr,
List< T > & obj 
)
+
+ +

Reads List from stream with >> operator.

+

Uses the stream's >> operator to read and parse the elements. The first item in the stream should be the count.

+
Warning
The function depends on the type having the operator >> defined, which takes an std::istream& and writes it's data to it. Return type doesn't matter.
+
Note
Best used with std::cin or text std::ifstream
+ +
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html new file mode 100644 index 0000000..7134dcb --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/List_8hpp_source.html @@ -0,0 +1,380 @@ + + + + + + + +FMI Table: src/Generic/List/List.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
List.hpp
+
+
+Go to the documentation of this file.
1#ifndef HEADER_LIST
+
2#define HEADER_LIST
+
3
+
8#include <istream>
+
9#include <ostream>
+
10
+
21template <typename T>
+
22class List {
+
23protected:
+
24 T* elements;
+
25 unsigned length;
+
26 unsigned count;
+
27
+
28 void resize();
+
29 void free();
+
30 void copyFrom(const List& other);
+
31
+
32public:
+
34 List(const T* elements, unsigned elementsCount);
+
36 List(unsigned length);
+
38 void add(const T& element);
+
40 void insertAt(const T& element, unsigned index);
+
42 bool removeAt(unsigned index);
+
44 unsigned findIndex(const T& element) const;
+
45 bool contain(const T& element) const;
+
47 T& operator[](unsigned index);
+
49 const T& operator[](unsigned index) const;
+
51 const T* raw_data() const;
+
53 void clear();
+
54
+
56 List<T>& operator+=(const List<T> other);
+
57
+
59 std::istream& read(std::istream& istr);
+
61 std::ostream& write(std::ostream& ostr) const;
+
62
+
64 unsigned get_length() const;
+
66 unsigned get_count() const;
+
67
+
68 List();
+
69 List& operator=(const List& other);
+
70 List(const List& other);
+
71 ~List();
+
72
+
73 List(List&& other);
+
74 List& operator=(List&& other);
+
75};
+
76
+
78template <typename T>
+
79std::istream& operator>>(std::istream& istr, List<T>& obj);
+
81template <typename T>
+
82std::ostream& operator<<(std::ostream& ostr, const List<T>& obj);
+
83
+
84/* Private */
+
85
+
86template <typename T>
+
87void List<T>::resize() {
+
88 length = (length == 0) ? 8 : length << 1;
+
89 T* temp = new T[length];
+
90 for (int i = 0; i < count; i++)
+
91 temp[i] = elements[i];
+
92 delete[] elements;
+
93 elements = temp;
+
94}
+
95
+
96template <typename T>
+
97void List<T>::free() {
+
98 delete[] elements;
+
99}
+
100
+
101template <typename T>
+
102void List<T>::copyFrom(const List& other) {
+
103 elements = new T[other.length];
+
104 for (int i = 0; i < other.count; i++)
+
105 elements[i] = other.elements[i];
+
106 length = other.length;
+
107 count = other.count;
+
108}
+
109
+
110/* Public */
+
111
+
112template <typename T>
+
113List<T>::List(const T* elements, unsigned elementsCount) {
+
114 length = 8;
+
115 count = elementsCount;
+
116 this->elements = new T[length];
+
117 for (unsigned i = 0; i < count; i++)
+
118 this->elements[i] = elements[i];
+
119}
+
120
+
121template <typename T>
+
122List<T>::List(unsigned length) {
+
123 this->length = count = length;
+
124 this->elements = new T[length];
+
125 for (unsigned i = 0; i < count; i++)
+
126 this->elements[i] = elements[i];
+
127}
+
128
+
132template <typename T>
+
133void List<T>::add(const T& element) {
+
134 if (length == count) resize();
+
135
+
136 elements[count++] = element;
+
137}
+
138
+
145template <typename T>
+
146void List<T>::insertAt(const T& element, unsigned index) {
+
147 if (index >= count) {
+
148 add(element);
+
149 return;
+
150 }
+
151 if (length == count) resize();
+
152
+
153 for (unsigned i = count; i > index; i--)
+
154 elements[i] = elements[i - 1];
+
155
+
156 elements[index] = element;
+
157 count++;
+
158}
+
159
+
165template <typename T>
+
166bool List<T>::removeAt(unsigned index) {
+
167 if (index >= count) return false;
+
168
+
169 for (int i = index; i < count; i++)
+
170 elements[i] = elements[i + 1];
+
171 count--;
+
172 return true;
+
173}
+
174
+
180template <typename T>
+
181unsigned List<T>::findIndex(const T& element) const {
+
182 unsigned ind = 0;
+
183 while (ind < count && elements[ind].compare(element) != 0)
+
184 ind++;
+
185 return ind;
+
186}
+
187
+
193template <typename T>
+
194bool List<T>::contain(const T& element) const {
+
195 return findIndex(element) < count;
+
196}
+
197
+
198template <typename T>
+
199T& List<T>::operator[](unsigned index) {
+
200 return elements[index];
+
201}
+
202
+
203template <typename T>
+
204const T& List<T>::operator[](unsigned index) const {
+
205 return elements[index];
+
206}
+
207
+
208template <typename T>
+
209const T* List<T>::raw_data() const {
+
210 return elements;
+
211}
+
212
+
213template <typename T>
+ +
215 free();
+
216 length = 8;
+
217 count = 0;
+
218 this->elements = new T[length];
+
219}
+
220
+
221template <typename T>
+ +
223 for (unsigned i = 0; i < other.length; i++)
+
224 add(other[i]);
+
225 return *this;
+
226}
+
227
+
237template <typename T>
+
238std::istream& List<T>::read(std::istream& istr) {
+
239 istr.read((char*)&length, sizeof(length));
+
240 istr.read((char*)&count, sizeof(count));
+
241
+
242 delete[] elements;
+
243 elements = new T[length];
+
244
+
245 for (int i = 0; i < count; i++)
+
246 elements[i].read(istr);
+
247
+
248 return istr;
+
249}
+
250
+
259template <typename T>
+
260std::ostream& List<T>::write(std::ostream& ostr) const {
+
261 ostr.write((const char*)&length, sizeof(length));
+
262 ostr.write((const char*)&count, sizeof(count));
+
263
+
264 for (int i = 0; i < count; i++)
+
265 elements[i].write(ostr);
+
266
+
267 return ostr;
+
268}
+
269
+
273template <typename T>
+
274unsigned List<T>::get_length() const {
+
275 return length;
+
276}
+
277
+
281template <typename T>
+
282unsigned List<T>::get_count() const {
+
283 return count;
+
284}
+
285
+
286// Rule of 4
+
287
+
288template <typename T>
+
289List<T>::List() : List(nullptr, 0) {}
+
290
+
291template <typename T>
+
292List<T>& List<T>::operator=(const List& other) {
+
293 if (this != &other) {
+
294 free();
+
295 copyFrom(other);
+
296 }
+
297 return *this;
+
298}
+
299
+
300template <typename T>
+
301List<T>::List(const List& other) {
+
302 copyFrom(other);
+
303}
+
304
+
305template <typename T>
+ +
307 free();
+
308}
+
309
+
310// Move semantics
+
311
+
312template <typename T>
+
313List<T>::List(List&& other) {
+
314 length = other.length;
+
315 count = other.count;
+
316 elements = other.elements;
+
317 other.elements = nullptr;
+
318}
+
319
+
320template <typename T>
+ +
322 if (this != &other) {
+
323 free();
+
324 length = other.length;
+
325 count = other.count;
+
326 elements = other.elements;
+
327 other.elements = nullptr;
+
328 }
+
329 return *this;
+
330}
+
331
+
332/* Outside of class */
+
333
+
341template <typename T>
+
342std::istream& operator>>(std::istream& istr, List<T>& obj) {
+
343 List<T> newObj;
+
344 unsigned count;
+
345 istr >> count;
+
346
+
347 T temp;
+
348 for (int i = 0; i < count; i++) {
+
349 istr >> temp;
+
350 obj.add(temp);
+
351 }
+
352
+
353 return istr;
+
354}
+
355
+
362template <typename T>
+
363std::ostream& operator<<(std::ostream& ostr, const List<T>& obj) {
+
364 ostr << obj.get_count() << std::endl;
+
365 for (int i = 0; i < obj.get_count(); i++)
+
366 ostr << obj[i];
+
367
+
368 return ostr;
+
369}
+
370
+
371
+
372#endif
+
std::istream & operator>>(std::istream &istr, List< T > &obj)
Reads List from stream with >> operator.
Definition: List.hpp:342
+
std::ostream & operator<<(std::ostream &ostr, const List< T > &obj)
Writes List to stream with << operator.
Definition: List.hpp:363
+
void read(T *storage)
Reads user input and stores it.
Definition: Toolbox.hpp:26
+
Templated class that stores an array of elements in dynamic memory.
Definition: List.hpp:22
+
bool contain(const T &element) const
Definition: List.hpp:194
+
const T * raw_data() const
Returns raw array of data.
Definition: List.hpp:209
+
T & operator[](unsigned index)
Returns reference to element at index.
Definition: List.hpp:199
+
unsigned findIndex(const T &element) const
Finds the index of element.
Definition: List.hpp:181
+
unsigned get_count() const
Returns the count.
Definition: List.hpp:282
+
List(unsigned length)
Allocates memory for the given length.
Definition: List.hpp:122
+
std::istream & read(std::istream &istr)
Reads from stream.
Definition: List.hpp:238
+
const T & operator[](unsigned index) const
Returns constant reference to element at index.
Definition: List.hpp:204
+
std::ostream & write(std::ostream &ostr) const
Writes to stream.
Definition: List.hpp:260
+
List(const T *elements, unsigned elementsCount)
Copies all elements in given array.
Definition: List.hpp:113
+
unsigned get_length() const
Returns the length.
Definition: List.hpp:274
+
List< T > & operator+=(const List< T > other)
Appends elements from other list.
Definition: List.hpp:222
+
void add(const T &element)
Adds an element.
Definition: List.hpp:133
+
bool removeAt(unsigned index)
Removes element at index.
Definition: List.hpp:166
+
void clear()
Removes all data.
Definition: List.hpp:214
+
void insertAt(const T &element, unsigned index)
Inserts element at given index.
Definition: List.hpp:146
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html new file mode 100644 index 0000000..e9318b3 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h.html @@ -0,0 +1,97 @@ + + + + + + + +FMI Table: src/Generic/ConsoleInterface/Menu.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
Menu.h File Reference
+
+
+ +

Stores the declaration of class Menu. +More...

+
#include "Command.h"
+#include "../List/List.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  Menu
 Handles navigation between multiple commands. More...
 
+

Detailed Description

+

Stores the declaration of class Menu.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html new file mode 100644 index 0000000..94ec010 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Menu_8h_source.html @@ -0,0 +1,106 @@ + + + + + + + +FMI Table: src/Generic/ConsoleInterface/Menu.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Menu.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CONSOLEINTERFACE_MENU
+
2#define HEADER_CONSOLEINTERFACE_MENU
+
3
+
8#include "Command.h"
+
9#include "../List/List.hpp"
+
10
+
17class Menu {
+
18 List<Command> menuOptions;
+
19
+
20public:
+
22 Menu();
+
24 Menu(const Command* commands, unsigned commandCount);
+
25
+
27 void addCommand(const Command& command);
+
28
+
30 void navigate() const;
+
31};
+
32
+
33#endif
+
Stores the declaration of class Command.
+
Stores a 256 character name and a function pointer to be executed when calling run()
Definition: Command.h:12
+ +
Handles navigation between multiple commands.
Definition: Menu.h:17
+
void navigate() const
Lists commands and after user input executes an appropriate command run() function.
Definition: Menu.cpp:30
+
void addCommand(const Command &command)
Adds a command to the internal Command list.
Definition: Menu.cpp:14
+
Menu(const Command *commands, unsigned commandCount)
Copies commands.
+
Menu()
Sets name as "Menu", leaves all flags to false and creates an empty Command list.
Definition: Menu.cpp:5
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html new file mode 100644 index 0000000..72ae09a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp.html @@ -0,0 +1,95 @@ + + + + + + + +FMI Table: src/Generic/Pair/Pair.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
Pair.hpp File Reference
+
+
+ +

Stores the declaration of struct Pair. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

struct  Pair< T, U >
 Stores two values of any types. More...
 
+

Detailed Description

+

Stores the declaration of struct Pair.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html new file mode 100644 index 0000000..459d978 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Pair_8hpp_source.html @@ -0,0 +1,100 @@ + + + + + + + +FMI Table: src/Generic/Pair/Pair.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Pair.hpp
+
+
+Go to the documentation of this file.
1#ifndef PAIR
+
2#define PAIR
+
3
+
12template <typename T, typename U>
+
13struct Pair {
+
14 T left;
+
15 U right;
+
16
+
17 Pair();
+
18 Pair(const T& left, const U& right);
+
19};
+
20
+
21template <typename T, typename U>
+
22Pair<T, U>::Pair() : left(), right() {}
+
23
+
24
+
25template <typename T, typename U>
+
26Pair<T, U>::Pair(const T& left, const U& right) : left(left), right(right) {}
+
27
+
28#endif
+
Stores two values of any types.
Definition: Pair.hpp:13
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html new file mode 100644 index 0000000..9fd2b8c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h.html @@ -0,0 +1,104 @@ + + + + + + + +FMI Table: src/Generic/String/String.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
String.h File Reference
+
+
+ +

Stores declaration of class String. +More...

+
#include <istream>
+#include <ostream>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  String
 A dynamically-allocated C-style string with extra features. More...
 
+ + + +

+Macros

+#define DOUBLE_PRECISION   100
 
+

Detailed Description

+

Stores declaration of class String.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html new file mode 100644 index 0000000..3173b5c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/String_8h_source.html @@ -0,0 +1,133 @@ + + + + + + + +FMI Table: src/Generic/String/String.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
String.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_STRING
+
2#define HEADER_STRING
+
3
+
8#include <istream>
+
9#include <ostream>
+
10
+
11#define DOUBLE_PRECISION 100
+
12
+
17class String {
+
18 char* str;
+
19 unsigned length;
+
20
+
21 void free();
+
22 void copyFrom(const String& other);
+
23
+
24public:
+
26 String(unsigned length);
+
28 String(const char* str);
+
30 const char* get_cstr() const;
+
32 unsigned get_length() const;
+
34 char& operator[](unsigned index);
+
35
+
37 String& operator+=(const char* str);
+
39 String& operator+=(int number);
+
41 String& operator+=(unsigned number);
+
43 String& operator+=(double number);
+
44
+
45 String();
+
46 String(const String& other);
+
47 String& operator=(const String& other);
+
48 ~String();
+
49
+
50 String(String&& other);
+
51 String& operator=(String&& other);
+
52
+
54 void read(std::istream& istr);
+
56 void write(std::ostream& ostr) const;
+
58 int compare(const String& other) const;
+
59
+
61 friend std::istream& operator>>(std::istream& istr, String& str);
+
63 friend std::ostream& operator<<(std::ostream& ostr, const String& str);
+
64};
+
65
+
66#endif
+
A dynamically-allocated C-style string with extra features.
Definition: String.h:17
+
friend std::istream & operator>>(std::istream &istr, String &str)
Reads String from stream with >> operator.
Definition: String.cpp:177
+
const char * get_cstr() const
Returns internal C-style string.
Definition: String.cpp:35
+
int compare(const String &other) const
Compares two strings.
Definition: String.cpp:167
+
char & operator[](unsigned index)
Returns a character reference (from the underlying C-style string) at the given index.
Definition: String.cpp:43
+
String & operator+=(const char *str)
Appends a C-style string.
Definition: String.cpp:49
+
unsigned get_length() const
Returns number of characters in string.
Definition: String.cpp:39
+
void write(std::ostream &ostr) const
Writes String to stream.
Definition: String.cpp:159
+
friend std::ostream & operator<<(std::ostream &ostr, const String &str)
Writes String to stream with << operator.
Definition: String.cpp:189
+
void read(std::istream &istr)
Reads String from stream.
Definition: String.cpp:146
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html new file mode 100644 index 0000000..e64f3fa --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h.html @@ -0,0 +1,98 @@ + + + + + + + +FMI Table: src/Models/Table.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
Table.h File Reference
+
+
+ +

Stores the declaration of class Table. +More...

+
#include "Cell.h"
+#include "../Generic/List/List.hpp"
+#include <fstream>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  Table
 A 2D collection of Cell instances. More...
 
+

Detailed Description

+

Stores the declaration of class Table.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html new file mode 100644 index 0000000..ff3311a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Table_8h_source.html @@ -0,0 +1,113 @@ + + + + + + + +FMI Table: src/Models/Table.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Table.h
+
+
+Go to the documentation of this file.
1#ifndef MODELS_TABLE
+
2#define MODELS_TABLE
+
3
+
8#include "Cell.h"
+
9#include "../Generic/List/List.hpp"
+
10#include <fstream>
+
11
+
14class Table {
+
15 List<List<Cell*>> cells;
+
16 unsigned longestRow;
+
17 void readFromFile(std::ifstream& inFile);
+
18
+
19public:
+
20 Table(const char* filePath);
+
21 ~Table();
+
22
+
24 unsigned get_rows() const;
+
26 unsigned get_cols() const;
+
27
+
29 void putCell(unsigned row, unsigned col, const char* rawValue);
+
30
+ +
34 void saveToFile(const char* filePath) const;
+
35};
+
36
+
37#endif
+
Stores the declaration of class Cell.
+
Templated class that stores an array of elements in dynamic memory.
Definition: List.hpp:22
+
A 2D collection of Cell instances.
Definition: Table.h:14
+
List< String > getAllCells() const
Returns a List of String with String representation of every cell in order.
Definition: Table.cpp:191
+
void putCell(unsigned row, unsigned col, const char *rawValue)
Parses rawValue and replaces the value at row and col with it.
Definition: Table.cpp:148
+
void saveToFile(const char *filePath) const
Saves all cells to a text file.
Definition: Table.cpp:204
+
unsigned get_rows() const
Returns count of rows.
Definition: Table.cpp:137
+
unsigned get_cols() const
Returns largest count of columns in all rows.
Definition: Table.cpp:141
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html new file mode 100644 index 0000000..b48ff34 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp.html @@ -0,0 +1,227 @@ + + + + + + + +FMI Table: src/Generic/ConsoleInterface/Toolbox.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
Toolbox.hpp File Reference
+
+
+ +

Stores a wide range of functions for simpler/more automated printing. +More...

+
#include <iostream>
+#include "../List/List.hpp"
+#include "../String/String.h"
+
+

Go to the source code of this file.

+ + + + +

+Macros

+#define MAX_LINE_WIDTH   1024
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void inputLineBox (char *output, unsigned maxWidth, bool ignore=true)
 Prints label, gets a whole line of input and stores it to output. More...
 
void printTable (const List< String > &items, unsigned columns)
 Prints a string list as a table. More...
 
+template<typename T >
void read (T *storage)
 Reads user input and stores it.
 
+template<typename T >
void read (T &storage)
 Reads user input and stores it.
 
+template<typename T >
void print (const T *item)
 Prints given item.
 
+template<typename T >
void print (const T &item)
 Prints given item.
 
+template<typename T >
void printLine (const T *item)
 Prints given item and an endline character.
 
+template<typename T >
void printLine (const T &item)
 Prints given item and an endline character.
 
+

Detailed Description

+

Stores a wide range of functions for simpler/more automated printing.

+

Adds a lot of functions for printing.

+
Remarks
iostream is included by necessity (templated functions), you should only use the provided functions, if you can.
+

Function Documentation

+ +

◆ inputLineBox()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void inputLineBox (char * output,
unsigned maxWidth,
bool ignore 
)
+
+ +

Prints label, gets a whole line of input and stores it to output.

+
Parameters
+ + + + + +
labelC-style string, there are no size check so it could wrap
outputPointer to a char array
maxWidthMaximum count of characters to read from user input. output MUST be able to hold that many characters!
ignoreWhether or not to ignore the first new-line delimiter. true by default, should be set to false only when an inputLineBox/SubBox has been issued directly prior or when it's the very first issued box command.
+
+
+

Prints "(+)" before the label.

+ +
+
+ +

◆ printTable()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void printTable (const List< String > & items,
unsigned columns 
)
+
+ +

Prints a string list as a table.

+
Parameters
+ + + + +
startNumberThe number by which column and row enumeration begins
columnsHow many columns the table should have
itemsC-style string, each cell is a single character from the string
+
+
+

Prints a string as a grid/table of characters from top to bottom, left to right. The first character is on the top left, the last one is on the bottom right.

+

Table is printed until a terminating zero is encountered. The rows are "calculated" from the columns count and the items length.

+ +
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html new file mode 100644 index 0000000..78ffde7 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/Toolbox_8hpp_source.html @@ -0,0 +1,129 @@ + + + + + + + +FMI Table: src/Generic/ConsoleInterface/Toolbox.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Toolbox.hpp
+
+
+Go to the documentation of this file.
1#ifndef HEADER_CONSOLEINTERFACE_TOOLBOX
+
2#define HEADER_CONSOLEINTERFACE_TOOLBOX
+
3
+
4#include <iostream>
+
5#include "../List/List.hpp"
+
6#include "../String/String.h"
+
7
+
16#define MAX_LINE_WIDTH 1024
+
17
+
19void inputLineBox(char* output, unsigned maxWidth, bool ignore = true);
+
20
+
22void printTable(const List<String>& items, unsigned columns);
+
23
+
25template <typename T>
+
26void read(T* storage) {
+
27 std::cin >> storage;
+
28}
+
29
+
31template <typename T>
+
32void read(T& storage) {
+
33 std::cin >> storage;
+
34}
+
35
+
37template <typename T>
+
38void print(const T* item) {
+
39 std::cout << item;
+
40}
+
41
+
43template <typename T>
+
44void print(const T& item) {
+
45 std::cout << item;
+
46}
+
47
+
49template <typename T>
+
50void printLine(const T* item) {
+
51 std::cout << item << std::endl;
+
52}
+
53
+
55template <typename T>
+
56void printLine(const T& item) {
+
57 std::cout << item << std::endl;
+
58}
+
59
+
60#endif
+
void printTable(const List< String > &items, unsigned columns)
Prints a string list as a table.
Definition: Toolbox.cpp:66
+
void printLine(const T *item)
Prints given item and an endline character.
Definition: Toolbox.hpp:50
+
void read(T *storage)
Reads user input and stores it.
Definition: Toolbox.hpp:26
+
void print(const T *item)
Prints given item.
Definition: Toolbox.hpp:38
+
void inputLineBox(char *output, unsigned maxWidth, bool ignore=true)
Prints label, gets a whole line of input and stores it to output.
Definition: Toolbox.cpp:19
+
Templated class that stores an array of elements in dynamic memory.
Definition: List.hpp:22
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html new file mode 100644 index 0000000..a98c27c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h.html @@ -0,0 +1,98 @@ + + + + + + + +FMI Table: src/UserInterface/UserInterface.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
UserInterface.h File Reference
+
+
+ +

Stores the declaration of class UserInterface. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  UserInterface
 The class that contains and via which the user controls the application's user interface. More...
 
+

Detailed Description

+

Stores the declaration of class UserInterface.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html new file mode 100644 index 0000000..8db4ab3 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/UserInterface_8h_source.html @@ -0,0 +1,114 @@ + + + + + + + +FMI Table: src/UserInterface/UserInterface.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
UserInterface.h
+
+
+Go to the documentation of this file.
1#ifndef HEADER_USERINTERFACE
+
2#define HEADER_USERINTERFACE
+
3
+
8#include "../Generic/ConsoleInterface/Menu.h"
+
9#include "../Generic/String/String.h"
+
10#include "../Models/Table.h"
+
11
+ +
15 Menu menu;
+
16
+
17 static Table* table;
+
18 static String fileName;
+
19 static bool saved;
+
20
+
22 static void com_open(const char* params);
+
24 static void com_close(const char* params);
+
26 static void com_save(const char* params);
+
28 static void com_saveas(const char* params);
+
30 static void com_help(const char* params);
+
32 static void com_exit(const char* params);
+
33
+
35 static void com_print(const char* params);
+
37 static void com_edit(const char* params);
+
38
+
39public:
+ +
42 void run();
+
43};
+
44
+
45#endif
+
Handles navigation between multiple commands.
Definition: Menu.h:17
+
A dynamically-allocated C-style string with extra features.
Definition: String.h:17
+
A 2D collection of Cell instances.
Definition: Table.h:14
+
The class that contains and via which the user controls the application's user interface.
Definition: UserInterface.h:14
+
void run()
Starts the user interface.
Definition: UserInterface.cpp:146
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html b/Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html new file mode 100644 index 0000000..07c8745 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/annotated.html @@ -0,0 +1,91 @@ + + + + + + + +FMI Table: Class List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + + + + + + + + + + + + +
 CCellFully abstract class that represents a cell in the table
 CCellDoubleA table cell which contains a double-precision floating point number
 CCellFormulaA table cell which contains a formula
 CCellIntA table cell which contains an integer
 CCellStringA table cell which contains a String value
 CCommandStores a 256 character name and a function pointer to be executed when calling run()
 CListTemplated class that stores an array of elements in dynamic memory
 CMenuHandles navigation between multiple commands
 CPairStores two values of any types
 CStringA dynamically-allocated C-style string with extra features
 CTableA 2D collection of Cell instances
 CUserInterfaceThe class that contains and via which the user controls the application's user interface
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.png b/Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/bc_s.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.png b/Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.png new file mode 100644 index 0000000..940a0b9 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/bdwn.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html new file mode 100644 index 0000000..95dba5a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell-members.html @@ -0,0 +1,83 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
Cell Member List
+
+
+ +

This is the complete list of members for Cell, including all inherited members.

+ + + + + + +
getNumeralValue() const =0Cellpure virtual
getValueForPrint() const =0Cellpure virtual
parseAndSetValue(const char *str)=0Cellpure virtual
writeToFile(std::ofstream &file)=0Cellpure virtual
~Cell()=default (defined in Cell)Cellvirtual
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html new file mode 100644 index 0000000..ec1af0b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.html @@ -0,0 +1,235 @@ + + + + + + + +FMI Table: Cell Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
Cell Class Referenceabstract
+
+
+ +

Fully abstract class that represents a cell in the table. + More...

+ +

#include <Cell.h>

+
+Inheritance diagram for Cell:
+
+
+ + +CellDouble +CellFormula +CellInt +CellString + +
+ + + + + + + + + + + + + + +

+Public Member Functions

virtual double getNumeralValue () const =0
 Returns the value of the cell as a double-precision floating point number. More...
 
virtual String getValueForPrint () const =0
 Returns the value of the cell as a String. More...
 
virtual void parseAndSetValue (const char *str)=0
 Parses given C-style string and stores value. More...
 
virtual void writeToFile (std::ofstream &file)=0
 Writes value to a text file. More...
 
+

Detailed Description

+

Fully abstract class that represents a cell in the table.

+

Member Function Documentation

+ +

◆ getNumeralValue()

+ +
+
+ + + + + +
+ + + + + + + +
virtual double Cell::getNumeralValue () const
+
+pure virtual
+
+ +

Returns the value of the cell as a double-precision floating point number.

+ +

Implemented in CellDouble, CellFormula, CellInt, and CellString.

+ +
+
+ +

◆ getValueForPrint()

+ +
+
+ + + + + +
+ + + + + + + +
virtual String Cell::getValueForPrint () const
+
+pure virtual
+
+ +

Returns the value of the cell as a String.

+ +

Implemented in CellDouble, CellFormula, CellInt, and CellString.

+ +
+
+ +

◆ parseAndSetValue()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Cell::parseAndSetValue (const char * str)
+
+pure virtual
+
+ +

Parses given C-style string and stores value.

+ +

Implemented in CellDouble, CellFormula, CellInt, and CellString.

+ +
+
+ +

◆ writeToFile()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Cell::writeToFile (std::ofstream & file)
+
+pure virtual
+
+ +

Writes value to a text file.

+ +

Implemented in CellDouble, CellFormula, CellInt, and CellString.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.png new file mode 100644 index 0000000..6f9875e Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/classCell.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html new file mode 100644 index 0000000..a1cfce3 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble-members.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
CellDouble Member List
+
+
+ +

This is the complete list of members for CellDouble, including all inherited members.

+ + + + + + + + + +
CellDouble()=default (defined in CellDouble)CellDouble
CellDouble(double value) (defined in CellDouble)CellDouble
CellDouble(const char *str)CellDouble
getNumeralValue() const overrideCellDoublevirtual
getValueForPrint() const overrideCellDoublevirtual
parseAndSetValue(const char *str) overrideCellDoublevirtual
writeToFile(std::ofstream &file) overrideCellDoublevirtual
~Cell()=default (defined in Cell)Cellvirtual
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html new file mode 100644 index 0000000..357fd68 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.html @@ -0,0 +1,271 @@ + + + + + + + +FMI Table: CellDouble Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CellDouble Class Reference
+
+
+ +

A table cell which contains a double-precision floating point number. + More...

+ +

#include <CellDouble.h>

+
+Inheritance diagram for CellDouble:
+
+
+ + +Cell + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+ CellDouble (double value)
 
 CellDouble (const char *str)
 
double getNumeralValue () const override
 Returns the value of the cell as a double-precision floating point number. More...
 
String getValueForPrint () const override
 Returns the value of the cell as a String. More...
 
void parseAndSetValue (const char *str) override
 Parses given C-style string and stores value. More...
 
void writeToFile (std::ofstream &file) override
 Writes value to a text file. More...
 
virtual double getNumeralValue () const =0
 Returns the value of the cell as a double-precision floating point number. More...
 
virtual String getValueForPrint () const =0
 Returns the value of the cell as a String. More...
 
virtual void parseAndSetValue (const char *str)=0
 Parses given C-style string and stores value. More...
 
virtual void writeToFile (std::ofstream &file)=0
 Writes value to a text file. More...
 
+

Detailed Description

+

A table cell which contains a double-precision floating point number.

+

Implements the Cell class by implementing a value of type double.

+

Constructor & Destructor Documentation

+ +

◆ CellDouble()

+ +
+
+ + + + + + + + +
CellDouble::CellDouble (const char * str)
+
+

Accepts a C-style string in the form "<+/-><digits>.<digits>"

+ +
+
+

Member Function Documentation

+ +

◆ getNumeralValue()

+ +
+
+ + + + + +
+ + + + + + + +
double CellDouble::getNumeralValue () const
+
+overridevirtual
+
+ +

Returns the value of the cell as a double-precision floating point number.

+ +

Implements Cell.

+ +
+
+ +

◆ getValueForPrint()

+ +
+
+ + + + + +
+ + + + + + + +
String CellDouble::getValueForPrint () const
+
+overridevirtual
+
+ +

Returns the value of the cell as a String.

+ +

Implements Cell.

+ +
+
+ +

◆ parseAndSetValue()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellDouble::parseAndSetValue (const char * str)
+
+overridevirtual
+
+ +

Parses given C-style string and stores value.

+ +

Implements Cell.

+ +
+
+ +

◆ writeToFile()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellDouble::writeToFile (std::ofstream & file)
+
+overridevirtual
+
+ +

Writes value to a text file.

+ +

Implements Cell.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.png new file mode 100644 index 0000000..4d65ba1 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellDouble.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html new file mode 100644 index 0000000..052644d --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula-members.html @@ -0,0 +1,85 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
CellFormula Member List
+
+
+ +

This is the complete list of members for CellFormula, including all inherited members.

+ + + + + + + + +
CellFormula()=default (defined in CellFormula)CellFormula
CellFormula(const char *str, const List< List< Cell * > > *tableCells) (defined in CellFormula)CellFormula
getNumeralValue() const overrideCellFormulavirtual
getValueForPrint() const overrideCellFormulavirtual
parseAndSetValue(const char *str) overrideCellFormulavirtual
writeToFile(std::ofstream &file) overrideCellFormulavirtual
~Cell()=default (defined in Cell)Cellvirtual
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html new file mode 100644 index 0000000..2fed2ce --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.html @@ -0,0 +1,254 @@ + + + + + + + +FMI Table: CellFormula Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CellFormula Class Reference
+
+
+ +

A table cell which contains a formula. + More...

+ +

#include <CellFormula.h>

+
+Inheritance diagram for CellFormula:
+
+
+ + +Cell + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+ CellFormula (const char *str, const List< List< Cell * > > *tableCells)
 
double getNumeralValue () const override
 
String getValueForPrint () const override
 
void parseAndSetValue (const char *str) override
 
void writeToFile (std::ofstream &file) override
 Writes value to a text file. More...
 
virtual double getNumeralValue () const =0
 Returns the value of the cell as a double-precision floating point number. More...
 
virtual String getValueForPrint () const =0
 Returns the value of the cell as a String. More...
 
virtual void parseAndSetValue (const char *str)=0
 Parses given C-style string and stores value. More...
 
virtual void writeToFile (std::ofstream &file)=0
 Writes value to a text file. More...
 
+

Detailed Description

+

A table cell which contains a formula.

+

Implements the Cell class by storing a formula as a String and in a dynamic List

+

Member Function Documentation

+ +

◆ getNumeralValue()

+ +
+
+ + + + + +
+ + + + + + + +
double CellFormula::getNumeralValue () const
+
+overridevirtual
+
+

Value is recalculated every time this function is called (in case a referenced cell is changed).

+
Returns
0
+ +

Implements Cell.

+ +
+
+ +

◆ getValueForPrint()

+ +
+
+ + + + + +
+ + + + + + + +
String CellFormula::getValueForPrint () const
+
+overridevirtual
+
+

Value is recalculated every time this function is called (in case a referenced cell is changed).

+
Returns
"Error"
+ +

Implements Cell.

+ +
+
+ +

◆ parseAndSetValue()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellFormula::parseAndSetValue (const char * str)
+
+overridevirtual
+
+

Each math operation is represented with a Pair that holds indecies of cell reference and a character for the operation.

+

Negatve value for the operation character means it's with priority and the result get's calculated immediately (rather than recursively, taking into account other values).

+
Exceptions
+ + +
std::logic_error("ErrorInvalid column character!") Thrown when there is something between Rx and C in cell references +\exception std::logic_error("Error: Invalid value!") Thrown when met value isn't a cell reference or number +\exception throw std::logic_error("Error: Could not find operand!") Thrown when there isn't an operator character between two values
+
+
+ +

Implements Cell.

+ +
+
+ +

◆ writeToFile()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellFormula::writeToFile (std::ofstream & file)
+
+overridevirtual
+
+ +

Writes value to a text file.

+ +

Implements Cell.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.png new file mode 100644 index 0000000..f3e1e36 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellFormula.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html new file mode 100644 index 0000000..72ab4c6 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt-members.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
CellInt Member List
+
+
+ +

This is the complete list of members for CellInt, including all inherited members.

+ + + + + + + + + +
CellInt()=default (defined in CellInt)CellInt
CellInt(int value) (defined in CellInt)CellInt
CellInt(const char *str) (defined in CellInt)CellInt
getNumeralValue() const overrideCellIntvirtual
getValueForPrint() const overrideCellIntvirtual
parseAndSetValue(const char *str) overrideCellIntvirtual
writeToFile(std::ofstream &file) overrideCellIntvirtual
~Cell()=default (defined in Cell)Cellvirtual
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html new file mode 100644 index 0000000..8f32438 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.html @@ -0,0 +1,252 @@ + + + + + + + +FMI Table: CellInt Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CellInt Class Reference
+
+
+ +

A table cell which contains an integer. + More...

+ +

#include <CellInt.h>

+
+Inheritance diagram for CellInt:
+
+
+ + +Cell + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+ CellInt (int value)
 
+ CellInt (const char *str)
 
double getNumeralValue () const override
 Returns the value of the cell as a double-precision floating point number. More...
 
String getValueForPrint () const override
 Returns the value of the cell as a String. More...
 
void parseAndSetValue (const char *str) override
 Parses given C-style string and stores value. More...
 
void writeToFile (std::ofstream &file) override
 Writes value to a text file. More...
 
virtual double getNumeralValue () const =0
 Returns the value of the cell as a double-precision floating point number. More...
 
virtual String getValueForPrint () const =0
 Returns the value of the cell as a String. More...
 
virtual void parseAndSetValue (const char *str)=0
 Parses given C-style string and stores value. More...
 
virtual void writeToFile (std::ofstream &file)=0
 Writes value to a text file. More...
 
+

Detailed Description

+

A table cell which contains an integer.

+

Impelements the Cell class by implementing a value of type int

+

Member Function Documentation

+ +

◆ getNumeralValue()

+ +
+
+ + + + + +
+ + + + + + + +
double CellInt::getNumeralValue () const
+
+overridevirtual
+
+ +

Returns the value of the cell as a double-precision floating point number.

+ +

Implements Cell.

+ +
+
+ +

◆ getValueForPrint()

+ +
+
+ + + + + +
+ + + + + + + +
String CellInt::getValueForPrint () const
+
+overridevirtual
+
+ +

Returns the value of the cell as a String.

+ +

Implements Cell.

+ +
+
+ +

◆ parseAndSetValue()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellInt::parseAndSetValue (const char * str)
+
+overridevirtual
+
+ +

Parses given C-style string and stores value.

+ +

Implements Cell.

+ +
+
+ +

◆ writeToFile()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellInt::writeToFile (std::ofstream & file)
+
+overridevirtual
+
+ +

Writes value to a text file.

+ +

Implements Cell.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.png new file mode 100644 index 0000000..ce047b0 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellInt.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html new file mode 100644 index 0000000..6bb7e44 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString-members.html @@ -0,0 +1,85 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
CellString Member List
+
+
+ +

This is the complete list of members for CellString, including all inherited members.

+ + + + + + + + +
CellString()=default (defined in CellString)CellString
CellString(const char *str) (defined in CellString)CellString
getNumeralValue() const overrideCellStringvirtual
getValueForPrint() const overrideCellStringvirtual
parseAndSetValue(const char *str) overrideCellStringvirtual
writeToFile(std::ofstream &file) overrideCellStringvirtual
~Cell()=default (defined in Cell)Cellvirtual
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html new file mode 100644 index 0000000..2e645d6 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.html @@ -0,0 +1,248 @@ + + + + + + + +FMI Table: CellString Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CellString Class Reference
+
+
+ +

A table cell which contains a String value. + More...

+ +

#include <CellString.h>

+
+Inheritance diagram for CellString:
+
+
+ + +Cell + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+ CellString (const char *str)
 
double getNumeralValue () const override
 Returns the value of the cell as a double-precision floating point number. More...
 
String getValueForPrint () const override
 Returns the value of the cell as a String. More...
 
void parseAndSetValue (const char *str) override
 Parses given C-style string and stores value. More...
 
void writeToFile (std::ofstream &file) override
 Writes value to a text file. More...
 
virtual double getNumeralValue () const =0
 Returns the value of the cell as a double-precision floating point number. More...
 
virtual String getValueForPrint () const =0
 Returns the value of the cell as a String. More...
 
virtual void parseAndSetValue (const char *str)=0
 Parses given C-style string and stores value. More...
 
virtual void writeToFile (std::ofstream &file)=0
 Writes value to a text file. More...
 
+

Detailed Description

+

A table cell which contains a String value.

+

Member Function Documentation

+ +

◆ getNumeralValue()

+ +
+
+ + + + + +
+ + + + + + + +
double CellString::getNumeralValue () const
+
+overridevirtual
+
+ +

Returns the value of the cell as a double-precision floating point number.

+ +

Implements Cell.

+ +
+
+ +

◆ getValueForPrint()

+ +
+
+ + + + + +
+ + + + + + + +
String CellString::getValueForPrint () const
+
+overridevirtual
+
+ +

Returns the value of the cell as a String.

+ +

Implements Cell.

+ +
+
+ +

◆ parseAndSetValue()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellString::parseAndSetValue (const char * str)
+
+overridevirtual
+
+ +

Parses given C-style string and stores value.

+ +

Implements Cell.

+ +
+
+ +

◆ writeToFile()

+ +
+
+ + + + + +
+ + + + + + + + +
void CellString::writeToFile (std::ofstream & file)
+
+overridevirtual
+
+ +

Writes value to a text file.

+ +

Implements Cell.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.png b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.png new file mode 100644 index 0000000..39e8607 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/classCellString.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html new file mode 100644 index 0000000..9ae00a8 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand-members.html @@ -0,0 +1,82 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
Command Member List
+
+
+ +

This is the complete list of members for Command, including all inherited members.

+ + + + + +
Command()Command
Command(const char *name, void(*exec)(const char *params))Command
get_name() const (defined in Command)Command
run(const char *params) constCommand
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html new file mode 100644 index 0000000..285455d --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classCommand.html @@ -0,0 +1,167 @@ + + + + + + + +FMI Table: Command Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
Command Class Reference
+
+
+ +

Stores a 256 character name and a function pointer to be executed when calling run() + More...

+ +

#include <Command.h>

+ + + + + + + + + + + + + +

+Public Member Functions

+ Command ()
 Leaves name empty and exec function pointer to nullptr.
 
 Command (const char *name, void(*exec)(const char *params))
 Copies contents of nameInMenu and stores exec. More...
 
void run (const char *params) const
 Executes the stored function pointer. More...
 
+const char * get_name () const
 
+

Detailed Description

+

Stores a 256 character name and a function pointer to be executed when calling run()

+

Menu uses this class for a more generic implementation of it's navigate function.

+

Constructor & Destructor Documentation

+ +

◆ Command()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Command::Command (const char * name,
void(*)(const char *params) exec 
)
+
+ +

Copies contents of nameInMenu and stores exec.

+
Parameters
+ + + +
nameC-style string, class stores at most 255 characters (last character is always terminating zero)
execFunction pointer that will be executed when run() is called. Can be nullptr.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ run()

+ +
+
+ + + + + + + + +
void Command::run (const char * params) const
+
+ +

Executes the stored function pointer.

+

Executes the stored function pointer, when it's not nullptr. Otherwise does nothing.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html new file mode 100644 index 0000000..3b6a1a0 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classList-members.html @@ -0,0 +1,106 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
List< T > Member List
+
+
+ +

This is the complete list of members for List< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
add(const T &element)List< T >
clear()List< T >
contain(const T &element) constList< T >
copyFrom(const List &other) (defined in List< T >)List< T >protected
count (defined in List< T >)List< T >protected
elements (defined in List< T >)List< T >protected
findIndex(const T &element) constList< T >
free() (defined in List< T >)List< T >protected
get_count() constList< T >
get_length() constList< T >
insertAt(const T &element, unsigned index)List< T >
length (defined in List< T >)List< T >protected
List(const T *elements, unsigned elementsCount)List< T >
List(unsigned length)List< T >
List() (defined in List< T >)List< T >
List(const List &other) (defined in List< T >)List< T >
List(List &&other) (defined in List< T >)List< T >
operator+=(const List< T > other)List< T >
operator=(const List &other) (defined in List< T >)List< T >
operator=(List &&other) (defined in List< T >)List< T >
operator[](unsigned index)List< T >
operator[](unsigned index) constList< T >
raw_data() constList< T >
read(std::istream &istr)List< T >
removeAt(unsigned index)List< T >
resize() (defined in List< T >)List< T >protected
write(std::ostream &ostr) constList< T >
~List() (defined in List< T >)List< T >
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classList.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classList.html new file mode 100644 index 0000000..45d5622 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classList.html @@ -0,0 +1,429 @@ + + + + + + + +FMI Table: List< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
List< T > Class Template Reference
+
+
+ +

Templated class that stores an array of elements in dynamic memory. + More...

+ +

#include <List.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+ List (const T *elements, unsigned elementsCount)
 Copies all elements in given array.
 
+ List (unsigned length)
 Allocates memory for the given length.
 
void add (const T &element)
 Adds an element. More...
 
void insertAt (const T &element, unsigned index)
 Inserts element at given index. More...
 
bool removeAt (unsigned index)
 Removes element at index. More...
 
unsigned findIndex (const T &element) const
 Finds the index of element. More...
 
bool contain (const T &element) const
 
+T & operator[] (unsigned index)
 Returns reference to element at index.
 
+const T & operator[] (unsigned index) const
 Returns constant reference to element at index.
 
+const T * raw_data () const
 Returns raw array of data.
 
+void clear ()
 Removes all data.
 
+List< T > & operator+= (const List< T > other)
 Appends elements from other list.
 
std::istream & read (std::istream &istr)
 Reads from stream. More...
 
std::ostream & write (std::ostream &ostr) const
 Writes to stream. More...
 
unsigned get_length () const
 Returns the length. More...
 
unsigned get_count () const
 Returns the count. More...
 
+List & operator= (const List &other)
 
+ List (const List &other)
 
+ List (List &&other)
 
+List & operator= (List &&other)
 
+ + + + + + + +

+Protected Member Functions

+void resize ()
 
+void free ()
 
+void copyFrom (const List &other)
 
+ + + + + + + +

+Protected Attributes

+T * elements
 
+unsigned length
 
+unsigned count
 
+

Detailed Description

+
template<typename T>
+class List< T >

Templated class that stores an array of elements in dynamic memory.

+
Warning
findIndex(), contain(), read(), write(), operator<<() and operator>>() require the type to have defined a couple of functions.
+
See also
findIndex()
+
+contain()
+
+read()
+
+write()
+
+operator<<()
+
+operator>>()
+

Member Function Documentation

+ +

◆ add()

+ +
+
+
+template<typename T >
+ + + + + + + + +
void List< T >::add (const T & element)
+
+ +

Adds an element.

+

Resizes internal array if there is no space for additional elements.

+ +
+
+ +

◆ contain()

+ +
+
+
+template<typename T >
+ + + + + + + + +
bool List< T >::contain (const T & element) const
+
+
Returns
Whether the element is contained in the current List
+
Warning
Function depends on findIndex(), which means the same "compare" function must be defined in the type
+
See also
findIndex()
+ +
+
+ +

◆ findIndex()

+ +
+
+
+template<typename T >
+ + + + + + + + +
unsigned List< T >::findIndex (const T & element) const
+
+ +

Finds the index of element.

+
Returns
Index of element. If element isn't found, returns the count of element.
+
Warning
The function depends on the type having a function "compare" defined, which takes two elements and returns a number <0 if elem1 < elem2, >0 if elem1 > elem2, 0 if elem1 == elem2
+
Note
Searching is done linearly
+ +
+
+ +

◆ get_count()

+ +
+
+
+template<typename T >
+ + + + +
unsigned List< T >::get_count
+
+ +

Returns the count.

+

Count is the amount of elements that are stored.

+ +
+
+ +

◆ get_length()

+ +
+
+
+template<typename T >
+ + + + +
unsigned List< T >::get_length
+
+ +

Returns the length.

+

Length is the size of the underlying array (allocated memory).

+ +
+
+ +

◆ insertAt()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
void List< T >::insertAt (const T & element,
unsigned index 
)
+
+ +

Inserts element at given index.

+

If index is after the last element, the element is just added. Otherwise all elements after the index are shifted right and element is put in place.

+

Resizes internal array if there is no space for additional elements.

+ +
+
+ +

◆ read()

+ +
+
+
+template<typename T >
+ + + + + + + + +
std::istream & List< T >::read (std::istream & istr)
+
+ +

Reads from stream.

+
Parameters
+ + +
istrAn input stream
+
+
+

Directly reads bytes from stream (calls read() function). Any stored values are deleted and replaced with those from the stream.

+
Warning
The function depends on the type having a function "read" defined, which takes an std::istream& and writes it's data to it. Return type doesn't matter.
+
Remarks
Doesn't alter the stream in any other way.
+
Note
Best used with binary ifstream
+ +
+
+ +

◆ removeAt()

+ +
+
+
+template<typename T >
+ + + + + + + + +
bool List< T >::removeAt (unsigned index)
+
+ +

Removes element at index.

+
Returns
Wether element could be removed
+

If index is after that of the last element, nothing is done and false is returned. Otherwise elements after index are shifted right and count is reduced.

+ +
+
+ +

◆ write()

+ +
+
+
+template<typename T >
+ + + + + + + + +
std::ostream & List< T >::write (std::ostream & ostr) const
+
+ +

Writes to stream.

+
Parameters
+ + +
ostrAn output stream
+
+
+

Directly writes bytes to stream (calls write() function).

+
Warning
The function depends on the type having a function "write" defined, which takes an std::ostream& and writes it's data to it. Return type doesn't matter.
+
Remarks
Doesn't alter the stream in any other way.
+
Note
Best used with binary ofstream
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html new file mode 100644 index 0000000..02bf2dc --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu-members.html @@ -0,0 +1,82 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
Menu Member List
+
+
+ +

This is the complete list of members for Menu, including all inherited members.

+ + + + + +
addCommand(const Command &command)Menu
Menu()Menu
Menu(const Command *commands, unsigned commandCount)Menu
navigate() constMenu
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html new file mode 100644 index 0000000..3aff43b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classMenu.html @@ -0,0 +1,132 @@ + + + + + + + +FMI Table: Menu Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
Menu Class Reference
+
+
+ +

Handles navigation between multiple commands. + More...

+ +

#include <Menu.h>

+ + + + + + + + + + + + + + +

+Public Member Functions

+ Menu ()
 Sets name as "Menu", leaves all flags to false and creates an empty Command list.
 
+ Menu (const Command *commands, unsigned commandCount)
 Copies commands.
 
+void addCommand (const Command &command)
 Adds a command to the internal Command list.
 
void navigate () const
 Lists commands and after user input executes an appropriate command run() function. More...
 
+

Detailed Description

+

Handles navigation between multiple commands.

+

Shows the title, then below it an Error/Warning/Success message if set, lists all command options as an enumerated list, takes command index and calls the chosen command's run() function.

+

Member Function Documentation

+ +

◆ navigate()

+ +
+
+ + + + + + + +
void Menu::navigate () const
+
+ +

Lists commands and after user input executes an appropriate command run() function.

+

Prints the title, then an Error/Warning/Sucess message (if set), prints all command names as an ordered list (starting from 1), waits for user input to select one of those commands (by list number) and finally executes the appropriate command's run() function.

+

After the run() function exists, everything is reprinted. The 0 list index is always "Go Back"/"Exit" and it always stops the reprinting loop.

+

If there are no commands, prints "Menu is empty!". If user input doesn't correspond to any command, registers an error message and reprints.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html new file mode 100644 index 0000000..396b4cb --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classString-members.html @@ -0,0 +1,98 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
String Member List
+
+
+ +

This is the complete list of members for String, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
compare(const String &other) constString
get_cstr() constString
get_length() constString
operator+=(const char *str)String
operator+=(int number)String
operator+=(unsigned number)String
operator+=(double number)String
operator<<Stringfriend
operator=(const String &other) (defined in String)String
operator=(String &&other) (defined in String)String
operator>>Stringfriend
operator[](unsigned index)String
read(std::istream &istr)String
String(unsigned length)String
String(const char *str)String
String() (defined in String)String
String(const String &other) (defined in String)String
String(String &&other) (defined in String)String
write(std::ostream &ostr) constString
~String() (defined in String)String
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classString.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classString.html new file mode 100644 index 0000000..13b7008 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classString.html @@ -0,0 +1,444 @@ + + + + + + + +FMI Table: String Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
String Class Reference
+
+
+ +

A dynamically-allocated C-style string with extra features. + More...

+ +

#include <String.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 String (unsigned length)
 The underlying array is allocated with length (+ 1) size. More...
 
 String (const char *str)
 Copies str. More...
 
+const char * get_cstr () const
 Returns internal C-style string.
 
+unsigned get_length () const
 Returns number of characters in string.
 
+char & operator[] (unsigned index)
 Returns a character reference (from the underlying C-style string) at the given index.
 
String & operator+= (const char *str)
 Appends a C-style string. More...
 
String & operator+= (int number)
 Appends a number. More...
 
String & operator+= (unsigned number)
 Appends a number. More...
 
String & operator+= (double number)
 Appends a number. More...
 
+ String (const String &other)
 
+String & operator= (const String &other)
 
+ String (String &&other)
 
+String & operator= (String &&other)
 
void read (std::istream &istr)
 Reads String from stream. More...
 
void write (std::ostream &ostr) const
 Writes String to stream. More...
 
int compare (const String &other) const
 Compares two strings. More...
 
+ + + + + + + +

+Friends

std::istream & operator>> (std::istream &istr, String &str)
 Reads String from stream with >> operator. More...
 
std::ostream & operator<< (std::ostream &ostr, const String &str)
 Writes String to stream with << operator. More...
 
+

Detailed Description

+

A dynamically-allocated C-style string with extra features.

+
Remarks
There is no buffer allocation, meaning each String takes only the amount of memory it needs and every append operation juggles around memory.
+

Constructor & Destructor Documentation

+ +

◆ String() [1/2]

+ +
+
+ + + + + + + + +
String::String (unsigned length)
+
+ +

The underlying array is allocated with length (+ 1) size.

+

Allocated with length + 1 size, so there is a terminating zero at the end.

+ +
+
+ +

◆ String() [2/2]

+ +
+
+ + + + + + + + +
String::String (const char * str)
+
+ +

Copies str.

+

\params str C-style string

+ +
+
+

Member Function Documentation

+ +

◆ compare()

+ +
+
+ + + + + + + + +
int String::compare (const String & other) const
+
+ +

Compares two strings.

+

\params other C-style string

Returns
strcmp between underlying C-style string and "other"
+ +
+
+ +

◆ operator+=() [1/4]

+ +
+
+ + + + + + + + +
String & String::operator+= (const char * str)
+
+ +

Appends a C-style string.

+

\params str C-style string

+ +
+
+ +

◆ operator+=() [2/4]

+ +
+
+ + + + + + + + +
String & String::operator+= (double number)
+
+ +

Appends a number.

+

Converts the number to a C-style string and then uses += to append it.

+ +
+
+ +

◆ operator+=() [3/4]

+ +
+
+ + + + + + + + +
String & String::operator+= (int number)
+
+ +

Appends a number.

+

Converts the number to a C-style string and then uses += to append it.

+ +
+
+ +

◆ operator+=() [4/4]

+ +
+
+ + + + + + + + +
String & String::operator+= (unsigned number)
+
+ +

Appends a number.

+

Converts the number to a C-style string and then uses += to append it.

+ +
+
+ +

◆ read()

+ +
+
+ + + + + + + + +
void String::read (std::istream & istr)
+
+ +

Reads String from stream.

+
Parameters
+ + +
istrAn input stream
+
+
+

Directly reads bytes from stream (calls read() function). First reads the string length, then the underlying C-style string (including terminating zero).

+
Remarks
Doesn't alter the stream in any other way.
+
Note
Best used with binary ifstream
+ +
+
+ +

◆ write()

+ +
+
+ + + + + + + + +
void String::write (std::ostream & ostr) const
+
+ +

Writes String to stream.

+
Parameters
+ + +
ostrAn output stream
+
+
+

Directly writes bytes to stream (calls write() function). First writes the string length, then the underlying C-style string (including terminating zero).

+
Remarks
Doesn't alter the stream in any other way.
+
Note
Best used with binary ofstream
+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator<<

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream & operator<< (std::ostream & ostr,
const String & str 
)
+
+friend
+
+ +

Writes String to stream with << operator.

+

Uses the stream's << operator to write the underlying C-style string

+
Note
Best used with std::cout or text std::ofstream
+ +
+
+ +

◆ operator>>

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::istream & operator>> (std::istream & istr,
String & str 
)
+
+friend
+
+ +

Reads String from stream with >> operator.

+

Uses the stream's getline function to read the data.

+
Warning
It takes at most 1024 characters from the stream!
+
Note
Best used with std::cin or text std::ifstream
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html new file mode 100644 index 0000000..5a3d12b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable-members.html @@ -0,0 +1,85 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
Table Member List
+
+
+ +

This is the complete list of members for Table, including all inherited members.

+ + + + + + + + +
get_cols() constTable
get_rows() constTable
getAllCells() constTable
putCell(unsigned row, unsigned col, const char *rawValue)Table
saveToFile(const char *filePath) constTable
Table(const char *filePath) (defined in Table)Table
~Table() (defined in Table)Table
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html new file mode 100644 index 0000000..006e473 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classTable.html @@ -0,0 +1,116 @@ + + + + + + + +FMI Table: Table Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
Table Class Reference
+
+
+ +

A 2D collection of Cell instances. + More...

+ +

#include <Table.h>

+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+ Table (const char *filePath)
 
+unsigned get_rows () const
 Returns count of rows.
 
+unsigned get_cols () const
 Returns largest count of columns in all rows.
 
+void putCell (unsigned row, unsigned col, const char *rawValue)
 Parses rawValue and replaces the value at row and col with it.
 
+List< String > getAllCells () const
 Returns a List of String with String representation of every cell in order.
 
+void saveToFile (const char *filePath) const
 Saves all cells to a text file.
 
+

Detailed Description

+

A 2D collection of Cell instances.

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html new file mode 100644 index 0000000..868b3be --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface-members.html @@ -0,0 +1,80 @@ + + + + + + + +FMI Table: Member List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
UserInterface Member List
+
+
+ +

This is the complete list of members for UserInterface, including all inherited members.

+ + + +
run()UserInterface
UserInterface() (defined in UserInterface)UserInterface
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html new file mode 100644 index 0000000..c76c979 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classUserInterface.html @@ -0,0 +1,97 @@ + + + + + + + +FMI Table: UserInterface Class Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
UserInterface Class Reference
+
+
+ +

The class that contains and via which the user controls the application's user interface. + More...

+ +

#include <UserInterface.h>

+ + + + + +

+Public Member Functions

+void run ()
 Starts the user interface.
 
+

Detailed Description

+

The class that contains and via which the user controls the application's user interface.

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/classes.html b/Year 1/Object-oriented Programming/Project 2/docs/html/classes.html new file mode 100644 index 0000000..4732a7c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/classes.html @@ -0,0 +1,99 @@ + + + + + + + +FMI Table: Class Index + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Class Index
+
+
+
C | L | M | P | S | T | U
+ +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/closed.png b/Year 1/Object-oriented Programming/Project 2/docs/html/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/closed.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html new file mode 100644 index 0000000..86c7889 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: src/Generic/String Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
String Directory Reference
+
+
+ + + + + +

+Files

file  String.h [code]
 Stores declaration of class String.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html new file mode 100644 index 0000000..c50ce1f --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_13a0a9da12973dc2d2eb801d618278f1.html @@ -0,0 +1,100 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Models Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Models Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + +

+Files

file  Cell.h [code]
 Stores the declaration of class Cell.
 
file  CellDouble.h [code]
 
file  CellFormula.h [code]
 Stores the declaration of class CellFormula.
 
file  CellInt.h [code]
 Stores the declaration of class Cell.
 
file  CellString.h [code]
 Stores the declaration of class CellString.
 
file  Table.h [code]
 Stores the declaration of class Table.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html new file mode 100644 index 0000000..fcb82ad --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2264f2756aad4c6edc6800fd12175f32.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: src/Generic/Pair Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Pair Directory Reference
+
+
+ + + + + +

+Files

file  Pair.hpp [code]
 Stores the declaration of struct Pair.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html new file mode 100644 index 0000000..259b312 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_25ba087ece98efc8c7278d78326e4919.html @@ -0,0 +1,91 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Generic Directory Reference
+
+
+ + + + + + + + + + +

+Directories

directory  ConsoleInterface
 
directory  List
 
directory  Pair
 
directory  String
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html new file mode 100644 index 0000000..7125ad8 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_2dd6ed29f81dd9e1ebcd6feb2210e3be.html @@ -0,0 +1,93 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
src Directory Reference
+
+
+ + + + + + +

+Directories

directory  Models
 
directory  UserInterface
 
+ + + + +

+Files

file  main.cpp
 Creates a defualt instance of UserInterface and runs it.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html new file mode 100644 index 0000000..0bbb4df --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_36df885461d6bd14211edf06510d126c.html @@ -0,0 +1,101 @@ + + + + + + + +FMI Table: src/Models Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Models Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Files

file  Cell.h [code]
 Stores the declaration of class Cell.
 
file  CellDouble.h [code]
 Stores the declaration of class CellDouble.
 
file  CellFormula.h [code]
 Stores the declaration of class CellFormula.
 
file  CellInt.h [code]
 Stores the declaration of class Cell.
 
file  CellString.h [code]
 Stores the declaration of class CellString.
 
file  Table.h [code]
 Stores the declaration of class Table.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html new file mode 100644 index 0000000..e95080c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html @@ -0,0 +1,79 @@ + + + + + + + +FMI Table: docs Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
docs Directory Reference
+
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html new file mode 100644 index 0000000..1523893 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_57b484aa3be9bd9643d91417ed0c9e7c.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/UserInterface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
UserInterface Directory Reference
+
+
+ + + + + +

+Files

file  UserInterface.h [code]
 Stores the declaration of class UserInterface.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..a3c0948 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,93 @@ + + + + + + + +FMI Table: src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
src Directory Reference
+
+
+ + + + + + +

+Directories

directory  Models
 
directory  UserInterface
 
+ + + + +

+Files

file  main.cpp
 Creates a defualt instance of UserInterface and runs it.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html new file mode 100644 index 0000000..5af48f7 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_6eeb28691dabd569dc3ccf7b84ee9030.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/String Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
String Directory Reference
+
+
+ + + + + +

+Files

file  String.h [code]
 Stores declaration of class String.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html new file mode 100644 index 0000000..68dadf4 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: src/UserInterface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
UserInterface Directory Reference
+
+
+ + + + + +

+Files

file  UserInterface.h [code]
 Stores the declaration of class UserInterface.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html new file mode 100644 index 0000000..a4ffd8f --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_826eb72f5c1b884914782ed7017f0eb6.html @@ -0,0 +1,85 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
FMI-OOP-P2_Tables Directory Reference
+
+
+ + + + +

+Directories

directory  src
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html new file mode 100644 index 0000000..4f4e88c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_962376993fec580a14c8c11054a78b19.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/List Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
List Directory Reference
+
+
+ + + + + +

+Files

file  List.hpp [code]
 Stores declaration and definition of templated class List.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html new file mode 100644 index 0000000..0394a6d --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_ae031dbf30e0b8b474d3c2bf23c88312.html @@ -0,0 +1,79 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/docs Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
docs Directory Reference
+
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html new file mode 100644 index 0000000..ef69735 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html @@ -0,0 +1,91 @@ + + + + + + + +FMI Table: src/Generic Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Generic Directory Reference
+
+
+ + + + + + + + + + +

+Directories

directory  ConsoleInterface
 
directory  List
 
directory  Pair
 
directory  String
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html new file mode 100644 index 0000000..1f61c2e --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_b531042f772ac0962b48690ffe7677e8.html @@ -0,0 +1,92 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/ConsoleInterface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
ConsoleInterface Directory Reference
+
+
+ + + + + + + + + + + +

+Files

file  Command.h [code]
 Stores the declaration of class Command.
 
file  Menu.h [code]
 Stores the declaration of class Menu.
 
file  Toolbox.hpp [code]
 Stores a wide range of functions for simpler/more automated printing.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html new file mode 100644 index 0000000..d8705bc --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: src/Generic/List Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
List Directory Reference
+
+
+ + + + + +

+Files

file  List.hpp [code]
 Stores declaration and definition of templated class List.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html new file mode 100644 index 0000000..9db1575 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html @@ -0,0 +1,92 @@ + + + + + + + +FMI Table: src/Generic/ConsoleInterface Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
ConsoleInterface Directory Reference
+
+
+ + + + + + + + + + + +

+Files

file  Command.h [code]
 Stores the declaration of class Command.
 
file  Menu.h [code]
 Stores the declaration of class Menu.
 
file  Toolbox.hpp [code]
 Stores a wide range of functions for simpler/more automated printing.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html new file mode 100644 index 0000000..269a362 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dir_fe8e9063aee6652b92d0c0438ff517cb.html @@ -0,0 +1,86 @@ + + + + + + + +FMI Table: /home/kamen/Programming/GitHub-repos/FMI-OOP-P2_Tables/src/Generic/Pair Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
Pair Directory Reference
+
+
+ + + + + +

+Files

file  Pair.hpp [code]
 Stores the declaration of struct Pair.
 
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/doc.png b/Year 1/Object-oriented Programming/Project 2/docs/html/doc.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/doc.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css new file mode 100644 index 0000000..9036737 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.css @@ -0,0 +1,1841 @@ +/* The standard CSS for doxygen 1.9.3 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +.compoundTemplParams { + color: #4665A2; + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font: 200% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 90% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +code.JavaDocCode + direction:ltr; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js b/Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js new file mode 100644 index 0000000..3174bd7 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +FMI Table: File List + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + +
 ▼ src
 ▼ Generic
 ▼ ConsoleInterface
 Command.hStores the declaration of class Command
 Menu.hStores the declaration of class Menu
 Toolbox.hppStores a wide range of functions for simpler/more automated printing
 ▼ List
 List.hppStores declaration and definition of templated class List
 ▼ Pair
 Pair.hppStores the declaration of struct Pair
 ▼ String
 String.hStores declaration of class String
 ▼ Models
 Cell.hStores the declaration of class Cell
 CellDouble.hStores the declaration of class CellDouble
 CellFormula.hStores the declaration of class CellFormula
 CellInt.hStores the declaration of class Cell
 CellString.hStores the declaration of class CellString
 Table.hStores the declaration of class Table
 ▼ UserInterface
 UserInterface.hStores the declaration of class UserInterface
 main.cppCreates a defualt instance of UserInterface and runs it
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.png b/Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.png new file mode 100644 index 0000000..bb8ab35 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/folderclosed.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.png b/Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.png new file mode 100644 index 0000000..d6c7f67 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/folderopen.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/functions.html b/Year 1/Object-oriented Programming/Project 2/docs/html/functions.html new file mode 100644 index 0000000..69dd684 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/functions.html @@ -0,0 +1,158 @@ + + + + + + + +FMI Table: Class Members + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+ + +

- c -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

    +
  • navigate() : Menu
  • +
+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- w -

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html new file mode 100644 index 0000000..cab449b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_func.html @@ -0,0 +1,156 @@ + + + + + + + +FMI Table: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- c -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

    +
  • navigate() : Menu
  • +
+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- w -

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html new file mode 100644 index 0000000..6d92625 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/functions_rela.html @@ -0,0 +1,76 @@ + + + + + + + +FMI Table: Class Members - Related Functions + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/globals.html b/Year 1/Object-oriented Programming/Project 2/docs/html/globals.html new file mode 100644 index 0000000..5eda3af --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/globals.html @@ -0,0 +1,81 @@ + + + + + + + +FMI Table: File Members + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented file members with links to the documentation:
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html b/Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html new file mode 100644 index 0000000..930e13e --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/globals_func.html @@ -0,0 +1,81 @@ + + + + + + + +FMI Table: File Members + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  +
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html b/Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html new file mode 100644 index 0000000..c0d7359 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/hierarchy.html @@ -0,0 +1,96 @@ + + + + + + + +FMI Table: Class Hierarchy + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + +
 ▼CCellFully abstract class that represents a cell in the table
 CCellDoubleA table cell which contains a double-precision floating point number
 CCellFormulaA table cell which contains a formula
 CCellIntA table cell which contains an integer
 CCellStringA table cell which contains a String value
 CCommandStores a 256 character name and a function pointer to be executed when calling run()
 CList< T >Templated class that stores an array of elements in dynamic memory
 CList< CellDouble >
 CList< Command >
 CList< List< Cell * > >
 CList< Pair< Pair< int, int >, char > >
 CMenuHandles navigation between multiple commands
 CPair< T, U >Stores two values of any types
 CPair< Pair< int, int >, char >
 CStringA dynamically-allocated C-style string with extra features
 CTableA 2D collection of Cell instances
 CUserInterfaceThe class that contains and via which the user controls the application's user interface
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/index.html b/Year 1/Object-oriented Programming/Project 2/docs/html/index.html new file mode 100644 index 0000000..cfa013b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/index.html @@ -0,0 +1,108 @@ + + + + + + + +FMI Table: FMI Tables + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
FMI Tables
+
+
+

Author
Kamen Mladenov; FMI Computer Science, Year 1, Group 6; Project 2, Topic 7
+
Date
14 June 2022
+ +
+
Source Code
+
https://github.com/Syndamia/FMI-OOP-P2_Tables
+
+

+About

+

"FMI Tables" is a simple implementation of parsing and editing a CSV-style table file, that stores strings, formulas and numbers.

+

+Structure overview

+

The project is roughly divided into 3 main components: User Interface, Models and Generic fig1.

    +
  • The User Interface is the messenger between a user and the underlying application. All input and output is handled here.
  • +
  • Models are the general classes that are used in the user interface and that do the value parsing.
  • +
  • Generic is a place for all code that is can be used independently from the project. Stuff like Pair, String or List.
  • +
+

+Building the project

+

Instructions are all for gcc. All commands should be executed while in the src folder.

+

+Linux/BSD/MacOS

+
g++ **/**.cpp -o TicketSystem.out && ./TicketSystem.out
+

+Windows (PowerShell)

+
g++ (Get-ChildItem -Recurse *.cpp) -o TicketSystem.exe && ./TicketSystem.exe
+

+Figures

+

Figure 1: Overview of the "FMI Ticket System" design

+
+ +
+
+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js b/Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js new file mode 100644 index 0000000..c9ed3d9 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html b/Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html new file mode 100644 index 0000000..f057020 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/main_8cpp.html @@ -0,0 +1,94 @@ + + + + + + + +FMI Table: src/main.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
FMI Table +
+
| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
main.cpp File Reference
+
+
+ +

Creates a defualt instance of UserInterface and runs it. +More...

+ + + + +

+Functions

+int main ()
 
+

Detailed Description

+

Creates a defualt instance of UserInterface and runs it.

+
+ + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/menu.js b/Year 1/Object-oriented Programming/Project 2/docs/html/menu.js new file mode 100644 index 0000000..54e81cf --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/menu.js @@ -0,0 +1,127 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + var searchBox; + if (searchEnabled) { + if (serverSide) { + searchBox='
'+ + '
'+ + '
'+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBox='
'+ + ''+ + ''+ + ''+ + ''+ + ''+ + '' + '' + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBox) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBox); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBox); + $('#searchBoxPos2').show(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js b/Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js new file mode 100644 index 0000000..caadf4d --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/menudata.js @@ -0,0 +1,65 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"c",url:"functions.html#index_c"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"n",url:"functions.html#index_n"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"w",url:"functions.html#index_w"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"n",url:"functions_func.html#index_n"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"w",url:"functions_func.html#index_w"}]}, +{text:"Related Functions",url:"functions_rela.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html"}, +{text:"Functions",url:"globals_func.html"}]}]}]} diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.png b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_f.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.png b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_g.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.png b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/nav_h.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/open.png b/Year 1/Object-oriented Programming/Project 2/docs/html/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/open.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html new file mode 100644 index 0000000..c36c9af --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js new file mode 100644 index 0000000..93f7baa --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['add_0',['add',['../classList.html#abfec4f2e7990d06c143852ecfdf907bb',1,'List']]], + ['addcommand_1',['addCommand',['../classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d',1,'Menu']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html new file mode 100644 index 0000000..91cfe8a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js new file mode 100644 index 0000000..81a10be --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_1.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['cell_0',['Cell',['../classCell.html',1,'']]], + ['cell_2eh_1',['Cell.h',['../Cell_8h.html',1,'']]], + ['celldouble_2',['CellDouble',['../classCellDouble.html',1,'CellDouble'],['../classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af',1,'CellDouble::CellDouble()']]], + ['celldouble_2eh_3',['CellDouble.h',['../CellDouble_8h.html',1,'']]], + ['cellformula_4',['CellFormula',['../classCellFormula.html',1,'']]], + ['cellformula_2eh_5',['CellFormula.h',['../CellFormula_8h.html',1,'']]], + ['cellint_6',['CellInt',['../classCellInt.html',1,'']]], + ['cellint_2eh_7',['CellInt.h',['../CellInt_8h.html',1,'']]], + ['cellstring_8',['CellString',['../classCellString.html',1,'']]], + ['cellstring_2eh_9',['CellString.h',['../CellString_8h.html',1,'']]], + ['clear_10',['clear',['../classList.html#ae296516a252e11963dbf963727ce429a',1,'List']]], + ['command_11',['Command',['../classCommand.html',1,'Command'],['../classCommand.html#a18df2d81039392daeb0b78c346a70537',1,'Command::Command()'],['../classCommand.html#a96dda87aba05825c0e8a0323bd25c826',1,'Command::Command(const char *name, void(*exec)(const char *params))']]], + ['command_2eh_12',['Command.h',['../Command_8h.html',1,'']]], + ['compare_13',['compare',['../classString.html#a3f420d69fbe3de91711dc69148d23cc7',1,'String']]], + ['contain_14',['contain',['../classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1',1,'List']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html new file mode 100644 index 0000000..259dde4 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js new file mode 100644 index 0000000..459ba67 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['findindex_0',['findIndex',['../classList.html#a3804f03273ef5e339b504e439c5b6534',1,'List']]], + ['fmi_20tables_1',['FMI Tables',['../index.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html new file mode 100644 index 0000000..1e60c94 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js new file mode 100644 index 0000000..bedc7ba --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_3.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['get_5fcols_0',['get_cols',['../classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d',1,'Table']]], + ['get_5fcount_1',['get_count',['../classList.html#a3c1e3a3fc085f5b7ae68514c4758687b',1,'List']]], + ['get_5fcstr_2',['get_cstr',['../classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc',1,'String']]], + ['get_5flength_3',['get_length',['../classList.html#aa32109b77dccd8241b125ebabdda876c',1,'List::get_length()'],['../classString.html#a7793a7e9a7601d4c724dcc85566259bf',1,'String::get_length()']]], + ['get_5frows_4',['get_rows',['../classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b',1,'Table']]], + ['getallcells_5',['getAllCells',['../classTable.html#a654a6b6617a91dc96dde9038220967d8',1,'Table']]], + ['getnumeralvalue_6',['getNumeralValue',['../classCellDouble.html#a088a191ea593642c944610f5332e1608',1,'CellDouble::getNumeralValue()'],['../classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803',1,'CellString::getNumeralValue()'],['../classCellInt.html#a8417811309bda5886bb2f70d2b8357bd',1,'CellInt::getNumeralValue()'],['../classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74',1,'CellFormula::getNumeralValue()'],['../classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968',1,'Cell::getNumeralValue() const =0']]], + ['getvalueforprint_7',['getValueForPrint',['../classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75',1,'Cell::getValueForPrint()'],['../classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b',1,'CellDouble::getValueForPrint()'],['../classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d',1,'CellFormula::getValueForPrint()'],['../classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2',1,'CellInt::getValueForPrint()'],['../classCellString.html#a2d88b600e72b4eeca9c933a540343a8b',1,'CellString::getValueForPrint()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html new file mode 100644 index 0000000..08f1aed --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js new file mode 100644 index 0000000..5d91d7c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['inputlinebox_0',['inputLineBox',['../Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf',1,'Toolbox.cpp']]], + ['insertat_1',['insertAt',['../classList.html#ae4586debf72af33bccb3c2fbfce420e8',1,'List']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html new file mode 100644 index 0000000..0d85fcc --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js new file mode 100644 index 0000000..51564ec --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['list_0',['List',['../classList.html',1,'List< T >'],['../classList.html#a93cd36efc12aa5ef5fc28866edce7e61',1,'List::List(const T *elements, unsigned elementsCount)'],['../classList.html#a40212635a3d75dfc14e9473271467b04',1,'List::List(unsigned length)']]], + ['list_2ehpp_1',['List.hpp',['../List_8hpp.html',1,'']]], + ['list_3c_20celldouble_20_3e_2',['List< CellDouble >',['../classList.html',1,'']]], + ['list_3c_20command_20_3e_3',['List< Command >',['../classList.html',1,'']]], + ['list_3c_20list_3c_20cell_20_2a_20_3e_20_3e_4',['List< List< Cell * > >',['../classList.html',1,'']]], + ['list_3c_20pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_20_3e_5',['List< Pair< Pair< int, int >, char > >',['../classList.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html new file mode 100644 index 0000000..7e088b8 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js new file mode 100644 index 0000000..3883270 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]], + ['menu_1',['Menu',['../classMenu.html',1,'Menu'],['../classMenu.html#ad466dd83355124a6ed958430450bfe94',1,'Menu::Menu()'],['../classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0',1,'Menu::Menu(const Command *commands, unsigned commandCount)']]], + ['menu_2eh_2',['Menu.h',['../Menu_8h.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html new file mode 100644 index 0000000..d2b1825 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js new file mode 100644 index 0000000..c3df1e0 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['navigate_0',['navigate',['../classMenu.html#a0400751da7f8583029b7a12d3003c36d',1,'Menu']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html new file mode 100644 index 0000000..f4e3a2a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js new file mode 100644 index 0000000..7402e5e --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_2b_3d_0',['operator+=',['../classList.html#aa4332ce5a589da28528f035ded6d41e5',1,'List::operator+=()'],['../classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6',1,'String::operator+=(const char *str)'],['../classString.html#a0a96f034ca01cc9fbb27e17330c66ca1',1,'String::operator+=(int number)'],['../classString.html#aed8480111703abc1f281148c778b0445',1,'String::operator+=(unsigned number)'],['../classString.html#a2e4c8591498da08d8ffe206fc45f62a5',1,'String::operator+=(double number)']]], + ['operator_3c_3c_1',['operator<<',['../classString.html#aaf68eeb5ffc0983ecc68d49085e33102',1,'String::operator<<()'],['../List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2',1,'operator<<(): List.hpp']]], + ['operator_3e_3e_2',['operator>>',['../classString.html#a145347940875a9da605f74c2138be157',1,'String::operator>>()'],['../List_8hpp.html#a7469c3479753bfbada761697c539aa07',1,'operator>>(): List.hpp']]], + ['operator_5b_5d_3',['operator[]',['../classList.html#a321bb581943398344aad07198d1f02ac',1,'List::operator[](unsigned index)'],['../classList.html#a5fa582de3aec5094a871852b658cf853',1,'List::operator[](unsigned index) const'],['../classString.html#a5d3b77a51619a8580a373d2cd1092a54',1,'String::operator[]()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html new file mode 100644 index 0000000..89177a8 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js new file mode 100644 index 0000000..116f7b9 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_9.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['pair_0',['Pair',['../structPair.html',1,'']]], + ['pair_2ehpp_1',['Pair.hpp',['../Pair_8hpp.html',1,'']]], + ['pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_2',['Pair< Pair< int, int >, char >',['../structPair.html',1,'']]], + ['parseandsetvalue_3',['parseAndSetValue',['../classCell.html#a732fcaeea7050f4afb3bcd6377432b95',1,'Cell::parseAndSetValue()'],['../classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b',1,'CellDouble::parseAndSetValue()'],['../classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31',1,'CellFormula::parseAndSetValue()'],['../classCellInt.html#a72788dc2ebadd13ae198e4e143403073',1,'CellInt::parseAndSetValue()'],['../classCellString.html#a8152beac5329e170bf2c225ac189fba4',1,'CellString::parseAndSetValue()']]], + ['print_4',['print',['../Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73',1,'print(const T *item): Toolbox.hpp'],['../Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e',1,'print(const T &item): Toolbox.hpp']]], + ['printline_5',['printLine',['../Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81',1,'printLine(const T *item): Toolbox.hpp'],['../Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa',1,'printLine(const T &item): Toolbox.hpp']]], + ['printtable_6',['printTable',['../Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325',1,'Toolbox.cpp']]], + ['putcell_7',['putCell',['../classTable.html#a83388586d16c5b42029298b72ed698a5',1,'Table']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html new file mode 100644 index 0000000..1f90b7a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js new file mode 100644 index 0000000..c7cbb5c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['raw_5fdata_0',['raw_data',['../classList.html#a1e380d73cf889304a7468762ade0410c',1,'List']]], + ['read_1',['read',['../classList.html#a5e3581ee07649f462aa8bb3221a5466e',1,'List::read()'],['../classString.html#ad76bb9eca15651c67332808cdaad6344',1,'String::read()'],['../Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787',1,'read(T *storage): Toolbox.hpp'],['../Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0',1,'read(T &storage): Toolbox.hpp']]], + ['removeat_2',['removeAt',['../classList.html#ad9c0a5b5bca6286f458d6fab280de65a',1,'List']]], + ['run_3',['run',['../classCommand.html#a2134b97948833d1ef31c6fb5ed200bed',1,'Command::run()'],['../classUserInterface.html#a6d8d6d6b6900823be51259efba78b400',1,'UserInterface::run()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html new file mode 100644 index 0000000..b7ad6e6 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js new file mode 100644 index 0000000..3ffbc47 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['savetofile_0',['saveToFile',['../classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa',1,'Table']]], + ['string_1',['String',['../classString.html',1,'String'],['../classString.html#ad3d65397e27bb3c4db1295208cfb1559',1,'String::String(unsigned length)'],['../classString.html#a3fba40cf6cb11735ffddc355a5ff68f4',1,'String::String(const char *str)']]], + ['string_2eh_2',['String.h',['../String_8h.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html new file mode 100644 index 0000000..829c917 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js new file mode 100644 index 0000000..83c729b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['table_0',['Table',['../classTable.html',1,'']]], + ['table_2eh_1',['Table.h',['../Table_8h.html',1,'']]], + ['toolbox_2ehpp_2',['Toolbox.hpp',['../Toolbox_8hpp.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html new file mode 100644 index 0000000..d32b28e --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js new file mode 100644 index 0000000..874f281 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['userinterface_0',['UserInterface',['../classUserInterface.html',1,'']]], + ['userinterface_2eh_1',['UserInterface.h',['../UserInterface_8h.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html new file mode 100644 index 0000000..ce450a2 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js new file mode 100644 index 0000000..784e51a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/all_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['write_0',['write',['../classList.html#a8d2babffd2fb4a5e0a40dbd306e19956',1,'List::write()'],['../classString.html#a7b0ea809587c21bc1d2b87bfee53e628',1,'String::write()']]], + ['writetofile_1',['writeToFile',['../classCell.html#a126ab727ef443f5fd8ef62832614f56b',1,'Cell::writeToFile()'],['../classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86',1,'CellDouble::writeToFile()'],['../classCellFormula.html#a2883e300abc5153ce84f660f03050fdf',1,'CellFormula::writeToFile()'],['../classCellInt.html#a7a08dad97c474910e07c06f54bb2de94',1,'CellInt::writeToFile()'],['../classCellString.html#ac9f11804de3e600c4a86b253fac9edcf',1,'CellString::writeToFile()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html new file mode 100644 index 0000000..8361bcd --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js new file mode 100644 index 0000000..9c4b534 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['cell_0',['Cell',['../classCell.html',1,'']]], + ['celldouble_1',['CellDouble',['../classCellDouble.html',1,'']]], + ['cellformula_2',['CellFormula',['../classCellFormula.html',1,'']]], + ['cellint_3',['CellInt',['../classCellInt.html',1,'']]], + ['cellstring_4',['CellString',['../classCellString.html',1,'']]], + ['command_5',['Command',['../classCommand.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html new file mode 100644 index 0000000..3c668de --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js new file mode 100644 index 0000000..1e088ed --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['list_0',['List',['../classList.html',1,'']]], + ['list_3c_20celldouble_20_3e_1',['List< CellDouble >',['../classList.html',1,'']]], + ['list_3c_20command_20_3e_2',['List< Command >',['../classList.html',1,'']]], + ['list_3c_20list_3c_20cell_20_2a_20_3e_20_3e_3',['List< List< Cell * > >',['../classList.html',1,'']]], + ['list_3c_20pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_20_3e_4',['List< Pair< Pair< int, int >, char > >',['../classList.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html new file mode 100644 index 0000000..868c172 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js new file mode 100644 index 0000000..3ebc81d --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['menu_0',['Menu',['../classMenu.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html new file mode 100644 index 0000000..995d5d2 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js new file mode 100644 index 0000000..d1e0c47 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pair_0',['Pair',['../structPair.html',1,'']]], + ['pair_3c_20pair_3c_20int_2c_20int_20_3e_2c_20char_20_3e_1',['Pair< Pair< int, int >, char >',['../structPair.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html new file mode 100644 index 0000000..b61a53a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js new file mode 100644 index 0000000..24c218f --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['string_0',['String',['../classString.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html new file mode 100644 index 0000000..004dd4b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js new file mode 100644 index 0000000..13a6800 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['table_0',['Table',['../classTable.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html new file mode 100644 index 0000000..21bf019 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js new file mode 100644 index 0000000..629d9da --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['userinterface_0',['UserInterface',['../classUserInterface.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html new file mode 100644 index 0000000..da83704 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js new file mode 100644 index 0000000..b1e0294 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['cell_2eh_0',['Cell.h',['../Cell_8h.html',1,'']]], + ['celldouble_2eh_1',['CellDouble.h',['../CellDouble_8h.html',1,'']]], + ['cellformula_2eh_2',['CellFormula.h',['../CellFormula_8h.html',1,'']]], + ['cellint_2eh_3',['CellInt.h',['../CellInt_8h.html',1,'']]], + ['cellstring_2eh_4',['CellString.h',['../CellString_8h.html',1,'']]], + ['command_2eh_5',['Command.h',['../Command_8h.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html new file mode 100644 index 0000000..f7e1582 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js new file mode 100644 index 0000000..1d78260 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['list_2ehpp_0',['List.hpp',['../List_8hpp.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html new file mode 100644 index 0000000..99aca62 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js new file mode 100644 index 0000000..d6e8254 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]], + ['menu_2eh_1',['Menu.h',['../Menu_8h.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html new file mode 100644 index 0000000..25e128c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js new file mode 100644 index 0000000..f127227 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pair_2ehpp_0',['Pair.hpp',['../Pair_8hpp.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html new file mode 100644 index 0000000..3c8ba6e --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js new file mode 100644 index 0000000..4cc8013 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['string_2eh_0',['String.h',['../String_8h.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html new file mode 100644 index 0000000..7ff9613 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js new file mode 100644 index 0000000..582bae8 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['table_2eh_0',['Table.h',['../Table_8h.html',1,'']]], + ['toolbox_2ehpp_1',['Toolbox.hpp',['../Toolbox_8hpp.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html new file mode 100644 index 0000000..cdd711b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js new file mode 100644 index 0000000..a82a6e8 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['userinterface_2eh_0',['UserInterface.h',['../UserInterface_8h.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html new file mode 100644 index 0000000..2d2d950 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js new file mode 100644 index 0000000..93f7baa --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['add_0',['add',['../classList.html#abfec4f2e7990d06c143852ecfdf907bb',1,'List']]], + ['addcommand_1',['addCommand',['../classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d',1,'Menu']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html new file mode 100644 index 0000000..3b96b90 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js new file mode 100644 index 0000000..56a6324 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['celldouble_0',['CellDouble',['../classCellDouble.html#a9cf8a180a3dd6996cad5054ac3dc13af',1,'CellDouble']]], + ['clear_1',['clear',['../classList.html#ae296516a252e11963dbf963727ce429a',1,'List']]], + ['command_2',['Command',['../classCommand.html#a18df2d81039392daeb0b78c346a70537',1,'Command::Command()'],['../classCommand.html#a96dda87aba05825c0e8a0323bd25c826',1,'Command::Command(const char *name, void(*exec)(const char *params))']]], + ['compare_3',['compare',['../classString.html#a3f420d69fbe3de91711dc69148d23cc7',1,'String']]], + ['contain_4',['contain',['../classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1',1,'List']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html new file mode 100644 index 0000000..1f16d2a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js new file mode 100644 index 0000000..88f9575 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['findindex_0',['findIndex',['../classList.html#a3804f03273ef5e339b504e439c5b6534',1,'List']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html new file mode 100644 index 0000000..0b37ee2 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js new file mode 100644 index 0000000..bedc7ba --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_3.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['get_5fcols_0',['get_cols',['../classTable.html#af6dce3e4e7be8c073cef6b1a6876d41d',1,'Table']]], + ['get_5fcount_1',['get_count',['../classList.html#a3c1e3a3fc085f5b7ae68514c4758687b',1,'List']]], + ['get_5fcstr_2',['get_cstr',['../classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc',1,'String']]], + ['get_5flength_3',['get_length',['../classList.html#aa32109b77dccd8241b125ebabdda876c',1,'List::get_length()'],['../classString.html#a7793a7e9a7601d4c724dcc85566259bf',1,'String::get_length()']]], + ['get_5frows_4',['get_rows',['../classTable.html#a8d2cec43247d091c9b2eb82fadc1a40b',1,'Table']]], + ['getallcells_5',['getAllCells',['../classTable.html#a654a6b6617a91dc96dde9038220967d8',1,'Table']]], + ['getnumeralvalue_6',['getNumeralValue',['../classCellDouble.html#a088a191ea593642c944610f5332e1608',1,'CellDouble::getNumeralValue()'],['../classCellString.html#ad1f27d1929c2cc8a7a657f72c6640803',1,'CellString::getNumeralValue()'],['../classCellInt.html#a8417811309bda5886bb2f70d2b8357bd',1,'CellInt::getNumeralValue()'],['../classCellFormula.html#aea7ea04991b4ef15aa80ff3182bf1e74',1,'CellFormula::getNumeralValue()'],['../classCell.html#a10bf7a5e3486908f5e6b8b24c5a2e968',1,'Cell::getNumeralValue() const =0']]], + ['getvalueforprint_7',['getValueForPrint',['../classCell.html#aebc1f8f5965802b7a44ef3da7aa2ce75',1,'Cell::getValueForPrint()'],['../classCellDouble.html#aed48fc35c20b4dac5c595d55d03a460b',1,'CellDouble::getValueForPrint()'],['../classCellFormula.html#a2f55209057eb939f3688a1f02f9fcb3d',1,'CellFormula::getValueForPrint()'],['../classCellInt.html#a14a5b56f045b244ee4246edbfe851eb2',1,'CellInt::getValueForPrint()'],['../classCellString.html#a2d88b600e72b4eeca9c933a540343a8b',1,'CellString::getValueForPrint()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html new file mode 100644 index 0000000..0eaf2b4 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js new file mode 100644 index 0000000..5d91d7c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['inputlinebox_0',['inputLineBox',['../Toolbox_8hpp.html#a65477b86cd99f1670bf1234960255baf',1,'Toolbox.cpp']]], + ['insertat_1',['insertAt',['../classList.html#ae4586debf72af33bccb3c2fbfce420e8',1,'List']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html new file mode 100644 index 0000000..eaa2769 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js new file mode 100644 index 0000000..3c67434 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['list_0',['List',['../classList.html#a93cd36efc12aa5ef5fc28866edce7e61',1,'List::List(const T *elements, unsigned elementsCount)'],['../classList.html#a40212635a3d75dfc14e9473271467b04',1,'List::List(unsigned length)']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html new file mode 100644 index 0000000..25d1cc8 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js new file mode 100644 index 0000000..952ac8d --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['menu_0',['Menu',['../classMenu.html#ad466dd83355124a6ed958430450bfe94',1,'Menu::Menu()'],['../classMenu.html#a429338a549cf1cb86c4b6a55488ea8e0',1,'Menu::Menu(const Command *commands, unsigned commandCount)']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html new file mode 100644 index 0000000..b6392ea --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js new file mode 100644 index 0000000..c3df1e0 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['navigate_0',['navigate',['../classMenu.html#a0400751da7f8583029b7a12d3003c36d',1,'Menu']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html new file mode 100644 index 0000000..ecf6a89 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js new file mode 100644 index 0000000..a55cb66 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_2b_3d_0',['operator+=',['../classList.html#aa4332ce5a589da28528f035ded6d41e5',1,'List::operator+=()'],['../classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6',1,'String::operator+=(const char *str)'],['../classString.html#a0a96f034ca01cc9fbb27e17330c66ca1',1,'String::operator+=(int number)'],['../classString.html#aed8480111703abc1f281148c778b0445',1,'String::operator+=(unsigned number)'],['../classString.html#a2e4c8591498da08d8ffe206fc45f62a5',1,'String::operator+=(double number)']]], + ['operator_3c_3c_1',['operator<<',['../List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2',1,'List.hpp']]], + ['operator_3e_3e_2',['operator>>',['../List_8hpp.html#a7469c3479753bfbada761697c539aa07',1,'List.hpp']]], + ['operator_5b_5d_3',['operator[]',['../classList.html#a321bb581943398344aad07198d1f02ac',1,'List::operator[](unsigned index)'],['../classList.html#a5fa582de3aec5094a871852b658cf853',1,'List::operator[](unsigned index) const'],['../classString.html#a5d3b77a51619a8580a373d2cd1092a54',1,'String::operator[]()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html new file mode 100644 index 0000000..cd70e2b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js new file mode 100644 index 0000000..797e657 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['parseandsetvalue_0',['parseAndSetValue',['../classCell.html#a732fcaeea7050f4afb3bcd6377432b95',1,'Cell::parseAndSetValue()'],['../classCellDouble.html#a3f977aa0c5b68736621b1ded0687574b',1,'CellDouble::parseAndSetValue()'],['../classCellFormula.html#afecaac674bfb6bc2bbe1796c74643e31',1,'CellFormula::parseAndSetValue()'],['../classCellInt.html#a72788dc2ebadd13ae198e4e143403073',1,'CellInt::parseAndSetValue()'],['../classCellString.html#a8152beac5329e170bf2c225ac189fba4',1,'CellString::parseAndSetValue()']]], + ['print_1',['print',['../Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73',1,'print(const T *item): Toolbox.hpp'],['../Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e',1,'print(const T &item): Toolbox.hpp']]], + ['printline_2',['printLine',['../Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81',1,'printLine(const T *item): Toolbox.hpp'],['../Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa',1,'printLine(const T &item): Toolbox.hpp']]], + ['printtable_3',['printTable',['../Toolbox_8hpp.html#a138328aaa20f2a8a514e4d7e6fc9c325',1,'Toolbox.cpp']]], + ['putcell_4',['putCell',['../classTable.html#a83388586d16c5b42029298b72ed698a5',1,'Table']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html new file mode 100644 index 0000000..d2a3de9 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js new file mode 100644 index 0000000..c7cbb5c --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['raw_5fdata_0',['raw_data',['../classList.html#a1e380d73cf889304a7468762ade0410c',1,'List']]], + ['read_1',['read',['../classList.html#a5e3581ee07649f462aa8bb3221a5466e',1,'List::read()'],['../classString.html#ad76bb9eca15651c67332808cdaad6344',1,'String::read()'],['../Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787',1,'read(T *storage): Toolbox.hpp'],['../Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0',1,'read(T &storage): Toolbox.hpp']]], + ['removeat_2',['removeAt',['../classList.html#ad9c0a5b5bca6286f458d6fab280de65a',1,'List']]], + ['run_3',['run',['../classCommand.html#a2134b97948833d1ef31c6fb5ed200bed',1,'Command::run()'],['../classUserInterface.html#a6d8d6d6b6900823be51259efba78b400',1,'UserInterface::run()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html new file mode 100644 index 0000000..e6f34bb --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js new file mode 100644 index 0000000..6f9b2c7 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['savetofile_0',['saveToFile',['../classTable.html#a8a29a5f941369c8b61c56b4d6507a9fa',1,'Table']]], + ['string_1',['String',['../classString.html#ad3d65397e27bb3c4db1295208cfb1559',1,'String::String(unsigned length)'],['../classString.html#a3fba40cf6cb11735ffddc355a5ff68f4',1,'String::String(const char *str)']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html new file mode 100644 index 0000000..87b4ce2 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js new file mode 100644 index 0000000..784e51a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/functions_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['write_0',['write',['../classList.html#a8d2babffd2fb4a5e0a40dbd306e19956',1,'List::write()'],['../classString.html#a7b0ea809587c21bc1d2b87bfee53e628',1,'String::write()']]], + ['writetofile_1',['writeToFile',['../classCell.html#a126ab727ef443f5fd8ef62832614f56b',1,'Cell::writeToFile()'],['../classCellDouble.html#a00e0ee96789eeee92d56b4dd6c1c9d86',1,'CellDouble::writeToFile()'],['../classCellFormula.html#a2883e300abc5153ce84f660f03050fdf',1,'CellFormula::writeToFile()'],['../classCellInt.html#a7a08dad97c474910e07c06f54bb2de94',1,'CellInt::writeToFile()'],['../classCellString.html#ac9f11804de3e600c4a86b253fac9edcf',1,'CellString::writeToFile()']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg b/Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html new file mode 100644 index 0000000..e53c280 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js new file mode 100644 index 0000000..8fc88dd --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fmi_20tables_0',['FMI Tables',['../index.html',1,'']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html new file mode 100644 index 0000000..28d304b --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js new file mode 100644 index 0000000..6e9c97a --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/related_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['operator_3c_3c_0',['operator<<',['../classString.html#aaf68eeb5ffc0983ecc68d49085e33102',1,'String']]], + ['operator_3e_3e_1',['operator>>',['../classString.html#a145347940875a9da605f74c2138be157',1,'String']]] +]; diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css new file mode 100644 index 0000000..648a792 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.css @@ -0,0 +1,263 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 19px; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js new file mode 100644 index 0000000..ac8055d --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/search/search.js @@ -0,0 +1,794 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var width = 400; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + +FMI Table: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMI Table +
    +
    | Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    Pair< T, U > Member List
    +
    +
    + +

    This is the complete list of members for Pair< T, U >, including all inherited members.

    + + + + + +
    left (defined in Pair< T, U >)Pair< T, U >
    Pair() (defined in Pair< T, U >)Pair< T, U >
    Pair(const T &left, const U &right) (defined in Pair< T, U >)Pair< T, U >
    right (defined in Pair< T, U >)Pair< T, U >
    + + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html b/Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html new file mode 100644 index 0000000..c6ec8a3 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/structPair.html @@ -0,0 +1,107 @@ + + + + + + + +FMI Table: Pair< T, U > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMI Table +
    +
    | Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 2 | Project Topic 7 |
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    Pair< T, U > Struct Template Reference
    +
    +
    + +

    Stores two values of any types. + More...

    + +

    #include <Pair.hpp>

    + + + + +

    +Public Member Functions

    + Pair (const T &left, const U &right)
     
    + + + + + +

    +Public Attributes

    +T left
     
    +U right
     
    +

    Detailed Description

    +
    template<typename T, typename U>
    +struct Pair< T, U >

    Stores two values of any types.

    +

    Values are public, so no explicit getters or setters are made.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.png b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.png new file mode 100644 index 0000000..3b443fc Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_off.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.png b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.png new file mode 100644 index 0000000..e08320f Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/sync_on.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.png new file mode 100644 index 0000000..3b725c4 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_a.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.png new file mode 100644 index 0000000..e2b4a86 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_b.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.png new file mode 100644 index 0000000..fd5cb70 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_h.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.png b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.png new file mode 100644 index 0000000..ab478c9 Binary files /dev/null and b/Year 1/Object-oriented Programming/Project 2/docs/html/tab_s.png differ diff --git a/Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css b/Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css new file mode 100644 index 0000000..00d1c60 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file -- cgit v1.3.1-23-gd82d