From 38abe293afa5e0db7e6d047fa57abb01d7ed0cac Mon Sep 17 00:00:00 2001 From: Joakim Hunskaar Date: Wed, 5 Nov 2025 14:34:25 +0100 Subject: [PATCH] nuke project templates --- templates/_folder_Projects/.gitkeep | 0 .../_folder_Projects/sudoku/Documentation.pdf | Bin 95693 -> 0 bytes templates/_folder_Projects/sudoku/GUI.cpp | 206 -- templates/_folder_Projects/sudoku/GUI.h | 61 - templates/_folder_Projects/sudoku/README.md | 5 - templates/_folder_Projects/sudoku/Sudoku.cpp | 150 -- templates/_folder_Projects/sudoku/Sudoku.h | 30 - templates/_folder_Projects/sudoku/Tile.cpp | 45 - templates/_folder_Projects/sudoku/Tile.h | 23 - .../sudoku/game-files/almost_solved.txt | 9 - .../sudoku/game-files/easy.txt | 9 - .../sudoku/game-files/hard.txt | 9 - .../sudoku/game-files/medium.txt | 9 - templates/_folder_Projects/sudoku/main.cpp | 12 - .../_folder_Projects/text-editor/README.md | 16 - .../text-editor/TextEditor.cpp | 65 - .../_folder_Projects/text-editor/TextEditor.h | 52 - .../_folder_Projects/text-editor/main.cpp | 10 - .../_folder_Projects/tic-tac-toe/README.md | 27 - .../tic-tac-toe/TicTacToeWindow.cpp | 228 -- .../tic-tac-toe/TicTacToeWindow.h | 106 - .../docs/html/_tic_tac_toe_window_8cpp.html | 448 ---- .../docs/html/_tic_tac_toe_window_8cpp.js | 16 - .../docs/html/_tic_tac_toe_window_8h.html | 144 -- .../docs/html/_tic_tac_toe_window_8h.js | 4 - .../html/_tic_tac_toe_window_8h_source.html | 188 -- .../tic-tac-toe/docs/html/annotated.html | 122 - .../tic-tac-toe/docs/html/annotated_dup.js | 4 - .../tic-tac-toe/docs/html/bc_s.png | Bin 676 -> 0 bytes .../tic-tac-toe/docs/html/bc_sd.png | Bin 635 -> 0 bytes .../class_tic_tac_toe_window-members.html | 140 - .../docs/html/class_tic_tac_toe_window.html | 777 ------ .../docs/html/class_tic_tac_toe_window.js | 23 - .../docs/html/class_tic_tac_toe_window.png | Bin 640 -> 0 bytes .../tic-tac-toe/docs/html/classes.html | 123 - .../tic-tac-toe/docs/html/clipboard.js | 61 - .../tic-tac-toe/docs/html/closed.png | Bin 132 -> 0 bytes .../tic-tac-toe/docs/html/cookie.js | 58 - .../tic-tac-toe/docs/html/doc.svg | 12 - .../tic-tac-toe/docs/html/docd.svg | 12 - .../tic-tac-toe/docs/html/doxygen.css | 2255 ----------------- .../tic-tac-toe/docs/html/doxygen.svg | 28 - .../tic-tac-toe/docs/html/doxygen_crawl.html | 65 - .../tic-tac-toe/docs/html/dynsections.js | 198 -- .../tic-tac-toe/docs/html/files.html | 124 - .../tic-tac-toe/docs/html/files_dup.js | 6 - .../tic-tac-toe/docs/html/folderclosed.svg | 11 - .../tic-tac-toe/docs/html/folderclosedd.svg | 11 - .../tic-tac-toe/docs/html/folderopen.svg | 17 - .../tic-tac-toe/docs/html/folderopend.svg | 12 - .../tic-tac-toe/docs/html/functions.html | 136 - .../tic-tac-toe/docs/html/functions_func.html | 128 - .../tic-tac-toe/docs/html/functions_vars.html | 124 - .../tic-tac-toe/docs/html/globals.html | 131 - .../tic-tac-toe/docs/html/globals_func.html | 118 - .../tic-tac-toe/docs/html/globals_vars.html | 129 - .../tic-tac-toe/docs/html/hierarchy.html | 123 - .../tic-tac-toe/docs/html/hierarchy.js | 6 - .../tic-tac-toe/docs/html/index.html | 118 - .../tic-tac-toe/docs/html/jquery.js | 204 -- .../tic-tac-toe/docs/html/main_8cpp.html | 184 -- .../tic-tac-toe/docs/html/main_8cpp.js | 5 - .../tic-tac-toe/docs/html/minus.svg | 8 - .../tic-tac-toe/docs/html/minusd.svg | 8 - .../tic-tac-toe/docs/html/nav_f.png | Bin 153 -> 0 bytes .../tic-tac-toe/docs/html/nav_fd.png | Bin 169 -> 0 bytes .../tic-tac-toe/docs/html/nav_g.png | Bin 95 -> 0 bytes .../tic-tac-toe/docs/html/nav_h.png | Bin 98 -> 0 bytes .../tic-tac-toe/docs/html/nav_hd.png | Bin 114 -> 0 bytes .../tic-tac-toe/docs/html/navtree.css | 149 -- .../tic-tac-toe/docs/html/navtree.js | 483 ---- .../tic-tac-toe/docs/html/navtreedata.js | 55 - .../tic-tac-toe/docs/html/navtreeindex0.js | 55 - .../tic-tac-toe/docs/html/open.png | Bin 123 -> 0 bytes .../tic-tac-toe/docs/html/plus.svg | 9 - .../tic-tac-toe/docs/html/plusd.svg | 9 - .../tic-tac-toe/docs/html/resize.js | 147 -- .../tic-tac-toe/docs/html/search/all_0.js | 9 - .../tic-tac-toe/docs/html/search/all_1.js | 9 - .../tic-tac-toe/docs/html/search/all_2.js | 6 - .../tic-tac-toe/docs/html/search/all_3.js | 4 - .../tic-tac-toe/docs/html/search/all_4.js | 4 - .../tic-tac-toe/docs/html/search/all_5.js | 4 - .../tic-tac-toe/docs/html/search/all_6.js | 4 - .../tic-tac-toe/docs/html/search/all_7.js | 5 - .../tic-tac-toe/docs/html/search/all_8.js | 5 - .../tic-tac-toe/docs/html/search/all_9.js | 6 - .../tic-tac-toe/docs/html/search/all_a.js | 10 - .../tic-tac-toe/docs/html/search/all_b.js | 6 - .../tic-tac-toe/docs/html/search/all_c.js | 5 - .../tic-tac-toe/docs/html/search/classes_0.js | 4 - .../tic-tac-toe/docs/html/search/close.svg | 18 - .../tic-tac-toe/docs/html/search/files_0.js | 4 - .../tic-tac-toe/docs/html/search/files_1.js | 5 - .../docs/html/search/functions_0.js | 7 - .../docs/html/search/functions_1.js | 6 - .../docs/html/search/functions_2.js | 4 - .../docs/html/search/functions_3.js | 4 - .../docs/html/search/functions_4.js | 5 - .../docs/html/search/functions_5.js | 4 - .../docs/html/search/functions_6.js | 4 - .../docs/html/search/functions_7.js | 4 - .../tic-tac-toe/docs/html/search/mag.svg | 24 - .../tic-tac-toe/docs/html/search/mag_d.svg | 24 - .../tic-tac-toe/docs/html/search/mag_sel.svg | 31 - .../tic-tac-toe/docs/html/search/mag_seld.svg | 31 - .../tic-tac-toe/docs/html/search/search.css | 286 --- .../tic-tac-toe/docs/html/search/search.js | 694 ----- .../docs/html/search/searchdata.js | 27 - .../docs/html/search/variables_0.js | 9 - .../docs/html/search/variables_1.js | 5 - .../docs/html/search/variables_2.js | 4 - .../docs/html/search/variables_3.js | 4 - .../docs/html/search/variables_4.js | 4 - .../docs/html/search/variables_5.js | 6 - .../docs/html/search/variables_6.js | 9 - .../docs/html/search/variables_7.js | 4 - .../tic-tac-toe/docs/html/splitbar.png | Bin 314 -> 0 bytes .../tic-tac-toe/docs/html/splitbard.png | Bin 282 -> 0 bytes .../tic-tac-toe/docs/html/sync_off.png | Bin 853 -> 0 bytes .../tic-tac-toe/docs/html/sync_on.png | Bin 845 -> 0 bytes .../tic-tac-toe/docs/html/tab_a.png | Bin 142 -> 0 bytes .../tic-tac-toe/docs/html/tab_ad.png | Bin 135 -> 0 bytes .../tic-tac-toe/docs/html/tab_b.png | Bin 169 -> 0 bytes .../tic-tac-toe/docs/html/tab_bd.png | Bin 173 -> 0 bytes .../tic-tac-toe/docs/html/tab_h.png | Bin 177 -> 0 bytes .../tic-tac-toe/docs/html/tab_hd.png | Bin 180 -> 0 bytes .../tic-tac-toe/docs/html/tab_s.png | Bin 184 -> 0 bytes .../tic-tac-toe/docs/html/tab_sd.png | Bin 188 -> 0 bytes .../tic-tac-toe/docs/html/tabs.css | 1 - .../tic-tac-toe/game_results.txt | 57 - .../_folder_Projects/tic-tac-toe/main.cpp | 32 - 132 files changed, 9658 deletions(-) create mode 100644 templates/_folder_Projects/.gitkeep delete mode 100644 templates/_folder_Projects/sudoku/Documentation.pdf delete mode 100644 templates/_folder_Projects/sudoku/GUI.cpp delete mode 100644 templates/_folder_Projects/sudoku/GUI.h delete mode 100644 templates/_folder_Projects/sudoku/README.md delete mode 100644 templates/_folder_Projects/sudoku/Sudoku.cpp delete mode 100644 templates/_folder_Projects/sudoku/Sudoku.h delete mode 100644 templates/_folder_Projects/sudoku/Tile.cpp delete mode 100644 templates/_folder_Projects/sudoku/Tile.h delete mode 100644 templates/_folder_Projects/sudoku/game-files/almost_solved.txt delete mode 100644 templates/_folder_Projects/sudoku/game-files/easy.txt delete mode 100644 templates/_folder_Projects/sudoku/game-files/hard.txt delete mode 100644 templates/_folder_Projects/sudoku/game-files/medium.txt delete mode 100644 templates/_folder_Projects/sudoku/main.cpp delete mode 100644 templates/_folder_Projects/text-editor/README.md delete mode 100644 templates/_folder_Projects/text-editor/TextEditor.cpp delete mode 100644 templates/_folder_Projects/text-editor/TextEditor.h delete mode 100644 templates/_folder_Projects/text-editor/main.cpp delete mode 100644 templates/_folder_Projects/tic-tac-toe/README.md delete mode 100644 templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.cpp delete mode 100644 templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.h delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h_source.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/annotated.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/annotated_dup.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/bc_s.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/bc_sd.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window-members.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/classes.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/clipboard.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/closed.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/cookie.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/doc.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/docd.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.css delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/doxygen_crawl.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/dynsections.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/files.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/files_dup.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/folderclosed.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/folderclosedd.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/folderopen.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/folderopend.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/functions.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/functions_func.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/functions_vars.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/globals.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/globals_func.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/globals_vars.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/index.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/jquery.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.html delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/minus.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/minusd.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/nav_f.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/nav_fd.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/nav_g.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/nav_h.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/nav_hd.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/navtree.css delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/navtree.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/navtreedata.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/navtreeindex0.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/open.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/plus.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/plusd.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/resize.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_0.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_1.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_2.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_3.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_4.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_5.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_6.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_7.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_8.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_9.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_a.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_b.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/all_c.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/classes_0.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/close.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/files_0.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/files_1.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_0.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_1.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_2.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_3.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_4.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_5.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_6.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_7.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/mag.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_d.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_sel.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_seld.svg delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/search.css delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/search.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/searchdata.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_0.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_1.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_2.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_3.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_4.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_5.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_6.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/search/variables_7.js delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/splitbar.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/splitbard.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/sync_off.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/sync_on.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_a.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_ad.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_b.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_bd.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_h.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_hd.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_s.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tab_sd.png delete mode 100644 templates/_folder_Projects/tic-tac-toe/docs/html/tabs.css delete mode 100644 templates/_folder_Projects/tic-tac-toe/game_results.txt delete mode 100644 templates/_folder_Projects/tic-tac-toe/main.cpp diff --git a/templates/_folder_Projects/.gitkeep b/templates/_folder_Projects/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/templates/_folder_Projects/sudoku/Documentation.pdf b/templates/_folder_Projects/sudoku/Documentation.pdf deleted file mode 100644 index 7a9074c11dcdd2a6848220c0f9f6481ac809d170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95693 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�lR_C@3b4OD5gHe# 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 z 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::bind(&SudokuWindow::cb_click, this)); - auto temp = tiles.at(row).back().get(); - add(*temp); - } - - } - - // Legger til knapp for å sjekke brett - check_button.setCallback(std::bind(&SudokuWindow::cb_check, this)); - victory_box.setVisible(false); - add(check_button); - add(victory_box); - -} - -// Returnerer tilen som inneholder spesifisert punkt i vinduet -std::shared_ptr& SudokuWindow::get_tile(TDT4102::Point xy) { - return tiles[xy.y / tile_size][xy.x / tile_size]; -} - -// Velger en gitt tile, for å kunne endre tallet -void SudokuWindow::select_tile(std::shared_ptr& tile) { - if(tile->changeable) { - if(selected_tile) { - selected_tile->is_highlighted = false; - selected_tile->update(); - } - - selected_tile = tile; - selected_tile->is_highlighted = true; - selected_tile->update(); - } -} - -// Sjekker om et punkt er innenfor vinduet -bool SudokuWindow::in_range(TDT4102::Point xy) const { - return (xy.x >= 0 && xy.x< width && xy.y >= 0 && xy.y < height); -} - -// Kjører programmet. Tar inn et forhåndslagd brett fra en tekstfil -void SudokuWindow::run(std::string board_filename) { - while(!should_close()) { - - if(won) { - toggle_visible(false); - victory_box.setVisible(true); - next_frame(); - } - - else { - - if(!game_started) { - try{ - sudoku_board->load_board_from_file(board_filename); - } - catch(const std::ios_base::failure& e) { - std::cerr << "Error: " << e.what() << std::endl; - } - - initialize_tiles(); - game_started = true; - } - draw_grid(); - handle_input(); - next_frame(); - } - } -} - -// Initialiserer det grafiske brettet. Henter forhåndsbestemte tall fra spillbrettet -void SudokuWindow::initialize_tiles() { - for (int row = 0; row < num_rows; row++) { - for (int col = 0; col < num_cols; col++) { - int num = sudoku_board->get_cell(row, col); - std::shared_ptr tile = tiles.at(row).at(col); - if(num) { - tile->changeable = false; // Kan ikke endre på de forhåndsbestemte tallene - } - try{ - tile->set(num); - } - // Setter tile til 0 hvis den møter på et ugyldig tall - catch(const std::out_of_range& e) { - std::cerr << "Error: " << e.what() << std::endl - << "Could not load invalid number, tile set to 0" << std::endl; - } - } - } -} - -// Setter verdiene i spillbrettet basert på tallene i Tiles -void SudokuWindow::set_tiles() { - int num; - for(int row = 0; row < num_rows; row++) { - for(int col = 0; col < num_cols; col++) { - num = tiles.at(row).at(col)->number; - sudoku_board->set_cell(row, col, num); - } - } -} - -// Slår av eller på synligheten til brettet -void SudokuWindow::toggle_visible(bool visibility) { - for(int row = 0; row < num_rows; row++) { - for(int col = 0; col < num_cols; col++) { - tiles.at(row).at(col)->setVisible(visibility); - } - } -} - -// Tegner rutenett -void SudokuWindow::draw_grid() { - int corr = 3; // Korreksjonsfaktor for å få nettet til å line up - - for(int row = 0; row < num_rows; row++) { - for(int col = 0; col < num_cols; col++) { - if (col % 3 == 0 && col != 0) { - int x = pad_size + col * tile_size; - draw_line({x + corr, pad_size}, {x+ corr, pad_size + board_height}); - } - } - if (row % 3 == 0 && row != 0) { - int y = pad_size + row * tile_size; - draw_line({pad_size, y + corr}, {pad_size + board_height, y + corr}); - } - } -} - -// Callback-funksjon for når brukeren klikker på en tile -void SudokuWindow::cb_click() { - - std::shared_ptr tile; - TDT4102::Point xy{this->get_mouse_coordinates()}; - if (!in_range(xy)) { - std::cout << "Out of range!" << std::endl; - return; - } - if (this->is_left_mouse_button_down()) { - tile = get_tile(xy); - select_tile(tile); - } -} - -// Sjekker om hele brettet er fyllt inn, og gyldig -void SudokuWindow::cb_check() { - set_tiles(); - std::cout << "Board checked" << std::endl; - if (sudoku_board->check_board() && sudoku_board->check_complete()) { - std::cout << "You won!" << std::endl; - won = true; - } -} - -// Sjekker for input fra tastaturet. Registerer om en tast går fra å ikke være trykket -// inn, til å være trykket inn -void SudokuWindow::handle_input() { - - static bool last_0_state = false; - static bool last_1_state = false; - static bool last_2_state = false; - static bool last_3_state = false; - static bool last_4_state = false; - static bool last_5_state = false; - static bool last_6_state = false; - static bool last_7_state = false; - static bool last_8_state = false; - static bool last_9_state = false; - - bool current_0_state = is_key_down(KeyboardKey::KEY_0); - bool current_1_state = is_key_down(KeyboardKey::KEY_1); - bool current_2_state = is_key_down(KeyboardKey::KEY_2); - bool current_3_state = is_key_down(KeyboardKey::KEY_3); - bool current_4_state = is_key_down(KeyboardKey::KEY_4); - bool current_5_state = is_key_down(KeyboardKey::KEY_5); - bool current_6_state = is_key_down(KeyboardKey::KEY_6); - bool current_7_state = is_key_down(KeyboardKey::KEY_7); - bool current_8_state = is_key_down(KeyboardKey::KEY_8); - bool current_9_state = is_key_down(KeyboardKey::KEY_9); - - if (current_0_state && !last_0_state) { selected_tile->set(0); } - if (current_1_state && !last_1_state) { selected_tile->set(1); } - if (current_2_state && !last_2_state) { selected_tile->set(2); } - if (current_3_state && !last_3_state) { selected_tile->set(3); } - if (current_4_state && !last_4_state) { selected_tile->set(4); } - if (current_5_state && !last_5_state) { selected_tile->set(5); } - if (current_6_state && !last_6_state) { selected_tile->set(6); } - if (current_7_state && !last_7_state) { selected_tile->set(7); } - if (current_8_state && !last_8_state) { selected_tile->set(8); } - if (current_9_state && !last_9_state) { selected_tile->set(9); } - -} \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/GUI.h b/templates/_folder_Projects/sudoku/GUI.h deleted file mode 100644 index 88d2201..0000000 --- a/templates/_folder_Projects/sudoku/GUI.h +++ /dev/null @@ -1,61 +0,0 @@ -#pragma once -#include -#include "AnimationWindow.h" -#include "Tile.h" -#include "Sudoku.h" -#include "widgets/TextInput.h" - -class SudokuWindow : public TDT4102::AnimationWindow -{ - private: - - // Konstanter for grafikkvinduet - static constexpr int tile_size = 33; - static constexpr int board_width = num_cols*tile_size; - static constexpr int board_height = num_rows*tile_size; - static constexpr int pad_size = 10; - static constexpr int button_width = board_width; - static constexpr int box_width = board_width; - static constexpr int button_height = 40; - static constexpr int box_height = 60; - - static constexpr int width = 2 * pad_size + board_width; - static constexpr int height = 3 * pad_size + board_height + button_height; - - static constexpr TDT4102::Point button_pos = {pad_size + tile_size/4, 2*pad_size + board_height}; - static constexpr TDT4102::Point box_pos = {pad_size, (height-box_height)/2}; - - - // 2D-vektor med Tiles, som utgjør det grafiske brettet - std::vector>> tiles; - std::shared_ptr selected_tile; - - // Øvrige GUI-elementer - TDT4102::Button check_button; - TDT4102::TextInput victory_box; - - // Spillbrett-objektet som kjører spillogikken - std::shared_ptr sudoku_board = std::make_shared(); - bool game_started = false; - bool won = false; - - - // Medlemsfunksjoner - std::shared_ptr& get_tile(TDT4102::Point); - void select_tile(std::shared_ptr& tile); - bool in_range(TDT4102::Point xy) const; - void handle_input(); - void cb_click(); - void cb_check(); - void initialize_tiles(); - void set_tiles(); - void toggle_visible(bool visible); - void draw_grid(); - - public: - // konstruktør - SudokuWindow(int x, int y, const std::string& title); - // kjører programmet - void run(std::string board_filename); - -}; \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/README.md b/templates/_folder_Projects/sudoku/README.md deleted file mode 100644 index 345a59b..0000000 --- a/templates/_folder_Projects/sudoku/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Sudoku - -En enkel versjon av Sudoku skrevet i C++. - -Dokumentasjon ligger i egen PDF-fil. Merk at denne er lenger og mer utfyllende enn det som er forventet av dere i prosjektet! diff --git a/templates/_folder_Projects/sudoku/Sudoku.cpp b/templates/_folder_Projects/sudoku/Sudoku.cpp deleted file mode 100644 index acf5d52..0000000 --- a/templates/_folder_Projects/sudoku/Sudoku.cpp +++ /dev/null @@ -1,150 +0,0 @@ -#include "Sudoku.h" - -// Default-konstruktør for spillbrettet -Sudoku::Sudoku() { - for (int row = 0; row < num_rows; row++) { - for (int col = 0; col < num_cols; col++) { - this->board[row][col] = 0; - } - } -} - -// Konstruktør som oppretter spillbrettet basert på et eksisterende array -Sudoku::Sudoku(int board[9][9]) { - for (int row = 0; row < num_rows; row++) { - for (int col = 0; col < num_cols; col++) { - this->board[row][col] = board[row][col]; - } - } -} - -// Printer ut spillbrettet til terminal -void Sudoku::print_board() { - for (int row = 0; row < num_rows; row++) { - for (int col = 0; col < num_cols; col++) { - std::cout << board[row][col] << " "; - if(col == 2 || col == 5){ - std::cout << "| "; - } - } - if(row == 2 || row == 5){ - std::cout << std::endl; - std::cout << "---------------------"; - } - std::cout << std::endl; - } - std::cout << std::endl; -} - -// Sjekker om en rad er gyldig -bool Sudoku::check_row(int row) { - - bool seen[10] = {false}; // Array to track numbers 1-9 (index 0 is unused) - - for (int col = 0; col < num_cols; col++) { - int num = board[row][col]; - if (num) { // Ignore empty tiles - if (seen[num]) { - std::cout << "Row " << row + 1 << " not valid" << std::endl; - return false; // Duplicate found - } - seen[num] = true; - } - } - return true; // No duplicates found -} - -// Sjekker om en kolonne er gyldig -bool Sudoku::check_col(int col) { - - bool seen[10] = {false}; // Array to track numbers 1-9 (index 0 is unused) - - for (int row = 0; row < num_rows; row++) { - int num = board[row][col]; - if (num) { // Ignore empty tiles - if (seen[num]) { - std::cout << "Column " << col + 1 << " not valid" << std::endl; - return false; // Duplicate found - } - seen[num] = true; - } - } - return true; // No duplicates found -} - -// Sjekker om en boks (3x3 seksjon) er gyldig -bool Sudoku::check_box(int box) { - bool seen[10] = {false}; - int start_row = (box/3) * 3; - int start_col = (box%3) * 3; - for (int row = start_row; row < start_row + 3; row++) { - for (int col = start_col; col < start_col + 3; col++) { - int num = board[row][col]; - if (num) { - if (seen[num]) { - std::cout << "Box " << box + 1 << " not valid" << std::endl; - return false; // Duplicate found - } - seen[num] = true; - } - } - } - return true; -} - -// Lagrer spillbrettet til spesifisert tekstfil -void Sudoku::save_board_to_file(std::string filename){ - std::filesystem::path save_file{filename}; - std::ofstream ofs{save_file}; - if(!ofs) { - throw std::ios_base::failure("Could not open file: " + filename); - } - - for (int row = 0; row < num_rows; row++) { - for (int col = 0; col < num_cols; col++) { - ofs << board[row][col] << " "; - } - ofs << '\n'; - } -} - -// Laster inn et spillbrett fra spesifisert tekstfil -void Sudoku::load_board_from_file(std::string filename) { - std::filesystem::path load_file{filename}; - std::ifstream ifs{load_file}; - if(!ifs) { - throw std::ios_base::failure("Could not open file: " + filename); - } - int num; - - for (int row = 0; row < num_rows; row++) { - for (int col = 0; col < num_cols; col++) { - ifs >> num; - set_cell(row, col, num); - } - } -} - -// Sjekker om hele brettet er gyldig -bool Sudoku::check_board() { - for (int i = 0; i < num_rows; i++) { - if(!check_row(i) || !check_col(i) || !check_box(i)) { - std::cout << "Board not valid" << std::endl; - return false; - } - } - return true; -} - -// Sjekker om hele brettet er fylt inn -bool Sudoku::check_complete() { - for (int row = 0; row < num_rows; row++) { - for (int col = 0; col < num_cols; col++) { - if(!board[row][col]) { - std::cout << "Board incomplete" << std::endl; - return false; - } - } - } - return true; -} \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/Sudoku.h b/templates/_folder_Projects/sudoku/Sudoku.h deleted file mode 100644 index 8d7c648..0000000 --- a/templates/_folder_Projects/sudoku/Sudoku.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once -#include "Tile.h" -#include -#include -#include - -constexpr int num_rows = 9; -constexpr int num_cols = 9; - - -class Sudoku { - private: - int board[9][9]; - public: - Sudoku(); - Sudoku(int board[9][9]); - - void set_cell(int row, int col, int num) {board[row][col] = num;} - int get_cell(int row, int col) { return board[row][col];} - void save_board_to_file(std::string filename); - void load_board_from_file(std::string filename); - void print_board(); - - bool check_row(int row); - bool check_col(int col); - bool check_box(int box); - bool check_board(); - bool check_complete(); - -}; \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/Tile.cpp b/templates/_folder_Projects/sudoku/Tile.cpp deleted file mode 100644 index 2020ece..0000000 --- a/templates/_folder_Projects/sudoku/Tile.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "Tile.h" - -Tile::Tile(TDT4102::Point board_pos, TDT4102::Point pos, int size, int num) : -Button(pos, 1.5*size, size, "") { - - if (num > 9 || num < 0) { - throw(std::out_of_range("Number " + std::to_string(num) + " not between 0-9")); - } - this->number = num; - this->is_highlighted = false; - update(); -} - -// Oppdaterer grafikken til tilen. Sjekker om den er tom, om den er valgt, og om den kan endres -void Tile::update() { - if(number) { - setLabel(std::to_string(number)); - } - else { - setLabel(""); - } - - if(is_highlighted) { - setButtonColor(highlight_color); - } - else { - setButtonColor(default_color); - } - if(changeable) { - setLabelColor(default_label_color); - } - else { - setLabelColor(unchangeable_label_color); - } - -} - -// Setter verdien på tilen til det gitte tallet -void Tile::set(int num) { - if (num > 9 || num < 0) { - throw(std::out_of_range("Number " + std::to_string(num) + " not between 0-9")); - } - number = num; - update(); -} \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/Tile.h b/templates/_folder_Projects/sudoku/Tile.h deleted file mode 100644 index ea2eb4c..0000000 --- a/templates/_folder_Projects/sudoku/Tile.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once -#include -#include "AnimationWindow.h" -#include "widgets/Button.h" - -const TDT4102::Color default_color = TDT4102::Color::white; -const TDT4102::Color highlight_color = TDT4102::Color::sky_blue; -const TDT4102::Color default_label_color = TDT4102::Color::dim_grey; -const TDT4102::Color unchangeable_label_color = TDT4102::Color::black; - -struct Tile : public TDT4102::Button{ - - Tile(TDT4102::Point board_pos, TDT4102::Point pos, int size, int number = 0); - - int number; - bool is_highlighted; - bool changeable = true; - TDT4102::Point board_pos; - - void set(int num); - void update(); - -}; \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/game-files/almost_solved.txt b/templates/_folder_Projects/sudoku/game-files/almost_solved.txt deleted file mode 100644 index b0a2f51..0000000 --- a/templates/_folder_Projects/sudoku/game-files/almost_solved.txt +++ /dev/null @@ -1,9 +0,0 @@ -0 3 5 2 6 9 7 8 1 -6 8 2 5 7 1 4 9 3 -1 9 7 8 3 4 5 6 2 -8 2 6 1 9 5 3 4 7 -3 7 4 6 8 2 9 1 5 -9 5 1 7 4 3 6 2 8 -5 1 9 3 2 6 8 7 4 -2 4 8 9 5 7 1 3 6 -7 6 3 4 1 8 2 5 9 \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/game-files/easy.txt b/templates/_folder_Projects/sudoku/game-files/easy.txt deleted file mode 100644 index 9c8fc1e..0000000 --- a/templates/_folder_Projects/sudoku/game-files/easy.txt +++ /dev/null @@ -1,9 +0,0 @@ -0 0 2 6 0 7 0 1 0 -6 8 0 0 0 7 0 9 0 -1 9 0 0 4 5 0 0 0 -8 2 0 1 0 0 0 4 0 -0 4 6 0 2 9 0 0 0 -5 0 0 0 3 0 0 2 8 -0 9 3 0 0 7 0 4 0 -4 0 5 0 0 0 3 6 0 -7 3 0 1 8 0 0 0 0 \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/game-files/hard.txt b/templates/_folder_Projects/sudoku/game-files/hard.txt deleted file mode 100644 index c74b47e..0000000 --- a/templates/_folder_Projects/sudoku/game-files/hard.txt +++ /dev/null @@ -1,9 +0,0 @@ -2 0 0 5 0 7 4 0 6 -0 0 0 0 3 1 0 0 0 -0 0 0 0 0 0 2 3 0 -0 0 0 0 2 0 0 0 0 -8 6 0 3 1 0 0 0 0 -0 4 5 0 0 0 0 0 0 -0 0 9 0 0 0 7 0 0 -0 0 6 9 5 0 0 0 2 -0 0 1 0 0 6 0 0 8 \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/game-files/medium.txt b/templates/_folder_Projects/sudoku/game-files/medium.txt deleted file mode 100644 index 815ad59..0000000 --- a/templates/_folder_Projects/sudoku/game-files/medium.txt +++ /dev/null @@ -1,9 +0,0 @@ -0 0 0 5 0 7 0 0 0 -0 4 0 2 6 3 0 0 0 -1 0 7 4 0 0 0 0 0 -3 6 0 0 0 0 0 4 5 -0 0 2 0 5 0 7 0 0 -7 9 0 0 0 0 0 6 2 -0 0 0 0 0 9 4 0 1 -0 0 0 1 3 4 0 9 0 -0 0 0 6 0 5 0 0 0 \ No newline at end of file diff --git a/templates/_folder_Projects/sudoku/main.cpp b/templates/_folder_Projects/sudoku/main.cpp deleted file mode 100644 index 037dcd1..0000000 --- a/templates/_folder_Projects/sudoku/main.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "Sudoku.h" -#include "GUI.h" - -int main() { - - TDT4102::Point start_point{200, 300}; - - SudokuWindow sw{start_point.x, start_point.y, "Sudoku"}; - sw.run("game-files/easy.txt"); - - return 0; -} \ No newline at end of file diff --git a/templates/_folder_Projects/text-editor/README.md b/templates/_folder_Projects/text-editor/README.md deleted file mode 100644 index 82d3fac..0000000 --- a/templates/_folder_Projects/text-editor/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Text Editor - -En enkel GUI-basert teksteditor skrevet i C++ som lar brukeren laste inn og lagre tekstfiler. - -## Funksjonalitet -- Åpne og vise innholdet i en tekstfil. -- Redigere tekst i et grafisk grensesnitt. -- Lagre tekstinnhold til en spesifisert fil. -- Feilhåndtering for filoperasjoner. - -## Bruk -1. Start programmet. -2. Skriv inn filnavnet i tekstfeltet. -3. Trykk "Load text" for å laste inn en fil. -4. Rediger tekst i tekstboksen. -5. Trykk "Save text" for å lagre filen. diff --git a/templates/_folder_Projects/text-editor/TextEditor.cpp b/templates/_folder_Projects/text-editor/TextEditor.cpp deleted file mode 100644 index e4650f4..0000000 --- a/templates/_folder_Projects/text-editor/TextEditor.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "TextEditor.h" - -// Constructs and opens the text editor window -TextEditor::TextEditor(TDT4102::Point pos) : TDT4102::AnimationWindow{pos.x, pos.y, windowWidth, windowHeight, "Text Editor"}, - loadButton{loadPos, buttonWidth, buttonHeight, "Load text"}, - saveButton{savePos, buttonWidth, buttonHeight, "Save text"}, - textBox{textboxPos, textboxWidth, textboxHeight}, - fileTextBox{fileTextboxPos, fileTextboxWidth, fileTextboxHeight} -{ - // Adds GUI elements and sets callbacks - add(loadButton); - add(saveButton); - add(textBox); - add(fileTextBox); - loadButton.setCallback(std::bind(&TextEditor::cb_load, this)); - saveButton.setCallback(std::bind(&TextEditor::cb_save, this)); -} - -// Loads text from file specified in text box -void TextEditor::loadFromFile() { - storedText = ""; - filename = fileTextBox.getText(); - std::filesystem::path loadPath{filename}; - std::ifstream ifs{loadPath}; - if (!ifs) { - throw std::ios_base::failure("Could not open load file: " + filename); - } - std::string s; - while(getline(ifs, s)) { - storedText += s; - } - textBox.setText(storedText); -} - -// Saves text to file specified in text box -void TextEditor::saveToFile() { - storedText = textBox.getText(); - filename = fileTextBox.getText(); - std::filesystem::path savePath{filename}; - std::ofstream ofs{savePath}; - if (!ofs) { - throw std::ios_base::failure("Could not open save file: " + filename); - } - ofs << storedText; -} - -// Callback funtion for "Load text"-button -void TextEditor::cb_load() { - try{ - loadFromFile(); - } - catch(const std::ios_base::failure& e) { - std::cerr << "Error: " << e.what() << std::endl; - } -} - -// Callback function for "Save text"-button -void TextEditor::cb_save() { - try{ - saveToFile(); - } - catch(const std::ios_base::failure& e) { - std::cerr << "Error: " << e.what() << std::endl; - } -} \ No newline at end of file diff --git a/templates/_folder_Projects/text-editor/TextEditor.h b/templates/_folder_Projects/text-editor/TextEditor.h deleted file mode 100644 index c0cca7b..0000000 --- a/templates/_folder_Projects/text-editor/TextEditor.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once -#include -#include -#include "AnimationWindow.h" -#include "widgets/Button.h" -#include "widgets/TextInput.h" - - -class TextEditor : public TDT4102::AnimationWindow { - private: - // Constants defining GUI element sizes - static constexpr int textboxHeight = 400; - static constexpr int textboxWidth = 300; - static constexpr int padSize = 10; - static constexpr int fileTextboxHeight = 30; - static constexpr int fileTextboxWidth = textboxWidth; - static constexpr int buttonHeight = 50; - static constexpr int buttonWidth = 100; - - static constexpr int windowHeight = 3*padSize + textboxHeight + fileTextboxHeight; - static constexpr int windowWidth = 3*padSize + textboxWidth + buttonWidth; - - static constexpr TDT4102::Point loadPos = {2*padSize + textboxWidth, padSize}; - static constexpr TDT4102::Point savePos = {2*padSize + textboxWidth, 2*padSize + buttonHeight}; - static constexpr TDT4102::Point textboxPos = {padSize, padSize}; - static constexpr TDT4102::Point fileTextboxPos = {padSize, 2*padSize + textboxHeight}; - - // Buttons - TDT4102::Button loadButton; - TDT4102::Button saveButton; - - // Text inputs - TDT4102::TextInput textBox; - TDT4102::TextInput fileTextBox; - - // Variables to store filename and text - std::string filename; - std::string storedText; - - // File handling - void loadFromFile(); - void saveToFile(); - - // Callback functions - void cb_load(); - void cb_save(); - - - public: - // Constructor - TextEditor(TDT4102::Point pos); -}; \ No newline at end of file diff --git a/templates/_folder_Projects/text-editor/main.cpp b/templates/_folder_Projects/text-editor/main.cpp deleted file mode 100644 index a493387..0000000 --- a/templates/_folder_Projects/text-editor/main.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "TextEditor.h" - - -int main() { - - TextEditor te{{300, 200}}; - te.wait_for_close(); - - return 0; -} diff --git a/templates/_folder_Projects/tic-tac-toe/README.md b/templates/_folder_Projects/tic-tac-toe/README.md deleted file mode 100644 index 03fec51..0000000 --- a/templates/_folder_Projects/tic-tac-toe/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Tic Tac Toe Game - -A simple Tic Tac Toe game built using C++. - -## Documentation - -The documentation for this project is generated using [Doxygen](https://www.doxygen.nl/). The documentation can be found in the `docs` folder. Please note that the `html` folder needs to be downloaded for the Doxygen documentation to be opened properly. To view the documentation, navigate to the `docs/html` folder and open the `index.html` file in your web browser. - -## Mini Guide to Doxygen - -### Downloads -1. Download and install Doxygen from [here](https://www.doxygen.nl/download.html). - -### Create Config File -1. After downloading open a terminal or command prompt. -2. Navigate to your project directory. -3. Run the command: `doxygen -g Doxyfile` to generate a default configuration file named `Doxyfile`. - -### Generate Documentation -1. Open the `Doxyfile` in a text editor. For example, you can use the command `code Doxyfile` to open it in VS Code. -2. Set the `INPUT` field to the directories containing your source code. -3. Set the `OUTPUT_DIRECTORY` field to the desired output directory (e.g., `docs`). -4. Save the `Doxyfile`. -5. Run the command: `doxygen Doxyfile` to generate the documentation. - -The generated documentation will be available in the specified output directory. Note that it is recommended to adjust additional variables inside the `Doxyfile` to match the desired level of documentation for your project, such as `RECURSIVE`, `EXTRACT_ALL`, and `EXTRACT_PRIVATE`. - diff --git a/templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.cpp b/templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.cpp deleted file mode 100644 index 9105b3a..0000000 --- a/templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.cpp +++ /dev/null @@ -1,228 +0,0 @@ -/** - * @file TicTacToeWindow.cpp - * @brief Contains the implementation of the TicTacToeWindow class. - * - * @details This file uses the following libraries and resources: - * - TicTacToeWindow.h for class definition - * - iostream for standard input/output operations - */ - -#include "TicTacToeWindow.h" -#include - -constexpr int BUTTON_WIDTH = 100; -constexpr int BUTTON_HEIGHT = 30; -constexpr int RESET_BUTTON_X = 10; -constexpr int RESET_BUTTON_Y = 10; -constexpr int QUIT_BUTTON_X = 120; -constexpr int QUIT_BUTTON_Y = 10; -constexpr int RESULT_TEXT_X = 240; -constexpr int RESULT_TEXT_Y = 10; - -constexpr int BOARD_SIZE = 600; -constexpr int CELL_SIZE = BOARD_SIZE / 3; -constexpr int BOARD_X = 20; -constexpr int BOARD_Y = 60; -constexpr int FONT_SIZE = 100; - -/** - * @brief Constructs the TicTacToeWindow object and initializes the game. - * @param x X-coordinate of the window. - * @param y Y-coordinate of the window. - * @param width Width of the window. - * @param height Height of the window. - * @param title Title of the window. - */ -TicTacToeWindow::TicTacToeWindow(int x, int y, int width, int height, const std::string& title) - : AnimationWindow(x, y, width, height, title), current_player('X'), reset_button({RESET_BUTTON_X, RESET_BUTTON_Y}, BUTTON_WIDTH, BUTTON_HEIGHT, "Reset"), quit_button({QUIT_BUTTON_X, QUIT_BUTTON_Y}, BUTTON_WIDTH, BUTTON_HEIGHT, "Quit"), game_over(false) { - reset_game(); - add(reset_button); - add(quit_button); - reset_button.setCallback(std::bind(&TicTacToeWindow::cb_reset, this)); - quit_button.setCallback(std::bind(&TicTacToeWindow::cb_quit, this)); -} - -/** - * @brief Starts the game loop. - */ -void TicTacToeWindow::play() { - while (!should_close()) { - if (is_left_mouse_button_down() && !game_over) { - auto [x, y] = get_mouse_coordinates(); - if (x >= RESET_BUTTON_X && x <= RESET_BUTTON_X + BUTTON_WIDTH && y >= RESET_BUTTON_Y && y <= RESET_BUTTON_Y + BUTTON_HEIGHT) { - cb_reset(); - } else if (x >= QUIT_BUTTON_X && x <= QUIT_BUTTON_X + BUTTON_WIDTH && y >= QUIT_BUTTON_Y && y <= QUIT_BUTTON_Y + BUTTON_HEIGHT) { - cb_quit(); - } else { - try { - handle_click(x, y); - } catch (const std::out_of_range& e) { - std::cerr << "Error: " << e.what() << std::endl; - } - } - } - - if (check_winner()) { - result_text = "Player " + std::string(1, last_player) + " wins!"; - draw_winning_line(); - if (!game_over) { - write_result_to_file(result_text); - } - game_over = true; - } else if (check_draw()) { - result_text = "The game is a draw!"; - if (!game_over) { - write_result_to_file(result_text); - } - game_over = true; - } - - draw_board(); - draw_marks(); - draw_text({RESULT_TEXT_X, RESULT_TEXT_Y}, result_text, TDT4102::Color::black, 30); - - next_frame(); - } -} - -/** - * @brief Draws the Tic Tac Toe board grid. - */ -void TicTacToeWindow::draw_board() { - for (int i = 1; i < 3; ++i) { - draw_line({BOARD_X + i * CELL_SIZE, BOARD_Y}, {BOARD_X + i * CELL_SIZE, BOARD_Y + BOARD_SIZE}, TDT4102::Color::black); - draw_line({BOARD_X, BOARD_Y + i * CELL_SIZE}, {BOARD_X + BOARD_SIZE, BOARD_Y + i * CELL_SIZE}, TDT4102::Color::black); - } -} - -/** - * @brief Draws the marks (X and O) on the board. - */ -void TicTacToeWindow::draw_marks() { - for (int row = 0; row < 3; ++row) { - for (int col = 0; col < 3; ++col) { - if (board[row][col] == 'X') { - draw_text({BOARD_X * 3 / 2 + col * CELL_SIZE + FONT_SIZE / 2, BOARD_Y + row * CELL_SIZE + FONT_SIZE / 2}, "X", TDT4102::Color::red, FONT_SIZE); - } else if (board[row][col] == 'O') { - draw_text({BOARD_X * 3 / 2 + col * CELL_SIZE + FONT_SIZE / 2, BOARD_Y + row * CELL_SIZE + FONT_SIZE / 2}, "O", TDT4102::Color::blue, FONT_SIZE); - } - } - } -} - -/** - * @brief Draws the line indicating the winning combination on the board. - */ -void TicTacToeWindow::draw_winning_line() { - draw_line(winning_line.first, winning_line.second, TDT4102::Color::yellow); -} - -/** - * @brief Handles mouse click events and updates the board with marks. - * @param x X-coordinate of the mouse click. - * @param y Y-coordinate of the mouse click. - * @throws std::out_of_range if the clicked position is outside the board. - */ -void TicTacToeWindow::handle_click(int x, int y) { - int row = (y - BOARD_Y) / CELL_SIZE; - int col = (x - BOARD_X) / CELL_SIZE; - - if (row < 0 || row >= 3 || col < 0 || col >= 3) { - throw std::out_of_range("Invalid board position"); - } - - if (board[row][col] == ' ') { - board[row][col] = current_player; - last_player = current_player; - current_player = (current_player == 'X') ? 'O' : 'X'; - } -} - -/** - * @brief Checks if there is a winner in the game. - * @return true if there is a winner, false otherwise. - */ -bool TicTacToeWindow::check_winner() { - // Check rows and columns - for (int i = 0; i < 3; ++i) { - if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != ' ') { - winning_line = {{BOARD_X, BOARD_Y + i * CELL_SIZE + CELL_SIZE / 2}, {BOARD_X + BOARD_SIZE, BOARD_Y + i * CELL_SIZE + CELL_SIZE / 2}}; - return true; - } - if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ' ') { - winning_line = {{BOARD_X + i * CELL_SIZE + CELL_SIZE / 2, BOARD_Y}, {BOARD_X + i * CELL_SIZE + CELL_SIZE / 2, BOARD_Y + BOARD_SIZE}}; - return true; - } - } - - // Check diagonals - if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != ' ') { - winning_line = {{BOARD_X, BOARD_Y}, {BOARD_X + BOARD_SIZE, BOARD_Y + BOARD_SIZE}}; - return true; - } - if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[0][2] != ' ') { - winning_line = {{BOARD_X + BOARD_SIZE, BOARD_Y}, {BOARD_X, BOARD_Y + BOARD_SIZE}}; - return true; - } - - return false; -} - -/** - * @brief Checks if the game has ended in a draw. - * @return true if the game is a draw, false otherwise. - */ -bool TicTacToeWindow::check_draw() { - for (const auto& row : board) { - for (char cell : row) { - if (cell == ' ') { - return false; - } - } - } - return true; -} - -/** - * @brief Resets the game to its initial state. - */ -void TicTacToeWindow::reset_game() { - std::cout << "Resetting game..." << std::endl; - board = std::vector>(3, std::vector(3, ' ')); - current_player = 'X'; - game_over = false; - result_text.clear(); - std::cout << "Game reset complete." << std::endl; -} - -/** - * @brief Writes the game result to a file. - * @param result The result string to write. - */ -void TicTacToeWindow::write_result_to_file(const std::string& result) { - try { - std::ofstream file("game_results.txt", std::ios::app); - if (!file) { - throw std::ios_base::failure("Failed to open file"); - } - file << result << std::endl; - } catch (const std::ios_base::failure& e) { - show_error_dialog("Error writing to file: " + std::string(e.what())); - } -} - -/** - * @brief Callback function for the reset button. - */ -void TicTacToeWindow::cb_reset() { - std::cout << "Reset button pressed." << std::endl; - reset_game(); -} - -/** - * @brief Callback function for the quit button. - */ -void TicTacToeWindow::cb_quit() { - std::cout << "Quit button pressed." << std::endl; - close(); -} diff --git a/templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.h b/templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.h deleted file mode 100644 index 8c2e092..0000000 --- a/templates/_folder_Projects/tic-tac-toe/TicTacToeWindow.h +++ /dev/null @@ -1,106 +0,0 @@ -/** - * @file TicTacToeWindow.h - * @brief Defines the TicTacToeWindow class for handling game logic and UI. - * - * @details This file uses the following libraries and resources: - * - AnimationWindow from TDT4102 - * - Button widget from TDT4102 - * - Standard C++ libraries: vector, fstream, stdexcept - */ - -#pragma once - -#include "AnimationWindow.h" -#include "widgets/Button.h" -#include -#include -#include - -using namespace TDT4102; - -/** - * @class TicTacToeWindow - * @brief Handles the Tic Tac Toe game logic and user interface. - */ -class TicTacToeWindow : public TDT4102::AnimationWindow { -public: - /** - * @brief Constructs a TicTacToeWindow object. - * @param x X-coordinate of the window. - * @param y Y-coordinate of the window. - * @param width Width of the window. - * @param height Height of the window. - * @param title Title of the window. - */ - TicTacToeWindow(int x, int y, int width, int height, const std::string& title); - - /** - * @brief Starts the game loop. - */ - void play(); - -private: - /** - * @brief Draws the Tic Tac Toe board. - */ - void draw_board(); - - /** - * @brief Draws the marks (X and O) on the board. - */ - void draw_marks(); - - /** - * @brief Draws a line to indicate the winning combination. - */ - void draw_winning_line(); - - /** - * @brief Handles mouse click events to place marks. - * @param x X-coordinate of the click. - * @param y Y-coordinate of the click. - */ - void handle_click(int x, int y); - - /** - * @brief Checks if there is a winner. - * @return true if a player has won, false otherwise. - */ - bool check_winner(); - - /** - * @brief Checks if the game is a draw. - * @return true if the game is a draw, false otherwise. - */ - bool check_draw(); - - /** - * @brief Resets the game to its initial state. - */ - void reset_game(); - - /** - * @brief Writes the game result to a file. - * @param result The result string to write. - */ - void write_result_to_file(const std::string& result); - - /** - * @brief Callback function for the reset button. - */ - void cb_reset(); - - /** - * @brief Callback function for the quit button. - */ - void cb_quit(); - - std::vector> board; ///< 3x3 board representation. - char current_player; ///< Current player ('X' or 'O'). - char last_player; ///< Last player to have made a move. - Button reset_button; ///< Button to reset the game. - Button quit_button; ///< Button to quit the game. - bool game_over; ///< Flag indicating if the game is over. - std::string result_text; ///< Text indicating the winner. - std::pair winning_line; ///< Coordinates for the winning line. -}; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.html b/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.html deleted file mode 100644 index 505c1d9..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.html +++ /dev/null @@ -1,448 +0,0 @@ - - - - - - - -My Project: TicTacToeWindow.cpp File Reference - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
TicTacToeWindow.cpp File Reference
-
-
- -

Contains the implementation of the TicTacToeWindow class. -More...

-
#include "TicTacToeWindow.h"
-#include <iostream>
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Variables

constexpr int BUTTON_WIDTH = 100
 
constexpr int BUTTON_HEIGHT = 30
 
constexpr int RESET_BUTTON_X = 10
 
constexpr int RESET_BUTTON_Y = 10
 
constexpr int QUIT_BUTTON_X = 120
 
constexpr int QUIT_BUTTON_Y = 10
 
constexpr int RESULT_TEXT_X = 240
 
constexpr int RESULT_TEXT_Y = 10
 
constexpr int BOARD_SIZE = 600
 
constexpr int CELL_SIZE = BOARD_SIZE / 3
 
constexpr int BOARD_X = 20
 
constexpr int BOARD_Y = 60
 
constexpr int FONT_SIZE = 100
 
-

Detailed Description

-

Contains the implementation of the TicTacToeWindow class.

-

This file uses the following libraries and resources:

    -
  • TicTacToeWindow.h for class definition
  • -
  • iostream for standard input/output operations
  • -
-

Variable Documentation

- -

◆ BOARD_SIZE

- -
-
- - - - - -
- - - - -
int BOARD_SIZE = 600
-
-constexpr
-
- -
-
- -

◆ BOARD_X

- -
-
- - - - - -
- - - - -
int BOARD_X = 20
-
-constexpr
-
- -
-
- -

◆ BOARD_Y

- -
-
- - - - - -
- - - - -
int BOARD_Y = 60
-
-constexpr
-
- -
-
- -

◆ BUTTON_HEIGHT

- -
-
- - - - - -
- - - - -
int BUTTON_HEIGHT = 30
-
-constexpr
-
- -
-
- -

◆ BUTTON_WIDTH

- -
-
- - - - - -
- - - - -
int BUTTON_WIDTH = 100
-
-constexpr
-
- -
-
- -

◆ CELL_SIZE

- -
-
- - - - - -
- - - - -
int CELL_SIZE = BOARD_SIZE / 3
-
-constexpr
-
- -
-
- -

◆ FONT_SIZE

- -
-
- - - - - -
- - - - -
int FONT_SIZE = 100
-
-constexpr
-
- -
-
- -

◆ QUIT_BUTTON_X

- -
-
- - - - - -
- - - - -
int QUIT_BUTTON_X = 120
-
-constexpr
-
- -
-
- -

◆ QUIT_BUTTON_Y

- -
-
- - - - - -
- - - - -
int QUIT_BUTTON_Y = 10
-
-constexpr
-
- -
-
- -

◆ RESET_BUTTON_X

- -
-
- - - - - -
- - - - -
int RESET_BUTTON_X = 10
-
-constexpr
-
- -
-
- -

◆ RESET_BUTTON_Y

- -
-
- - - - - -
- - - - -
int RESET_BUTTON_Y = 10
-
-constexpr
-
- -
-
- -

◆ RESULT_TEXT_X

- -
-
- - - - - -
- - - - -
int RESULT_TEXT_X = 240
-
-constexpr
-
- -
-
- -

◆ RESULT_TEXT_Y

- -
-
- - - - - -
- - - - -
int RESULT_TEXT_Y = 10
-
-constexpr
-
- -
-
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.js b/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.js deleted file mode 100644 index 2a6ec32..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8cpp.js +++ /dev/null @@ -1,16 +0,0 @@ -var _tic_tac_toe_window_8cpp = -[ - [ "BOARD_SIZE", "_tic_tac_toe_window_8cpp.html#ad61312467c560853b884baba85ccb6cc", null ], - [ "BOARD_X", "_tic_tac_toe_window_8cpp.html#a734171bf86d25d8fea97ec3db770f339", null ], - [ "BOARD_Y", "_tic_tac_toe_window_8cpp.html#a7a25c54899aa5eb9067fa355bd0fd2f0", null ], - [ "BUTTON_HEIGHT", "_tic_tac_toe_window_8cpp.html#a3b3ba52cbf88acec5e16bc4637e77007", null ], - [ "BUTTON_WIDTH", "_tic_tac_toe_window_8cpp.html#a5abca8d83548cc8db6c91b204fc0fc3e", null ], - [ "CELL_SIZE", "_tic_tac_toe_window_8cpp.html#afb719a6797676ba986f056e63fa45a25", null ], - [ "FONT_SIZE", "_tic_tac_toe_window_8cpp.html#a36f8b4b0227f9dac9b5018b20c9a1f51", null ], - [ "QUIT_BUTTON_X", "_tic_tac_toe_window_8cpp.html#a907d240438ef5a233d89f060d2ab7ce6", null ], - [ "QUIT_BUTTON_Y", "_tic_tac_toe_window_8cpp.html#a7c67ea62ace270bfbc30fa241530f5f9", null ], - [ "RESET_BUTTON_X", "_tic_tac_toe_window_8cpp.html#a46907144aa852e2450a4784f7bd67702", null ], - [ "RESET_BUTTON_Y", "_tic_tac_toe_window_8cpp.html#a65f9c1ca2be2ebd241cba5b02ae39514", null ], - [ "RESULT_TEXT_X", "_tic_tac_toe_window_8cpp.html#ae32dfc3a976f735ff01c1757ba107610", null ], - [ "RESULT_TEXT_Y", "_tic_tac_toe_window_8cpp.html#aba7c1f86d23ea3fad3d8099789a51311", null ] -]; \ No newline at end of file diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.html b/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.html deleted file mode 100644 index 26ac491..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -My Project: TicTacToeWindow.h File Reference - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
TicTacToeWindow.h File Reference
-
-
- -

Defines the TicTacToeWindow class for handling game logic and UI. -More...

-
#include "AnimationWindow.h"
-#include "widgets/Button.h"
-#include <vector>
-#include <fstream>
-#include <stdexcept>
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  TicTacToeWindow
 Handles the Tic Tac Toe game logic and user interface. More...
 
-

Detailed Description

-

Defines the TicTacToeWindow class for handling game logic and UI.

-

This file uses the following libraries and resources:

    -
  • AnimationWindow from TDT4102
  • -
  • Button widget from TDT4102
  • -
  • Standard C++ libraries: vector, fstream, stdexcept
  • -
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.js b/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.js deleted file mode 100644 index 5dfe35c..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h.js +++ /dev/null @@ -1,4 +0,0 @@ -var _tic_tac_toe_window_8h = -[ - [ "TicTacToeWindow", "class_tic_tac_toe_window.html", "class_tic_tac_toe_window" ] -]; \ No newline at end of file diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h_source.html b/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h_source.html deleted file mode 100644 index 4c51852..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/_tic_tac_toe_window_8h_source.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - -My Project: TicTacToeWindow.h Source File - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
TicTacToeWindow.h
-
-
-Go to the documentation of this file.
1
-
10
-
11#pragma once
-
12
-
13#include "AnimationWindow.h"
-
14#include "widgets/Button.h"
-
15#include <vector>
-
16#include <fstream>
-
17#include <stdexcept>
-
18
-
19using namespace TDT4102;
-
20
-
-
25class TicTacToeWindow : public TDT4102::AnimationWindow {
-
26public:
-
35 TicTacToeWindow(int x, int y, int width, int height, const std::string& title);
-
36
-
40 void play();
-
41
-
42private:
-
46 void draw_board();
-
47
-
51 void draw_marks();
-
52
-
56 void draw_winning_line();
-
57
-
63 void handle_click(int x, int y);
-
64
-
69 bool check_winner();
-
70
-
75 bool check_draw();
-
76
-
80 void reset_game();
-
81
-
86 void write_result_to_file(const std::string& result);
-
87
-
91 void cb_reset();
-
92
-
96 void cb_quit();
-
97
-
98 std::vector<std::vector<char>> board;
- - - -
102 Button quit_button;
- -
104 std::string result_text;
-
105 std::pair<Point, Point> winning_line;
-
106};
-
-
void play()
Starts the game loop.
Definition TicTacToeWindow.cpp:48
-
std::pair< Point, Point > winning_line
Coordinates for the winning line.
Definition TicTacToeWindow.h:105
-
void reset_game()
Resets the game to its initial state.
Definition TicTacToeWindow.cpp:189
-
TicTacToeWindow(int x, int y, int width, int height, const std::string &title)
Constructs a TicTacToeWindow object.
Definition TicTacToeWindow.cpp:36
-
bool check_draw()
Checks if the game is a draw.
Definition TicTacToeWindow.cpp:175
-
bool game_over
Flag indicating if the game is over.
Definition TicTacToeWindow.h:103
-
void cb_reset()
Callback function for the reset button.
Definition TicTacToeWindow.cpp:217
-
void handle_click(int x, int y)
Handles mouse click events to place marks.
Definition TicTacToeWindow.cpp:126
-
void draw_marks()
Draws the marks (X and O) on the board.
Definition TicTacToeWindow.cpp:101
-
void write_result_to_file(const std::string &result)
Writes the game result to a file.
Definition TicTacToeWindow.cpp:202
-
std::string result_text
Text indicating the winner.
Definition TicTacToeWindow.h:104
-
Button reset_button
Button to reset the game.
Definition TicTacToeWindow.h:101
-
std::vector< std::vector< char > > board
3x3 board representation.
Definition TicTacToeWindow.h:98
-
Button quit_button
Button to quit the game.
Definition TicTacToeWindow.h:102
-
void draw_winning_line()
Draws a line to indicate the winning combination.
Definition TicTacToeWindow.cpp:116
-
char current_player
Current player ('X' or 'O').
Definition TicTacToeWindow.h:99
-
void draw_board()
Draws the Tic Tac Toe board.
Definition TicTacToeWindow.cpp:91
-
void cb_quit()
Callback function for the quit button.
Definition TicTacToeWindow.cpp:225
-
bool check_winner()
Checks if there is a winner.
Definition TicTacToeWindow.cpp:145
-
char last_player
Last player to have made a move.
Definition TicTacToeWindow.h:100
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/annotated.html b/templates/_folder_Projects/tic-tac-toe/docs/html/annotated.html deleted file mode 100644 index 35de5ae..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/annotated.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: Class List - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
- - -
 CTicTacToeWindowHandles the Tic Tac Toe game logic and user interface
-
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/annotated_dup.js b/templates/_folder_Projects/tic-tac-toe/docs/html/annotated_dup.js deleted file mode 100644 index ae5296c..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/annotated_dup.js +++ /dev/null @@ -1,4 +0,0 @@ -var annotated_dup = -[ - [ "TicTacToeWindow", "class_tic_tac_toe_window.html", "class_tic_tac_toe_window" ] -]; \ No newline at end of file diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/bc_s.png b/templates/_folder_Projects/tic-tac-toe/docs/html/bc_s.png deleted file mode 100644 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/bc_sd.png b/templates/_folder_Projects/tic-tac-toe/docs/html/bc_sd.png deleted file mode 100644 index 31ca888dc71049713b35c351933a8d0f36180bf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window-members.html b/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window-members.html deleted file mode 100644 index 357f22e..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window-members.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
TicTacToeWindow Member List
-
-
- -

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

- - - - - - - - - - - - - - - - - - - - - -
boardTicTacToeWindowprivate
cb_quit()TicTacToeWindowprivate
cb_reset()TicTacToeWindowprivate
check_draw()TicTacToeWindowprivate
check_winner()TicTacToeWindowprivate
current_playerTicTacToeWindowprivate
draw_board()TicTacToeWindowprivate
draw_marks()TicTacToeWindowprivate
draw_winning_line()TicTacToeWindowprivate
game_overTicTacToeWindowprivate
handle_click(int x, int y)TicTacToeWindowprivate
last_playerTicTacToeWindowprivate
play()TicTacToeWindow
quit_buttonTicTacToeWindowprivate
reset_buttonTicTacToeWindowprivate
reset_game()TicTacToeWindowprivate
result_textTicTacToeWindowprivate
TicTacToeWindow(int x, int y, int width, int height, const std::string &title)TicTacToeWindow
winning_lineTicTacToeWindowprivate
write_result_to_file(const std::string &result)TicTacToeWindowprivate
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.html b/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.html deleted file mode 100644 index 207ef00..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.html +++ /dev/null @@ -1,777 +0,0 @@ - - - - - - - -My Project: TicTacToeWindow Class Reference - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -

Handles the Tic Tac Toe game logic and user interface. - More...

- -

#include <TicTacToeWindow.h>

-
-Inheritance diagram for TicTacToeWindow:
-
-
- -
- - - - - - - - -

-Public Member Functions

 TicTacToeWindow (int x, int y, int width, int height, const std::string &title)
 Constructs a TicTacToeWindow object.
 
void play ()
 Starts the game loop.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Private Member Functions

void draw_board ()
 Draws the Tic Tac Toe board.
 
void draw_marks ()
 Draws the marks (X and O) on the board.
 
void draw_winning_line ()
 Draws a line to indicate the winning combination.
 
void handle_click (int x, int y)
 Handles mouse click events to place marks.
 
bool check_winner ()
 Checks if there is a winner.
 
bool check_draw ()
 Checks if the game is a draw.
 
void reset_game ()
 Resets the game to its initial state.
 
void write_result_to_file (const std::string &result)
 Writes the game result to a file.
 
void cb_reset ()
 Callback function for the reset button.
 
void cb_quit ()
 Callback function for the quit button.
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Private Attributes

std::vector< std::vector< char > > board
 3x3 board representation.
 
char current_player
 Current player ('X' or 'O').
 
char last_player
 Last player to have made a move.
 
Button reset_button
 Button to reset the game.
 
Button quit_button
 Button to quit the game.
 
bool game_over
 Flag indicating if the game is over.
 
std::string result_text
 Text indicating the winner.
 
std::pair< Point, Point > winning_line
 Coordinates for the winning line.
 
-

Detailed Description

-

Handles the Tic Tac Toe game logic and user interface.

-

Constructor & Destructor Documentation

- -

◆ TicTacToeWindow()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
TicTacToeWindow::TicTacToeWindow (int x,
int y,
int width,
int height,
const std::string & title )
-
- -

Constructs a TicTacToeWindow object.

-

Constructs the TicTacToeWindow object and initializes the game.

-
Parameters
- - - - - - -
xX-coordinate of the window.
yY-coordinate of the window.
widthWidth of the window.
heightHeight of the window.
titleTitle of the window.
-
-
- -
-
-

Member Function Documentation

- -

◆ cb_quit()

- -
-
- - - - - -
- - - - - - - -
void TicTacToeWindow::cb_quit ()
-
-private
-
- -

Callback function for the quit button.

- -
-
- -

◆ cb_reset()

- -
-
- - - - - -
- - - - - - - -
void TicTacToeWindow::cb_reset ()
-
-private
-
- -

Callback function for the reset button.

- -
-
- -

◆ check_draw()

- -
-
- - - - - -
- - - - - - - -
bool TicTacToeWindow::check_draw ()
-
-private
-
- -

Checks if the game is a draw.

-

Checks if the game has ended in a draw.

-
Returns
true if the game is a draw, false otherwise.
- -
-
- -

◆ check_winner()

- -
-
- - - - - -
- - - - - - - -
bool TicTacToeWindow::check_winner ()
-
-private
-
- -

Checks if there is a winner.

-

Checks if there is a winner in the game.

-
Returns
true if a player has won, false otherwise.
-
-true if there is a winner, false otherwise.
- -
-
- -

◆ draw_board()

- -
-
- - - - - -
- - - - - - - -
void TicTacToeWindow::draw_board ()
-
-private
-
- -

Draws the Tic Tac Toe board.

-

Draws the Tic Tac Toe board grid.

- -
-
- -

◆ draw_marks()

- -
-
- - - - - -
- - - - - - - -
void TicTacToeWindow::draw_marks ()
-
-private
-
- -

Draws the marks (X and O) on the board.

- -
-
- -

◆ draw_winning_line()

- -
-
- - - - - -
- - - - - - - -
void TicTacToeWindow::draw_winning_line ()
-
-private
-
- -

Draws a line to indicate the winning combination.

-

Draws the line indicating the winning combination on the board.

- -
-
- -

◆ handle_click()

- -
-
- - - - - -
- - - - - - - - - - - -
void TicTacToeWindow::handle_click (int x,
int y )
-
-private
-
- -

Handles mouse click events to place marks.

-

Handles mouse click events and updates the board with marks.

-
Parameters
- - - - - -
xX-coordinate of the click.
yY-coordinate of the click.
xX-coordinate of the mouse click.
yY-coordinate of the mouse click.
-
-
-
Exceptions
- - -
std::out_of_rangeif the clicked position is outside the board.
-
-
- -
-
- -

◆ play()

- -
-
- - - - - - - -
void TicTacToeWindow::play ()
-
- -

Starts the game loop.

- -
-
- -

◆ reset_game()

- -
-
- - - - - -
- - - - - - - -
void TicTacToeWindow::reset_game ()
-
-private
-
- -

Resets the game to its initial state.

- -
-
- -

◆ write_result_to_file()

- -
-
- - - - - -
- - - - - - - -
void TicTacToeWindow::write_result_to_file (const std::string & result)
-
-private
-
- -

Writes the game result to a file.

-
Parameters
- - -
resultThe result string to write.
-
-
- -
-
-

Member Data Documentation

- -

◆ board

- -
-
- - - - - -
- - - - -
std::vector<std::vector<char> > TicTacToeWindow::board
-
-private
-
- -

3x3 board representation.

- -
-
- -

◆ current_player

- -
-
- - - - - -
- - - - -
char TicTacToeWindow::current_player
-
-private
-
- -

Current player ('X' or 'O').

- -
-
- -

◆ game_over

- -
-
- - - - - -
- - - - -
bool TicTacToeWindow::game_over
-
-private
-
- -

Flag indicating if the game is over.

- -
-
- -

◆ last_player

- -
-
- - - - - -
- - - - -
char TicTacToeWindow::last_player
-
-private
-
- -

Last player to have made a move.

- -
-
- -

◆ quit_button

- -
-
- - - - - -
- - - - -
Button TicTacToeWindow::quit_button
-
-private
-
- -

Button to quit the game.

- -
-
- -

◆ reset_button

- -
-
- - - - - -
- - - - -
Button TicTacToeWindow::reset_button
-
-private
-
- -

Button to reset the game.

- -
-
- -

◆ result_text

- -
-
- - - - - -
- - - - -
std::string TicTacToeWindow::result_text
-
-private
-
- -

Text indicating the winner.

- -
-
- -

◆ winning_line

- -
-
- - - - - -
- - - - -
std::pair<Point, Point> TicTacToeWindow::winning_line
-
-private
-
- -

Coordinates for the winning line.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.js b/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.js deleted file mode 100644 index e687632..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.js +++ /dev/null @@ -1,23 +0,0 @@ -var class_tic_tac_toe_window = -[ - [ "TicTacToeWindow", "class_tic_tac_toe_window.html#a2fa1df2b5d6d7f69eef48cd28d588562", null ], - [ "cb_quit", "class_tic_tac_toe_window.html#af06d97a6bc5af57d20496efef4b42205", null ], - [ "cb_reset", "class_tic_tac_toe_window.html#a721a06d7b66e4891e1c4e4714828e9e4", null ], - [ "check_draw", "class_tic_tac_toe_window.html#a3ecf87bb2c63d9173859ffc791dba65a", null ], - [ "check_winner", "class_tic_tac_toe_window.html#af31e8259796b4c713695f76a2e9ebbb4", null ], - [ "draw_board", "class_tic_tac_toe_window.html#aea9364e6964b4d713db301e1dca05870", null ], - [ "draw_marks", "class_tic_tac_toe_window.html#a80d700fab549c892da6454ddf134e73f", null ], - [ "draw_winning_line", "class_tic_tac_toe_window.html#ad6b36f228408151798ccf6f93ae6bb9c", null ], - [ "handle_click", "class_tic_tac_toe_window.html#a7e59cd0a04b03284ce8a95ae104a40a0", null ], - [ "play", "class_tic_tac_toe_window.html#a02a67ddb17bb56a4e34ce07b75d4c4c8", null ], - [ "reset_game", "class_tic_tac_toe_window.html#a256a8423cb3c6e7b6e3ca6251866867d", null ], - [ "write_result_to_file", "class_tic_tac_toe_window.html#a87e9e26b5d34f5bd3cadee4e2778df3e", null ], - [ "board", "class_tic_tac_toe_window.html#ac5767923f6cfdd1cdc0e38646817c0ec", null ], - [ "current_player", "class_tic_tac_toe_window.html#ae1d2eddf2ec46d88ec2850088bf83801", null ], - [ "game_over", "class_tic_tac_toe_window.html#a43bc194a5b454fdd4e586b29862ead48", null ], - [ "last_player", "class_tic_tac_toe_window.html#afacdc2b25347aec3b74b3a0a89cf121b", null ], - [ "quit_button", "class_tic_tac_toe_window.html#ac85e0fda6ce6f20bfad83a38cf7d6b40", null ], - [ "reset_button", "class_tic_tac_toe_window.html#aa984f2d95bc444451acfb242a0cd3644", null ], - [ "result_text", "class_tic_tac_toe_window.html#a98f8a4942b7eb70471c720297c492925", null ], - [ "winning_line", "class_tic_tac_toe_window.html#a0fde7a5bc88317c24139a2a997f49b0e", null ] -]; \ No newline at end of file diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.png b/templates/_folder_Projects/tic-tac-toe/docs/html/class_tic_tac_toe_window.png deleted file mode 100644 index 9908752a5abfd2f156b1dfca91a470892502e00f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)U~c0000RP)t-s|Ns90 z008Lh^>vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0006D zNklp&qoY&n!R9)w_V!t?4uIUE+HV+NW@Sv1jA)50SW+~3Qz#>RDc42rvelJ zJQbh-;Hdxw08a%d0C*}u0l-rM3ILu8Pyp~$fC7N0{%ue*vmFGJr0-XNN|L7nRFXXP z95gqb>b_!-bdIUtw?ONOC;1a&Axu+Uors?U?JIXNUO>~Q;~l5V4VI))zX46%GY8F`^%bCFJ1>pH z%^9Z>iX^S|;XAqj9oy&?hF^AlD)Y~O1!J6T*ZYD>(*Lahl_XCEs3dtRKqbjjJAs;+ aZJ<9^mdfZ`xz-5)0000 - - - - - - -My Project: Class Index - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Class Index
-
-
- - -
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/clipboard.js b/templates/_folder_Projects/tic-tac-toe/docs/html/clipboard.js deleted file mode 100644 index 9da9f3c..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/clipboard.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - -The code below is based on the Doxygen Awesome project, see -https://github.com/jothepro/doxygen-awesome-css - -MIT License - -Copyright (c) 2021 - 2022 jothepro - -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. - -*/ - -let clipboard_title = "Copy to clipboard" -let clipboard_icon = `` -let clipboard_successIcon = `` -let clipboard_successDuration = 1000 - -$(function() { - if(navigator.clipboard) { - const fragments = document.getElementsByClassName("fragment") - for(const fragment of fragments) { - const clipboard_div = document.createElement("div") - clipboard_div.classList.add("clipboard") - clipboard_div.innerHTML = clipboard_icon - clipboard_div.title = clipboard_title - $(clipboard_div).click(function() { - const content = this.parentNode.cloneNode(true) - // filter out line number and folded fragments from file listings - content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) - let text = content.textContent - // remove trailing newlines and trailing spaces from empty lines - text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') - navigator.clipboard.writeText(text); - this.classList.add("success") - this.innerHTML = clipboard_successIcon - window.setTimeout(() => { // switch back to normal icon after timeout - this.classList.remove("success") - this.innerHTML = clipboard_icon - }, clipboard_successDuration); - }) - fragment.insertBefore(clipboard_div, fragment.firstChild) - } - } -}) diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/closed.png b/templates/_folder_Projects/tic-tac-toe/docs/html/closed.png deleted file mode 100644 index 98cc2c909da37a6df914fbf67780eebd99c597f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/cookie.js b/templates/_folder_Projects/tic-tac-toe/docs/html/cookie.js deleted file mode 100644 index 53ad21d..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/cookie.js +++ /dev/null @@ -1,58 +0,0 @@ -/*! - Cookie helper functions - Copyright (c) 2023 Dimitri van Heesch - Released under MIT license. -*/ -let Cookie = { - cookie_namespace: 'doxygen_', - - readSetting(cookie,defVal) { - if (window.chrome) { - const val = localStorage.getItem(this.cookie_namespace+cookie) || - sessionStorage.getItem(this.cookie_namespace+cookie); - if (val) return val; - } else { - let myCookie = this.cookie_namespace+cookie+"="; - if (document.cookie) { - const index = document.cookie.indexOf(myCookie); - if (index != -1) { - const valStart = index + myCookie.length; - let valEnd = document.cookie.indexOf(";", valStart); - if (valEnd == -1) { - valEnd = document.cookie.length; - } - return document.cookie.substring(valStart, valEnd); - } - } - } - return defVal; - }, - - writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete - if (window.chrome) { - if (days==0) { - sessionStorage.setItem(this.cookie_namespace+cookie,val); - } else { - localStorage.setItem(this.cookie_namespace+cookie,val); - } - } else { - let date = new Date(); - date.setTime(date.getTime()+(days*24*60*60*1000)); - const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; - document.cookie = this.cookie_namespace + cookie + "=" + - val + "; SameSite=Lax;" + expiration + "path=/"; - } - }, - - eraseSetting(cookie) { - if (window.chrome) { - if (localStorage.getItem(this.cookie_namespace+cookie)) { - localStorage.removeItem(this.cookie_namespace+cookie); - } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { - sessionStorage.removeItem(this.cookie_namespace+cookie); - } - } else { - this.writeSetting(cookie,'',-1); - } - }, -} diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/doc.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/doc.svg deleted file mode 100644 index 0b928a5..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/doc.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/docd.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/docd.svg deleted file mode 100644 index ac18b27..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/docd.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.css b/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.css deleted file mode 100644 index 4947e24..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.css +++ /dev/null @@ -1,2255 +0,0 @@ -/* The standard CSS for doxygen 1.13.2*/ - -html { -/* page base colors */ ---page-background-color: white; ---page-foreground-color: black; ---page-link-color: #3D578C; ---page-visited-link-color: #4665A2; - -/* index */ ---index-odd-item-bg-color: #F8F9FC; ---index-even-item-bg-color: white; ---index-header-color: black; ---index-separator-color: #A0A0A0; - -/* header */ ---header-background-color: #F9FAFC; ---header-separator-color: #C4CFE5; ---header-gradient-image: url('nav_h.png'); ---group-header-separator-color: #879ECB; ---group-header-color: #354C7B; ---inherit-header-color: gray; - ---footer-foreground-color: #2A3D61; ---footer-logo-width: 104px; ---citation-label-color: #334975; ---glow-color: cyan; - ---title-background-color: white; ---title-separator-color: #5373B4; ---directory-separator-color: #9CAFD4; ---separator-color: #4A6AAA; - ---blockquote-background-color: #F7F8FB; ---blockquote-border-color: #9CAFD4; - ---scrollbar-thumb-color: #9CAFD4; ---scrollbar-background-color: #F9FAFC; - ---icon-background-color: #728DC1; ---icon-foreground-color: white; ---icon-doc-image: url('doc.svg'); ---icon-folder-open-image: url('folderopen.svg'); ---icon-folder-closed-image: url('folderclosed.svg'); - -/* brief member declaration list */ ---memdecl-background-color: #F9FAFC; ---memdecl-separator-color: #DEE4F0; ---memdecl-foreground-color: #555; ---memdecl-template-color: #4665A2; - -/* detailed member list */ ---memdef-border-color: #A8B8D9; ---memdef-title-background-color: #E2E8F2; ---memdef-title-gradient-image: url('nav_f.png'); ---memdef-proto-background-color: #DFE5F1; ---memdef-proto-text-color: #253555; ---memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); ---memdef-doc-background-color: white; ---memdef-param-name-color: #602020; ---memdef-template-color: #4665A2; - -/* tables */ ---table-cell-border-color: #2D4068; ---table-header-background-color: #374F7F; ---table-header-foreground-color: #FFFFFF; - -/* labels */ ---label-background-color: #728DC1; ---label-left-top-border-color: #5373B4; ---label-right-bottom-border-color: #C4CFE5; ---label-foreground-color: white; - -/** navigation bar/tree/menu */ ---nav-background-color: #F9FAFC; ---nav-foreground-color: #364D7C; ---nav-gradient-image: url('tab_b.png'); ---nav-gradient-hover-image: url('tab_h.png'); ---nav-gradient-active-image: url('tab_a.png'); ---nav-gradient-active-image-parent: url("../tab_a.png"); ---nav-separator-image: url('tab_s.png'); ---nav-breadcrumb-image: url('bc_s.png'); ---nav-breadcrumb-border-color: #C2CDE4; ---nav-splitbar-image: url('splitbar.png'); ---nav-font-size-level1: 13px; ---nav-font-size-level2: 10px; ---nav-font-size-level3: 9px; ---nav-text-normal-color: #283A5D; ---nav-text-hover-color: white; ---nav-text-active-color: white; ---nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); ---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-menu-button-color: #364D7C; ---nav-menu-background-color: white; ---nav-menu-foreground-color: #555555; ---nav-menu-toggle-color: rgba(255, 255, 255, 0.5); ---nav-arrow-color: #9CAFD4; ---nav-arrow-selected-color: #9CAFD4; - -/* table of contents */ ---toc-background-color: #F4F6FA; ---toc-border-color: #D8DFEE; ---toc-header-color: #4665A2; ---toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); - -/** search field */ ---search-background-color: white; ---search-foreground-color: #909090; ---search-magnification-image: url('mag.svg'); ---search-magnification-select-image: url('mag_sel.svg'); ---search-active-color: black; ---search-filter-background-color: #F9FAFC; ---search-filter-foreground-color: black; ---search-filter-border-color: #90A5CE; ---search-filter-highlight-text-color: white; ---search-filter-highlight-bg-color: #3D578C; ---search-results-foreground-color: #425E97; ---search-results-background-color: #EEF1F7; ---search-results-border-color: black; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #555; - -/** code fragments */ ---code-keyword-color: #008000; ---code-type-keyword-color: #604020; ---code-flow-keyword-color: #E08000; ---code-comment-color: #800000; ---code-preprocessor-color: #806020; ---code-string-literal-color: #002080; ---code-char-literal-color: #008080; ---code-xml-cdata-color: black; ---code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #000000; ---code-vhdl-keyword-color: #700070; ---code-vhdl-logic-color: #FF0000; ---code-link-color: #4665A2; ---code-external-link-color: #4665A2; ---fragment-foreground-color: black; ---fragment-background-color: #FBFCFD; ---fragment-border-color: #C4CFE5; ---fragment-lineno-border-color: #00FF00; ---fragment-lineno-background-color: #E8E8E8; ---fragment-lineno-foreground-color: black; ---fragment-lineno-link-fg-color: #4665A2; ---fragment-lineno-link-bg-color: #D8D8D8; ---fragment-lineno-link-hover-fg-color: #4665A2; ---fragment-lineno-link-hover-bg-color: #C8C8C8; ---fragment-copy-ok-color: #2EC82E; ---tooltip-foreground-color: black; ---tooltip-background-color: white; ---tooltip-border-color: gray; ---tooltip-doc-color: grey; ---tooltip-declaration-color: #006318; ---tooltip-link-color: #4665A2; ---tooltip-shadow: 1px 1px 7px gray; ---fold-line-color: #808080; ---fold-minus-image: url('minus.svg'); ---fold-plus-image: url('plus.svg'); ---fold-minus-image-relpath: url('../../minus.svg'); ---fold-plus-image-relpath: url('../../plus.svg'); - -/** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; ---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; ---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; ---font-family-search: Arial,Verdana,sans-serif; ---font-family-icon: Arial,Helvetica; ---font-family-tooltip: Roboto,sans-serif; - -/** special sections */ ---warning-color-bg: #f8d1cc; ---warning-color-hl: #b61825; ---warning-color-text: #75070f; ---note-color-bg: #faf3d8; ---note-color-hl: #f3a600; ---note-color-text: #5f4204; ---todo-color-bg: #e4f3ff; ---todo-color-hl: #1879C4; ---todo-color-text: #274a5c; ---test-color-bg: #e8e8ff; ---test-color-hl: #3939C4; ---test-color-text: #1a1a5c; ---deprecated-color-bg: #ecf0f3; ---deprecated-color-hl: #5b6269; ---deprecated-color-text: #43454a; ---bug-color-bg: #e4dafd; ---bug-color-hl: #5b2bdd; ---bug-color-text: #2a0d72; ---invariant-color-bg: #d8f1e3; ---invariant-color-hl: #44b86f; ---invariant-color-text: #265532; -} - -@media (prefers-color-scheme: dark) { - html:not(.dark-mode) { - color-scheme: dark; - -/* page base colors */ ---page-background-color: black; ---page-foreground-color: #C9D1D9; ---page-link-color: #90A5CE; ---page-visited-link-color: #A3B4D7; - -/* index */ ---index-odd-item-bg-color: #0B101A; ---index-even-item-bg-color: black; ---index-header-color: #C4CFE5; ---index-separator-color: #334975; - -/* header */ ---header-background-color: #070B11; ---header-separator-color: #141C2E; ---header-gradient-image: url('nav_hd.png'); ---group-header-separator-color: #283A5D; ---group-header-color: #90A5CE; ---inherit-header-color: #A0A0A0; - ---footer-foreground-color: #5B7AB7; ---footer-logo-width: 60px; ---citation-label-color: #90A5CE; ---glow-color: cyan; - ---title-background-color: #090D16; ---title-separator-color: #354C79; ---directory-separator-color: #283A5D; ---separator-color: #283A5D; - ---blockquote-background-color: #101826; ---blockquote-border-color: #283A5D; - ---scrollbar-thumb-color: #283A5D; ---scrollbar-background-color: #070B11; - ---icon-background-color: #334975; ---icon-foreground-color: #C4CFE5; ---icon-doc-image: url('docd.svg'); ---icon-folder-open-image: url('folderopend.svg'); ---icon-folder-closed-image: url('folderclosedd.svg'); - -/* brief member declaration list */ ---memdecl-background-color: #0B101A; ---memdecl-separator-color: #2C3F65; ---memdecl-foreground-color: #BBB; ---memdecl-template-color: #7C95C6; - -/* detailed member list */ ---memdef-border-color: #233250; ---memdef-title-background-color: #1B2840; ---memdef-title-gradient-image: url('nav_fd.png'); ---memdef-proto-background-color: #19243A; ---memdef-proto-text-color: #9DB0D4; ---memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); ---memdef-doc-background-color: black; ---memdef-param-name-color: #D28757; ---memdef-template-color: #7C95C6; - -/* tables */ ---table-cell-border-color: #283A5D; ---table-header-background-color: #283A5D; ---table-header-foreground-color: #C4CFE5; - -/* labels */ ---label-background-color: #354C7B; ---label-left-top-border-color: #4665A2; ---label-right-bottom-border-color: #283A5D; ---label-foreground-color: #CCCCCC; - -/** navigation bar/tree/menu */ ---nav-background-color: #101826; ---nav-foreground-color: #364D7C; ---nav-gradient-image: url('tab_bd.png'); ---nav-gradient-hover-image: url('tab_hd.png'); ---nav-gradient-active-image: url('tab_ad.png'); ---nav-gradient-active-image-parent: url("../tab_ad.png"); ---nav-separator-image: url('tab_sd.png'); ---nav-breadcrumb-image: url('bc_sd.png'); ---nav-breadcrumb-border-color: #2A3D61; ---nav-splitbar-image: url('splitbard.png'); ---nav-font-size-level1: 13px; ---nav-font-size-level2: 10px; ---nav-font-size-level3: 9px; ---nav-text-normal-color: #B6C4DF; ---nav-text-hover-color: #DCE2EF; ---nav-text-active-color: #DCE2EF; ---nav-text-normal-shadow: 0px 1px 1px black; ---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-menu-button-color: #B6C4DF; ---nav-menu-background-color: #05070C; ---nav-menu-foreground-color: #BBBBBB; ---nav-menu-toggle-color: rgba(255, 255, 255, 0.2); ---nav-arrow-color: #334975; ---nav-arrow-selected-color: #90A5CE; - -/* table of contents */ ---toc-background-color: #151E30; ---toc-border-color: #202E4A; ---toc-header-color: #A3B4D7; ---toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); - -/** search field */ ---search-background-color: black; ---search-foreground-color: #C5C5C5; ---search-magnification-image: url('mag_d.svg'); ---search-magnification-select-image: url('mag_seld.svg'); ---search-active-color: #C5C5C5; ---search-filter-background-color: #101826; ---search-filter-foreground-color: #90A5CE; ---search-filter-border-color: #7C95C6; ---search-filter-highlight-text-color: #BCC9E2; ---search-filter-highlight-bg-color: #283A5D; ---search-results-background-color: #101826; ---search-results-foreground-color: #90A5CE; ---search-results-border-color: #7C95C6; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; - -/** code fragments */ ---code-keyword-color: #CC99CD; ---code-type-keyword-color: #AB99CD; ---code-flow-keyword-color: #E08000; ---code-comment-color: #717790; ---code-preprocessor-color: #65CABE; ---code-string-literal-color: #7EC699; ---code-char-literal-color: #00E0F0; ---code-xml-cdata-color: #C9D1D9; ---code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #C0C0C0; ---code-vhdl-keyword-color: #CF53C9; ---code-vhdl-logic-color: #FF0000; ---code-link-color: #79C0FF; ---code-external-link-color: #79C0FF; ---fragment-foreground-color: #C9D1D9; ---fragment-background-color: #090D16; ---fragment-border-color: #30363D; ---fragment-lineno-border-color: #30363D; ---fragment-lineno-background-color: black; ---fragment-lineno-foreground-color: #6E7681; ---fragment-lineno-link-fg-color: #6E7681; ---fragment-lineno-link-bg-color: #303030; ---fragment-lineno-link-hover-fg-color: #8E96A1; ---fragment-lineno-link-hover-bg-color: #505050; ---fragment-copy-ok-color: #0EA80E; ---tooltip-foreground-color: #C9D1D9; ---tooltip-background-color: #202020; ---tooltip-border-color: #C9D1D9; ---tooltip-doc-color: #D9E1E9; ---tooltip-declaration-color: #20C348; ---tooltip-link-color: #79C0FF; ---tooltip-shadow: none; ---fold-line-color: #808080; ---fold-minus-image: url('minusd.svg'); ---fold-plus-image: url('plusd.svg'); ---fold-minus-image-relpath: url('../../minusd.svg'); ---fold-plus-image-relpath: url('../../plusd.svg'); - -/** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; ---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; ---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; ---font-family-search: Arial,Verdana,sans-serif; ---font-family-icon: Arial,Helvetica; ---font-family-tooltip: Roboto,sans-serif; - -/** special sections */ ---warning-color-bg: #2e1917; ---warning-color-hl: #ad2617; ---warning-color-text: #f5b1aa; ---note-color-bg: #3b2e04; ---note-color-hl: #f1b602; ---note-color-text: #ceb670; ---todo-color-bg: #163750; ---todo-color-hl: #1982D2; ---todo-color-text: #dcf0fa; ---test-color-bg: #121258; ---test-color-hl: #4242cf; ---test-color-text: #c0c0da; ---deprecated-color-bg: #2e323b; ---deprecated-color-hl: #738396; ---deprecated-color-text: #abb0bd; ---bug-color-bg: #2a2536; ---bug-color-hl: #7661b3; ---bug-color-text: #ae9ed6; ---invariant-color-bg: #303a35; ---invariant-color-hl: #76ce96; ---invariant-color-text: #cceed5; -}} -body { - background-color: var(--page-background-color); - color: var(--page-foreground-color); -} - -body, table, div, p, dl { - font-weight: 400; - font-size: 14px; - font-family: var(--font-family-normal); - line-height: 22px; -} - -/* @group Heading Levels */ - -.title { - font-family: var(--font-family-normal); - line-height: 28px; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h1.groupheader { - font-size: 150%; -} - -h2.groupheader { - border-bottom: 1px solid var(--group-header-separator-color); - color: var(--group-header-color); - 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 var(--glow-color); -} - -dt { - font-weight: bold; -} - -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 { - 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: var(--nav-gradient-active-image); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: var(--index-separator-color); -} - -#main-menu a:focus { - outline: auto; - z-index: 10; - position: relative; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: var(--index-header-color); -} - -.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.even { - background-color: var(--index-even-item-bg-color); -} - -.classindex dl.odd { - background-color: var(--index-odd-item-bg-color); -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: var(--page-link-color); - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: var(--page-visited-link-color); -} - -a:hover { - text-decoration: none; - background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); -} - -a:hover > span.arrow { - text-decoration: none; - background : var(--nav-background-color); -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: var(--code-link-color); -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: var(--code-external-link-color); -} - -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.check { - list-style:none; - text-indent: -16px; - padding-left: 38px; -} -li.unchecked:before { - content: "\2610\A0"; -} -li.checked:before { - content: "\2611\A0"; -} - -ol { - text-indent: 0px; -} - -ul { - text-indent: 0px; - overflow: visible; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; - list-style-type: none; -} - -#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; - overflow-y: hidden; - position: relative; - min-height: 12px; - margin: 10px 0px; - padding: 10px 10px; - border: 1px solid var(--fragment-border-color); - border-radius: 4px; - background-color: var(--fragment-background-color); - color: var(--fragment-foreground-color); -} - -pre.fragment { - word-wrap: break-word; - font-size: 10pt; - line-height: 125%; - font-family: var(--font-family-monospace); -} - -.clipboard { - width: 24px; - height: 24px; - right: 5px; - top: 5px; - opacity: 0; - position: absolute; - display: inline; - overflow: hidden; - justify-content: center; - align-items: center; - cursor: pointer; -} - -.clipboard.success { - border: 1px solid var(--fragment-foreground-color); - border-radius: 4px; -} - -.fragment:hover .clipboard, .clipboard.success { - opacity: .4; -} - -.clipboard:hover, .clipboard.success { - opacity: 1 !important; -} - -.clipboard:active:not([class~=success]) svg { - transform: scale(.91); -} - -.clipboard.success svg { - fill: var(--fragment-copy-ok-color); -} - -.clipboard.success { - border-color: var(--fragment-copy-ok-color); -} - -div.line { - font-family: var(--font-family-monospace); - font-size: 13px; - min-height: 13px; - line-height: 1.2; - 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: var(--glow-color); - box-shadow: 0 0 10px var(--glow-color); -} - -span.fold { - margin-left: 5px; - margin-right: 1px; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; - display: inline-block; - width: 12px; - height: 12px; - background-repeat:no-repeat; - background-position:center; -} - -span.lineno { - padding-right: 4px; - margin-right: 9px; - text-align: right; - border-right: 2px solid var(--fragment-lineno-border-color); - color: var(--fragment-lineno-foreground-color); - background-color: var(--fragment-lineno-background-color); - white-space: pre; -} -span.lineno a, span.lineno a:visited { - color: var(--fragment-lineno-link-fg-color); - background-color: var(--fragment-lineno-link-bg-color); -} - -span.lineno a:hover { - color: var(--fragment-lineno-link-hover-fg-color); - background-color: var(--fragment-lineno-link-hover-bg-color); -} - -.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.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 { - color: var(--page-foreground-color); - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -p.formulaDsp { - text-align: center; -} - -img.dark-mode-visible { - display: none; -} -img.light-mode-visible { - display: none; -} - -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; - width: var(--footer-logo-width); -} - -.compoundTemplParams { - color: var(--memdecl-template-color); - font-size: 80%; - line-height: 120%; -} - -/* @group Code Colorization */ - -span.keyword { - color: var(--code-keyword-color); -} - -span.keywordtype { - color: var(--code-type-keyword-color); -} - -span.keywordflow { - color: var(--code-flow-keyword-color); -} - -span.comment { - color: var(--code-comment-color); -} - -span.preprocessor { - color: var(--code-preprocessor-color); -} - -span.stringliteral { - color: var(--code-string-literal-color); -} - -span.charliteral { - color: var(--code-char-literal-color); -} - -span.xmlcdata { - color: var(--code-xml-cdata-color); -} - -span.vhdldigit { - color: var(--code-vhdl-digit-color); -} - -span.vhdlchar { - color: var(--code-vhdl-char-color); -} - -span.vhdlkeyword { - color: var(--code-vhdl-keyword-color); -} - -span.vhdllogic { - color: var(--code-vhdl-logic-color); -} - -blockquote { - background-color: var(--blockquote-background-color); - border-left: 2px solid var(--blockquote-border-color); - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid var(--table-cell-border-color); -} - -th.dirtab { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid var(--separator-color); -} - -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: var(--glow-color); - box-shadow: 0 0 15px var(--glow-color); -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: var(--memdecl-background-color); - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: var(--memdecl-foreground-color); -} - -.memSeparator { - border-bottom: 1px solid var(--memdecl-separator-color); - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: var(--memdecl-template-color); - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: var(--memdef-title-gradient-image); - background-repeat: repeat-x; - background-color: var(--memdef-title-background-color); - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: var(--memdef-template-color); - font-weight: normal; - margin-left: 9px; -} - -.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 var(--glow-color); -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 0px 6px 0px; - color: var(--memdef-proto-text-color); - font-weight: bold; - text-shadow: var(--memdef-proto-text-shadow); - background-color: var(--memdef-proto-background-color); - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; -} - -.overload { - font-family: var(--font-family-monospace); - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 10px 2px 10px; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: var(--memdef-doc-background-color); - /* 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; - padding: 0px; - padding-bottom: 1px; -} - -.paramname { - white-space: nowrap; - padding: 0px; - padding-bottom: 1px; - margin-left: 2px; -} - -.paramname em { - color: var(--memdef-param-name-color); - font-style: normal; - margin-right: 1px; -} - -.paramname .paramdefval { - font-family: var(--font-family-monospace); -} - -.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: var(--font-family-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: var(--label-background-color); - border-top:1px solid var(--label-left-top-border-color); - border-left:1px solid var(--label-left-top-border-color); - border-right:1px solid var(--label-right-bottom-border-color); - border-bottom:1px solid var(--label-right-bottom-border-color); - text-shadow: none; - color: var(--label-foreground-color); - 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 var(--directory-separator-color); - border-bottom: 1px solid var(--directory-separator-color); - 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.odd { - padding-left: 6px; - background-color: var(--index-odd-item-bg-color); -} - -.directory tr.even { - padding-left: 6px; - background-color: var(--index-even-item-bg-color); -} - -.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: var(--page-link-color); -} - -.arrow { - color: var(--nav-arrow-color); - -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: var(--font-family-icon); - line-height: normal; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: var(--icon-background-color); - color: var(--icon-foreground-color); - 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:var(--icon-folder-open-image); - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:var(--icon-folder-closed-image); - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:var(--icon-doc-image); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -/* @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: var(--footer-foreground-color); -} - -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 var(--table-cell-border-color); - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - margin-bottom: 10px; - border: 1px solid var(--memdef-border-color); - border-spacing: 0px; - border-radius: 4px; - 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, .fieldtable td.fieldinit { - white-space: nowrap; - border-right: 1px solid var(--memdef-border-color); - border-bottom: 1px solid var(--memdef-border-color); - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fieldinit { - padding-top: 3px; - text-align: right; -} - - -.fieldtable td.fielddoc { - border-bottom: 1px solid var(--memdef-border-color); -} - -.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: var(--memdef-title-gradient-image); - background-repeat:repeat-x; - background-color: var(--memdef-title-background-color); - font-size: 90%; - color: var(--memdef-proto-text-color); - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid var(--memdef-border-color); -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: var(--nav-gradient-image); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image: var(--nav-gradient-image); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:var(--nav-text-normal-color); - border:solid 1px var(--nav-breadcrumb-border-color); - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:var(--nav-breadcrumb-image); - background-repeat:no-repeat; - background-position:right; - color: var(--nav-foreground-color); -} - -.navpath li.navelem a -{ - height:32px; - display:block; - outline: none; - color: var(--nav-text-normal-color); - font-family: var(--font-family-nav); - text-shadow: var(--nav-text-normal-shadow); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); -} - -.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: var(--footer-foreground-color); - 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: var(--header-gradient-image); - background-repeat:repeat-x; - background-color: var(--header-background-color); - margin: 0px; - border-bottom: 1px solid var(--header-separator-color); -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* - -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention, dl.important { - margin-left: -7px; - padding-left: 3px; - border-left: 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.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -*/ - -dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { - font-weight: bold !important; -} - -dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, -dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { - padding: 10px; - margin: 10px 0px; - overflow: hidden; - margin-left: 0; - border-radius: 4px; -} - -dl.section dd { - margin-bottom: 2px; -} - -dl.warning, dl.attention, dl.important { - background: var(--warning-color-bg); - border-left: 8px solid var(--warning-color-hl); - color: var(--warning-color-text); -} - -dl.warning dt, dl.attention dt, dl.important dt { - color: var(--warning-color-hl); -} - -dl.note, dl.remark { - background: var(--note-color-bg); - border-left: 8px solid var(--note-color-hl); - color: var(--note-color-text); -} - -dl.note dt, dl.remark dt { - color: var(--note-color-hl); -} - -dl.todo { - background: var(--todo-color-bg); - border-left: 8px solid var(--todo-color-hl); - color: var(--todo-color-text); -} - -dl.todo dt { - color: var(--todo-color-hl); -} - -dl.test { - background: var(--test-color-bg); - border-left: 8px solid var(--test-color-hl); - color: var(--test-color-text); -} - -dl.test dt { - color: var(--test-color-hl); -} - -dl.bug dt a { - color: var(--bug-color-hl) !important; -} - -dl.bug { - background: var(--bug-color-bg); - border-left: 8px solid var(--bug-color-hl); - color: var(--bug-color-text); -} - -dl.bug dt a { - color: var(--bug-color-hl) !important; -} - -dl.deprecated { - background: var(--deprecated-color-bg); - border-left: 8px solid var(--deprecated-color-hl); - color: var(--deprecated-color-text); -} - -dl.deprecated dt a { - color: var(--deprecated-color-hl) !important; -} - -dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, -dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, -dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { - margin-inline-start: 0px; -} - -dl.invariant, dl.pre, dl.post { - background: var(--invariant-color-bg); - border-left: 8px solid var(--invariant-color-hl); - color: var(--invariant-color-text); -} - -dl.invariant dt, dl.pre dt, dl.post dt { - color: var(--invariant-color-hl); -} - - -#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-size: 200%; - font-family: var(--font-family-title); - margin: 0px; - padding: 2px 0px; -} - -#side-nav #projectname -{ - font-size: 130%; -} - -#projectbrief -{ - font-size: 90%; - font-family: var(--font-family-title); - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font-size: 50%; - font-family: 50% var(--font-family-title); - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid var(--title-separator-color); - background-color: var(--title-background-color); -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:var(--citation-label-color); - 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: var(--toc-background-color); - border: 1px solid var(--toc-border-color); - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -div.toc li { - background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; - font: 10px/1.2 var(--font-family-toc); - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 var(--font-family-toc); - color: var(--toc-header-color); - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li[class^='level'] { - margin-left: 15px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.empty { - background-image: none; - margin-top: 0px; -} - -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; -} - -.inherit_header { - font-weight: bold; - color: var(--inherit-header-color); - 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;*/ - color: var(--tooltip-foreground-color); - background-color: var(--tooltip-background-color); - border: 1px solid var(--tooltip-border-color); - border-radius: 4px 4px 4px 4px; - box-shadow: var(--tooltip-shadow); - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: var(--tooltip-doc-color); - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip a { - color: var(--tooltip-link-color); -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: var(--tooltip-declaration-color); -} - -#powerTip div { - margin: 0px; - padding: 0px; - font-size: 12px; - font-family: var(--font-family-tooltip); - line-height: 16px; -} - -#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: var(--tooltip-background-color); - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { - border-top-color: var(--tooltip-border-color); - 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: var(--tooltip-background-color); - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: var(--tooltip-border-color); - 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: var(--tooltip-border-color); - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: var(--tooltip-border-color); - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: var(--tooltip-border-color); - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: var(--tooltip-border-color); - 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 var(--table-cell-border-color); - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - 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 -} - -tt, code, kbd -{ - display: inline-block; -} -tt, code, kbd -{ - vertical-align: top; -} -/* @end */ - -u { - text-decoration: underline; -} - -details>summary { - list-style-type: none; -} - -details > summary::-webkit-details-marker { - display: none; -} - -details>summary::before { - content: "\25ba"; - padding-right:4px; - font-size: 80%; -} - -details[open]>summary::before { - content: "\25bc"; - padding-right:4px; - font-size: 80%; -} - -body { - scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); -} - -::-webkit-scrollbar { - background-color: var(--scrollbar-background-color); - height: 12px; - width: 12px; -} -::-webkit-scrollbar-thumb { - border-radius: 6px; - box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); - border: solid 2px transparent; -} -::-webkit-scrollbar-corner { - background-color: var(--scrollbar-background-color); -} - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.svg deleted file mode 100644 index 79a7635..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen_crawl.html b/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen_crawl.html deleted file mode 100644 index c71878f..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/doxygen_crawl.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Validator / crawler helper - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/dynsections.js b/templates/_folder_Projects/tic-tac-toe/docs/html/dynsections.js deleted file mode 100644 index b05f4c8..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/dynsections.js +++ /dev/null @@ -1,198 +0,0 @@ -/* - @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) { - return dynsection.toggleVisibility(linkObj); -} - -let dynsection = { - - // helper function - updateStripes : function() { - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); - $('table.directory tr'). - removeClass('odd').filter(':visible:odd').addClass('odd'); - }, - - toggleVisibility : function(linkObj) { - const base = $(linkObj).attr('id'); - const summary = $('#'+base+'-summary'); - const content = $('#'+base+'-content'); - const trigger = $('#'+base+'-trigger'); - const 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; - }, - - toggleLevel : function(level) { - $('table.directory tr').each(function() { - const l = this.id.split('_').length-1; - const i = $('#img'+this.id.substring(3)); - const a = $('#arr'+this.id.substring(3)); - if (l'); - // add vertical lines to other rows - $('span[class=lineno]').not(':eq(0)').append(''); - // add toggle controls to lines with fold divs - $('div[class=foldopen]').each(function() { - // extract specific id to use - const id = $(this).attr('id').replace('foldopen',''); - // extract start and end foldable fragment attributes - const start = $(this).attr('data-start'); - const end = $(this).attr('data-end'); - // replace normal fold span with controls for the first line of a foldable fragment - $(this).find('span[class=fold]:first').replaceWith(''); - // append div for folded (closed) representation - $(this).after(''); - // extract the first line from the "open" section to represent closed content - const line = $(this).children().first().clone(); - // remove any glow that might still be active on the original line - $(line).removeClass('glow'); - if (start) { - // if line already ends with a start marker (e.g. trailing {), remove it - $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); - } - // replace minus with plus symbol - $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); - // append ellipsis - $(line).append(' '+start+''+end); - // insert constructed line into closed div - $('#foldclosed'+id).html(line); - }); - }, -}; -/* @license-end */ diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/files.html b/templates/_folder_Projects/tic-tac-toe/docs/html/files.html deleted file mode 100644 index b283855..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/files.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -My Project: File List - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
File List
-
-
-
Here is a list of all files with brief descriptions:
- - - - -
 main.cppEntry point for the Tic Tac Toe game
 TicTacToeWindow.cppContains the implementation of the TicTacToeWindow class
 TicTacToeWindow.hDefines the TicTacToeWindow class for handling game logic and UI
-
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/files_dup.js b/templates/_folder_Projects/tic-tac-toe/docs/html/files_dup.js deleted file mode 100644 index 0fb50fd..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/files_dup.js +++ /dev/null @@ -1,6 +0,0 @@ -var files_dup = -[ - [ "main.cpp", "main_8cpp.html", "main_8cpp" ], - [ "TicTacToeWindow.cpp", "_tic_tac_toe_window_8cpp.html", "_tic_tac_toe_window_8cpp" ], - [ "TicTacToeWindow.h", "_tic_tac_toe_window_8h.html", "_tic_tac_toe_window_8h" ] -]; \ No newline at end of file diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/folderclosed.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/folderclosed.svg deleted file mode 100644 index b04bed2..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/folderclosed.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/folderclosedd.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/folderclosedd.svg deleted file mode 100644 index 52f0166..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/folderclosedd.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/folderopen.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/folderopen.svg deleted file mode 100644 index f6896dd..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/folderopen.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/folderopend.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/folderopend.svg deleted file mode 100644 index 2d1f06e..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/folderopend.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/functions.html b/templates/_folder_Projects/tic-tac-toe/docs/html/functions.html deleted file mode 100644 index 84c1022..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/functions.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -My Project: Class Members - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all class members with links to the classes they belong to:
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/functions_func.html b/templates/_folder_Projects/tic-tac-toe/docs/html/functions_func.html deleted file mode 100644 index 16beade..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/functions_func.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - -My Project: Class Members - Functions - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all functions with links to the classes they belong to:
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/functions_vars.html b/templates/_folder_Projects/tic-tac-toe/docs/html/functions_vars.html deleted file mode 100644 index 23e683d..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/functions_vars.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -My Project: Class Members - Variables - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all variables with links to the classes they belong to:
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/globals.html b/templates/_folder_Projects/tic-tac-toe/docs/html/globals.html deleted file mode 100644 index 7091b61..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/globals.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -My Project: File Members - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all file members with links to the files they belong to:
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/globals_func.html b/templates/_folder_Projects/tic-tac-toe/docs/html/globals_func.html deleted file mode 100644 index 78c413e..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/globals_func.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: File Members - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all functions with links to the files they belong to:
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/globals_vars.html b/templates/_folder_Projects/tic-tac-toe/docs/html/globals_vars.html deleted file mode 100644 index d71648a..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/globals_vars.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -My Project: File Members - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all variables with links to the files they belong to:
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.html b/templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.html deleted file mode 100644 index f9eb97d..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -My Project: Class Hierarchy - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Class Hierarchy
-
-
-
This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 12]
- - -
 CTDT4102::AnimationWindow
 CTicTacToeWindowHandles the Tic Tac Toe game logic and user interface
-
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.js b/templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.js deleted file mode 100644 index 4c044ae..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/hierarchy.js +++ /dev/null @@ -1,6 +0,0 @@ -var hierarchy = -[ - [ "TDT4102::AnimationWindow", null, [ - [ "TicTacToeWindow", "class_tic_tac_toe_window.html", null ] - ] ] -]; \ No newline at end of file diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/index.html b/templates/_folder_Projects/tic-tac-toe/docs/html/index.html deleted file mode 100644 index 7667759..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/index.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: Main Page - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
My Project Documentation
-
-
- -
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/jquery.js b/templates/_folder_Projects/tic-tac-toe/docs/html/jquery.js deleted file mode 100644 index 875ada7..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/jquery.js +++ /dev/null @@ -1,204 +0,0 @@ -/*! 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?"�":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 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t -){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t -]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, -getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, -s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},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;n").css({overflow:"hidden",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,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),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(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t -).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(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),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".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=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( -","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( -this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ -width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), -!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),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=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height -,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-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")];e<4;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;e").css({overflow:"hidden"}),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:++e.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;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, -i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,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}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left -)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e -){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), -i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( -)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, -function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 -]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=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"},$}); diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.html b/templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.html deleted file mode 100644 index a1ae9d8..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - -My Project: main.cpp File Reference - - - - - - - - - - - - - - - - -
-
- - - - - - - -
-
My Project -
-
- -   - - - - -
-
-
- - - - -
-
- -
-
-
- -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
- -
main.cpp File Reference
-
-
- -

Entry point for the Tic Tac Toe game. -More...

-
#include "TicTacToeWindow.h"
-
- - - - - - - -

-Functions

void play_tick_tack_toe ()
 Initializes and starts the Tic Tac Toe game.
 
int main ()
 Main function, starts the game.
 
-

Detailed Description

-

Entry point for the Tic Tac Toe game.

-

This file uses the following libraries and resources:

-

Function Documentation

- -

◆ main()

- -
-
- - - - - - - -
int main ()
-
- -

Main function, starts the game.

-
Returns
int Exit status.
- -
-
- -

◆ play_tick_tack_toe()

- -
-
- - - - - - - -
void play_tick_tack_toe ()
-
- -

Initializes and starts the Tic Tac Toe game.

-

< X-coordinate of the window.

-

< Y-coordinate of the window.

-

< Width of the window.

-

< Height of the window.

-

< Title of the game window.

- -
-
-
-
- - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.js b/templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.js deleted file mode 100644 index 0cfc8e6..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/main_8cpp.js +++ /dev/null @@ -1,5 +0,0 @@ -var main_8cpp = -[ - [ "main", "main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ], - [ "play_tick_tack_toe", "main_8cpp.html#adfe9299470a3da06f80456efb1e52945", null ] -]; \ No newline at end of file diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/minus.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/minus.svg deleted file mode 100644 index f70d0c1..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/minus.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/minusd.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/minusd.svg deleted file mode 100644 index 5f8e879..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/minusd.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/nav_f.png b/templates/_folder_Projects/tic-tac-toe/docs/html/nav_f.png deleted file mode 100644 index 72a58a529ed3a9ed6aa0c51a79cf207e026deee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/nav_fd.png b/templates/_folder_Projects/tic-tac-toe/docs/html/nav_fd.png deleted file mode 100644 index 032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/nav_g.png b/templates/_folder_Projects/tic-tac-toe/docs/html/nav_g.png deleted file mode 100644 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/navtree.css b/templates/_folder_Projects/tic-tac-toe/docs/html/navtree.css deleted file mode 100644 index 69211d4..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/navtree.css +++ /dev/null @@ -1,149 +0,0 @@ -#nav-tree .children_ul { - margin:0; - padding:4px; -} - -#nav-tree ul { - list-style:none outside none; - margin:0px; - padding:0px; -} - -#nav-tree li { - white-space:nowrap; - margin:0px; - padding:0px; -} - -#nav-tree .plus { - margin:0px; -} - -#nav-tree .selected { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: var(--nav-text-active-color); - text-shadow: var(--nav-text-active-shadow); -} - -#nav-tree .selected .arrow { - color: var(--nav-arrow-selected-color); - text-shadow: none; -} - -#nav-tree img { - margin:0px; - padding:0px; - border:0px; - vertical-align: middle; -} - -#nav-tree a { - text-decoration:none; - padding:0px; - margin:0px; -} - -#nav-tree .label { - margin:0px; - padding:0px; - font: 12px var(--font-family-nav); -} - -#nav-tree .label a { - padding:2px; -} - -#nav-tree .selected a { - text-decoration:none; - color:var(--nav-text-active-color); -} - -#nav-tree .children_ul { - margin:0px; - padding:0px; -} - -#nav-tree .item { - margin:0px; - padding:0px; -} - -#nav-tree { - padding: 0px 0px; - font-size:14px; - overflow:auto; -} - -#doc-content { - overflow:auto; - display:block; - padding:0px; - margin:0px; - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#side-nav { - padding:0 6px 0 0; - margin: 0px; - display:block; - position: absolute; - left: 0px; - width: $width; - overflow : hidden; -} - -.ui-resizable .ui-resizable-handle { - display:block; -} - -.ui-resizable-e { - background-image:var(--nav-splitbar-image); - background-size:100%; - background-repeat:repeat-y; - background-attachment: scroll; - cursor:ew-resize; - height:100%; - right:0; - top:0; - width:6px; -} - -.ui-resizable-handle { - display:none; - font-size:0.1px; - position:absolute; - z-index:1; -} - -#nav-tree-contents { - margin: 6px 0px 0px 0px; -} - -#nav-tree { - background-repeat:repeat-x; - background-color: var(--nav-background-color); - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#nav-sync { - position:absolute; - top:5px; - right:24px; - z-index:0; -} - -#nav-sync img { - opacity:0.3; -} - -#nav-sync img:hover { - opacity:0.9; -} - -@media print -{ - #nav-tree { display: none; } - div.ui-resizable-handle { display: none; position: relative; } -} - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/navtree.js b/templates/_folder_Projects/tic-tac-toe/docs/html/navtree.js deleted file mode 100644 index 2d4fa84..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/navtree.js +++ /dev/null @@ -1,483 +0,0 @@ -/* - @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 initNavTree(toroot,relpath) { - let navTreeSubIndices = []; - const ARROW_DOWN = '▼'; - const ARROW_RIGHT = '►'; - const NAVPATH_COOKIE_NAME = ''+'navpath'; - - const getData = function(varName) { - const i = varName.lastIndexOf('/'); - const n = i>=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/-/g,'_')); - } - - const stripPath = function(uri) { - return uri.substring(uri.lastIndexOf('/')+1); - } - - const stripPath2 = function(uri) { - const i = uri.lastIndexOf('/'); - const s = uri.substring(i+1); - const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); - return m ? uri.substring(i-6) : s; - } - - const hashValue = function() { - return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); - } - - const hashUrl = function() { - return '#'+hashValue(); - } - - const pathName = function() { - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); - } - - const storeLink = function(link) { - if (!$("#nav-sync").hasClass('sync')) { - Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); - } - } - - const deleteLink = function() { - Cookie.eraseSetting(NAVPATH_COOKIE_NAME); - } - - const cachedLink = function() { - return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); - } - - const getScript = function(scriptName,func) { - const head = document.getElementsByTagName("head")[0]; - const script = document.createElement('script'); - script.id = scriptName; - script.type = 'text/javascript'; - script.onload = func; - script.src = scriptName+'.js'; - head.appendChild(script); - } - - const createIndent = function(o,domNode,node) { - let level=-1; - let n = node; - while (n.parentNode) { level++; n=n.parentNode; } - if (node.childrenData) { - const imgNode = document.createElement("span"); - imgNode.className = 'arrow'; - imgNode.style.paddingLeft=(16*level).toString()+'px'; - imgNode.innerHTML=ARROW_RIGHT; - node.plus_img = imgNode; - node.expandToggle = document.createElement("a"); - node.expandToggle.href = "javascript:void(0)"; - node.expandToggle.onclick = function() { - if (node.expanded) { - $(node.getChildrenUL()).slideUp("fast"); - node.plus_img.innerHTML=ARROW_RIGHT; - node.expanded = false; - } else { - expandNode(o, node, false, true); - } - } - node.expandToggle.appendChild(imgNode); - domNode.appendChild(node.expandToggle); - } else { - let span = document.createElement("span"); - span.className = 'arrow'; - span.style.width = 16*(level+1)+'px'; - span.innerHTML = ' '; - domNode.appendChild(span); - } - } - - let animationInProgress = false; - - const gotoAnchor = function(anchor,aname) { - let pos, docContent = $('#doc-content'); - let ancParent = $(anchor.parent()); - if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || - ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || - ancParent.is(':header')) { - pos = ancParent.offset().top; - } else if (anchor.position()) { - pos = anchor.offset().top; - } - if (pos) { - const dcOffset = docContent.offset().top; - const dcHeight = docContent.height(); - const dcScrHeight = docContent[0].scrollHeight - const dcScrTop = docContent.scrollTop(); - let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); - animationInProgress = true; - docContent.animate({ - scrollTop: pos + dcScrTop - dcOffset - },Math.max(50,Math.min(500,dist)),function() { - animationInProgress=false; - if (anchor.parent().attr('class')=='memItemLeft') { - let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details - } else if (anchor.parent().attr('class')=='fieldname') { - glowEffect(anchor.parent().parent(),1000); // enum value - } else if (anchor.parent().attr('class')=='fieldtype') { - glowEffect(anchor.parent().parent(),1000); // struct field - } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header - } else { - glowEffect(anchor.next(),1000); // normal member - } - }); - } - } - - const newNode = function(o, po, text, link, childrenData, lastNode) { - const node = { - children : [], - childrenData : childrenData, - depth : po.depth + 1, - relpath : po.relpath, - isLast : lastNode, - li : document.createElement("li"), - parentNode : po, - itemDiv : document.createElement("div"), - labelSpan : document.createElement("span"), - label : document.createTextNode(text), - expanded : false, - childrenUL : null, - getChildrenUL : function() { - if (!this.childrenUL) { - this.childrenUL = document.createElement("ul"); - this.childrenUL.className = "children_ul"; - this.childrenUL.style.display = "none"; - this.li.appendChild(node.childrenUL); - } - return node.childrenUL; - }, - }; - - node.itemDiv.className = "item"; - node.labelSpan.className = "label"; - createIndent(o,node.itemDiv,node); - node.itemDiv.appendChild(node.labelSpan); - node.li.appendChild(node.itemDiv); - - const a = document.createElement("a"); - node.labelSpan.appendChild(a); - po.getChildrenUL().appendChild(node.li); - a.appendChild(node.label); - if (link) { - let url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - link = url; - } else { - url = node.relpath+link; - } - a.className = stripPath(link.replace('#',':')); - if (link.indexOf('#')!=-1) { - const aname = '#'+link.split('#')[1]; - const srcPage = stripPath(pathName()); - const targetPage = stripPath(link.split('#')[0]); - a.href = srcPage!=targetPage ? url : aname; - a.onclick = function() { - storeLink(link); - aPPar = $(a).parent().parent(); - if (!aPPar.hasClass('selected')) { - $('.item').removeClass('selected'); - $('.item').removeAttr('id'); - aPPar.addClass('selected'); - aPPar.attr('id','selected'); - } - const anchor = $(aname); - gotoAnchor(anchor,aname); - }; - } else { - a.href = url; - a.onclick = () => storeLink(link); - } - } else if (childrenData != null) { - a.className = "nolink"; - a.href = "javascript:void(0)"; - a.onclick = node.expandToggle.onclick; - } - return node; - } - - const showRoot = function() { - const headerHeight = $("#top").height(); - const footerHeight = $("#nav-path").height(); - const windowHeight = $(window).height() - headerHeight - footerHeight; - (function() { // retry until we can scroll to the selected item - try { - const navtree=$('#nav-tree'); - navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); - } catch (err) { - setTimeout(arguments.callee, 0); - } - })(); - } - - const expandNode = function(o, node, imm, setFocus) { - if (node.childrenData && !node.expanded) { - if (typeof(node.childrenData)==='string') { - const varName = node.childrenData; - getScript(node.relpath+varName,function() { - node.childrenData = getData(varName); - expandNode(o, node, imm, setFocus); - }); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).slideDown("fast"); - node.plus_img.innerHTML = ARROW_DOWN; - node.expanded = true; - if (setFocus) { - $(node.expandToggle).focus(); - } - } - } - } - - const glowEffect = function(n,duration) { - n.addClass('glow').delay(duration).queue(function(next) { - $(this).removeClass('glow');next(); - }); - } - - const highlightAnchor = function() { - const aname = hashUrl(); - const anchor = $(aname); - gotoAnchor(anchor,aname); - } - - const selectAndHighlight = function(hash,n) { - let a; - if (hash) { - const link=stripPath(pathName())+':'+hash.substring(1); - a=$('.item a[class$="'+link+'"]'); - } - if (a && a.length) { - a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); - highlightAnchor(); - } else if (n) { - $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); - } - let topOffset=5; - if ($('#nav-tree-contents .item:first').hasClass('selected')) { - topOffset+=25; - } - $('#nav-sync').css('top',topOffset+'px'); - showRoot(); - } - - const showNode = function(o, node, index, hash) { - if (node && node.childrenData) { - if (typeof(node.childrenData)==='string') { - const varName = node.childrenData; - getScript(node.relpath+varName,function() { - node.childrenData = getData(varName); - showNode(o,node,index,hash); - }); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).css({'display':'block'}); - node.plus_img.innerHTML = ARROW_DOWN; - node.expanded = true; - const n = node.children[o.breadcrumbs[index]]; - if (index+11 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; - } - if (hash.match(/^#l\d+$/)) { - const anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number - hash=''; // strip line number anchors - } - const url=root+hash; - let i=-1; - while (NAVTREEINDEX[i+1]<=url) i++; - if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) - } else { - getScript(relpath+'navtreeindex'+i,function() { - navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); - } - }); - } - } - - const showSyncOff = function(n,relpath) { - n.html(''); - } - - const showSyncOn = function(n,relpath) { - n.html(''); - } - - const o = { - toroot : toroot, - node : { - childrenData : NAVTREE, - children : [], - childrenUL : document.createElement("ul"), - getChildrenUL : function() { return this.childrenUL }, - li : document.getElementById("nav-tree-contents"), - depth : 0, - relpath : relpath, - expanded : false, - isLast : true, - plus_img : document.createElement("span"), - }, - }; - o.node.li.appendChild(o.node.childrenUL); - o.node.plus_img.className = 'arrow'; - o.node.plus_img.innerHTML = ARROW_RIGHT; - - const navSync = $('#nav-sync'); - if (cachedLink()) { - showSyncOff(navSync,relpath); - navSync.removeClass('sync'); - } else { - showSyncOn(navSync,relpath); - } - - navSync.click(() => { - const navSync = $('#nav-sync'); - if (navSync.hasClass('sync')) { - navSync.removeClass('sync'); - showSyncOff(navSync,relpath); - storeLink(stripPath2(pathName())+hashUrl()); - } else { - navSync.addClass('sync'); - showSyncOn(navSync,relpath); - deleteLink(); - } - }); - - navTo(o,toroot,hashUrl(),relpath); - showRoot(); - - $(window).bind('hashchange', () => { - if (!animationInProgress) { - if (window.location.hash && window.location.hash.length>1) { - let a; - if ($(location).attr('hash')) { - const clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/plusd.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/plusd.svg deleted file mode 100644 index 0c65bfe..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/plusd.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/resize.js b/templates/_folder_Projects/tic-tac-toe/docs/html/resize.js deleted file mode 100644 index 178d03b..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/resize.js +++ /dev/null @@ -1,147 +0,0 @@ -/* - @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 initResizable(treeview) { - let sidenav,navtree,content,header,footer,barWidth=6; - const RESIZE_COOKIE_NAME = ''+'width'; - - function resizeWidth() { - const sidenavWidth = $(sidenav).outerWidth(); - content.css({marginLeft:parseInt(sidenavWidth)+"px"}); - if (typeof page_layout!=='undefined' && page_layout==1) { - footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); - } - Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); - } - - function restoreWidth(navWidth) { - content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); - if (typeof page_layout!=='undefined' && page_layout==1) { - footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); - } - sidenav.css({width:navWidth + "px"}); - } - - function resizeHeight(treeview) { - const headerHeight = header.outerHeight(); - const windowHeight = $(window).height(); - let contentHeight; - if (treeview) - { - const footerHeight = footer.outerHeight(); - let navtreeHeight,sideNavHeight; - if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ - contentHeight = windowHeight - headerHeight - footerHeight; - navtreeHeight = contentHeight; - sideNavHeight = contentHeight; - } else if (page_layout==1) { /* DISABLE_INDEX=YES */ - contentHeight = windowHeight - footerHeight; - navtreeHeight = windowHeight - headerHeight; - sideNavHeight = windowHeight; - } - navtree.css({height:navtreeHeight + "px"}); - sidenav.css({height:sideNavHeight + "px"}); - } - else - { - contentHeight = windowHeight - headerHeight; - } - content.css({height:contentHeight + "px"}); - if (location.hash.slice(1)) { - (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); - } - } - - function collapseExpand() { - let newWidth; - if (sidenav.width()>0) { - newWidth=0; - } else { - const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); - newWidth = (width>250 && width<$(window).width()) ? width : 250; - } - restoreWidth(newWidth); - const sidenavWidth = $(sidenav).outerWidth(); - Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); - } - - header = $("#top"); - content = $("#doc-content"); - footer = $("#nav-path"); - sidenav = $("#side-nav"); - if (!treeview) { -// title = $("#titlearea"); -// titleH = $(title).height(); -// let animating = false; -// content.on("scroll", function() { -// slideOpts = { duration: 200, -// step: function() { -// contentHeight = $(window).height() - header.outerHeight(); -// content.css({ height : contentHeight + "px" }); -// }, -// done: function() { animating=false; } -// }; -// if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) { -// title.slideUp(slideOpts); -// animating=true; -// } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) { -// title.slideDown(slideOpts); -// animating=true; -// } -// }); - } else { - navtree = $("#nav-tree"); - $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); - $(sidenav).resizable({ minWidth: 0 }); - } - $(window).resize(function() { resizeHeight(treeview); }); - if (treeview) - { - const device = navigator.userAgent.toLowerCase(); - const touch_device = device.match(/(iphone|ipod|ipad|android)/); - if (touch_device) { /* wider split bar for touch only devices */ - $(sidenav).css({ paddingRight:'20px' }); - $('.ui-resizable-e').css({ width:'20px' }); - $('#nav-sync').css({ right:'34px' }); - barWidth=20; - } - const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); - if (width) { restoreWidth(width); } else { resizeWidth(); } - } - resizeHeight(treeview); - const url = location.href; - const i=url.indexOf("#"); - if (i>=0) window.location.hash=url.substr(i); - const _preventDefault = function(evt) { evt.preventDefault(); }; - if (treeview) - { - $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - $(".ui-resizable-handle").dblclick(collapseExpand); - // workaround for firefox - $("body").css({overflow: "hidden"}); - } - $(window).on('load',function() { resizeHeight(treeview); }); -} -/* @license-end */ diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_0.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_0.js deleted file mode 100644 index 9c4e6b4..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_0.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['board_0',['board',['../class_tic_tac_toe_window.html#ac5767923f6cfdd1cdc0e38646817c0ec',1,'TicTacToeWindow']]], - ['board_5fsize_1',['BOARD_SIZE',['../_tic_tac_toe_window_8cpp.html#ad61312467c560853b884baba85ccb6cc',1,'TicTacToeWindow.cpp']]], - ['board_5fx_2',['BOARD_X',['../_tic_tac_toe_window_8cpp.html#a734171bf86d25d8fea97ec3db770f339',1,'TicTacToeWindow.cpp']]], - ['board_5fy_3',['BOARD_Y',['../_tic_tac_toe_window_8cpp.html#a7a25c54899aa5eb9067fa355bd0fd2f0',1,'TicTacToeWindow.cpp']]], - ['button_5fheight_4',['BUTTON_HEIGHT',['../_tic_tac_toe_window_8cpp.html#a3b3ba52cbf88acec5e16bc4637e77007',1,'TicTacToeWindow.cpp']]], - ['button_5fwidth_5',['BUTTON_WIDTH',['../_tic_tac_toe_window_8cpp.html#a5abca8d83548cc8db6c91b204fc0fc3e',1,'TicTacToeWindow.cpp']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_1.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_1.js deleted file mode 100644 index 5ee50af..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_1.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['cb_5fquit_0',['cb_quit',['../class_tic_tac_toe_window.html#af06d97a6bc5af57d20496efef4b42205',1,'TicTacToeWindow']]], - ['cb_5freset_1',['cb_reset',['../class_tic_tac_toe_window.html#a721a06d7b66e4891e1c4e4714828e9e4',1,'TicTacToeWindow']]], - ['cell_5fsize_2',['CELL_SIZE',['../_tic_tac_toe_window_8cpp.html#afb719a6797676ba986f056e63fa45a25',1,'TicTacToeWindow.cpp']]], - ['check_5fdraw_3',['check_draw',['../class_tic_tac_toe_window.html#a3ecf87bb2c63d9173859ffc791dba65a',1,'TicTacToeWindow']]], - ['check_5fwinner_4',['check_winner',['../class_tic_tac_toe_window.html#af31e8259796b4c713695f76a2e9ebbb4',1,'TicTacToeWindow']]], - ['current_5fplayer_5',['current_player',['../class_tic_tac_toe_window.html#ae1d2eddf2ec46d88ec2850088bf83801',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_2.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_2.js deleted file mode 100644 index baca892..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['draw_5fboard_0',['draw_board',['../class_tic_tac_toe_window.html#aea9364e6964b4d713db301e1dca05870',1,'TicTacToeWindow']]], - ['draw_5fmarks_1',['draw_marks',['../class_tic_tac_toe_window.html#a80d700fab549c892da6454ddf134e73f',1,'TicTacToeWindow']]], - ['draw_5fwinning_5fline_2',['draw_winning_line',['../class_tic_tac_toe_window.html#ad6b36f228408151798ccf6f93ae6bb9c',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_3.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_3.js deleted file mode 100644 index 6787f05..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['font_5fsize_0',['FONT_SIZE',['../_tic_tac_toe_window_8cpp.html#a36f8b4b0227f9dac9b5018b20c9a1f51',1,'TicTacToeWindow.cpp']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_4.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_4.js deleted file mode 100644 index 9573636..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['game_5fover_0',['game_over',['../class_tic_tac_toe_window.html#a43bc194a5b454fdd4e586b29862ead48',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_5.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_5.js deleted file mode 100644 index cb3fc35..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['handle_5fclick_0',['handle_click',['../class_tic_tac_toe_window.html#a7e59cd0a04b03284ce8a95ae104a40a0',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_6.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_6.js deleted file mode 100644 index 91d457d..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['last_5fplayer_0',['last_player',['../class_tic_tac_toe_window.html#afacdc2b25347aec3b74b3a0a89cf121b',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_7.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_7.js deleted file mode 100644 index 6e458bb..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['main_0',['main',['../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main.cpp']]], - ['main_2ecpp_1',['main.cpp',['../main_8cpp.html',1,'']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_8.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_8.js deleted file mode 100644 index f443a5b..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_8.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['play_0',['play',['../class_tic_tac_toe_window.html#a02a67ddb17bb56a4e34ce07b75d4c4c8',1,'TicTacToeWindow']]], - ['play_5ftick_5ftack_5ftoe_1',['play_tick_tack_toe',['../main_8cpp.html#adfe9299470a3da06f80456efb1e52945',1,'main.cpp']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_9.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_9.js deleted file mode 100644 index 6511a11..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['quit_5fbutton_0',['quit_button',['../class_tic_tac_toe_window.html#ac85e0fda6ce6f20bfad83a38cf7d6b40',1,'TicTacToeWindow']]], - ['quit_5fbutton_5fx_1',['QUIT_BUTTON_X',['../_tic_tac_toe_window_8cpp.html#a907d240438ef5a233d89f060d2ab7ce6',1,'TicTacToeWindow.cpp']]], - ['quit_5fbutton_5fy_2',['QUIT_BUTTON_Y',['../_tic_tac_toe_window_8cpp.html#a7c67ea62ace270bfbc30fa241530f5f9',1,'TicTacToeWindow.cpp']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_a.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_a.js deleted file mode 100644 index c3a41e3..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_a.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['reset_5fbutton_0',['reset_button',['../class_tic_tac_toe_window.html#aa984f2d95bc444451acfb242a0cd3644',1,'TicTacToeWindow']]], - ['reset_5fbutton_5fx_1',['RESET_BUTTON_X',['../_tic_tac_toe_window_8cpp.html#a46907144aa852e2450a4784f7bd67702',1,'TicTacToeWindow.cpp']]], - ['reset_5fbutton_5fy_2',['RESET_BUTTON_Y',['../_tic_tac_toe_window_8cpp.html#a65f9c1ca2be2ebd241cba5b02ae39514',1,'TicTacToeWindow.cpp']]], - ['reset_5fgame_3',['reset_game',['../class_tic_tac_toe_window.html#a256a8423cb3c6e7b6e3ca6251866867d',1,'TicTacToeWindow']]], - ['result_5ftext_4',['result_text',['../class_tic_tac_toe_window.html#a98f8a4942b7eb70471c720297c492925',1,'TicTacToeWindow']]], - ['result_5ftext_5fx_5',['RESULT_TEXT_X',['../_tic_tac_toe_window_8cpp.html#ae32dfc3a976f735ff01c1757ba107610',1,'TicTacToeWindow.cpp']]], - ['result_5ftext_5fy_6',['RESULT_TEXT_Y',['../_tic_tac_toe_window_8cpp.html#aba7c1f86d23ea3fad3d8099789a51311',1,'TicTacToeWindow.cpp']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_b.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_b.js deleted file mode 100644 index 17b0d26..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_b.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['tictactoewindow_0',['TicTacToeWindow',['../class_tic_tac_toe_window.html',1,'TicTacToeWindow'],['../class_tic_tac_toe_window.html#a2fa1df2b5d6d7f69eef48cd28d588562',1,'TicTacToeWindow::TicTacToeWindow()']]], - ['tictactoewindow_2ecpp_1',['TicTacToeWindow.cpp',['../_tic_tac_toe_window_8cpp.html',1,'']]], - ['tictactoewindow_2eh_2',['TicTacToeWindow.h',['../_tic_tac_toe_window_8h.html',1,'']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_c.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_c.js deleted file mode 100644 index dac93d1..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/all_c.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['winning_5fline_0',['winning_line',['../class_tic_tac_toe_window.html#a0fde7a5bc88317c24139a2a997f49b0e',1,'TicTacToeWindow']]], - ['write_5fresult_5fto_5ffile_1',['write_result_to_file',['../class_tic_tac_toe_window.html#a87e9e26b5d34f5bd3cadee4e2778df3e',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/classes_0.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/classes_0.js deleted file mode 100644 index bed3446..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/classes_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['tictactoewindow_0',['TicTacToeWindow',['../class_tic_tac_toe_window.html',1,'']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/close.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/search/close.svg deleted file mode 100644 index 337d6cc..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/close.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/files_0.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/files_0.js deleted file mode 100644 index 695b4fd..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/files_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/files_1.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/files_1.js deleted file mode 100644 index 6c30e31..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/files_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['tictactoewindow_2ecpp_0',['TicTacToeWindow.cpp',['../_tic_tac_toe_window_8cpp.html',1,'']]], - ['tictactoewindow_2eh_1',['TicTacToeWindow.h',['../_tic_tac_toe_window_8h.html',1,'']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_0.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_0.js deleted file mode 100644 index 3cc2582..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['cb_5fquit_0',['cb_quit',['../class_tic_tac_toe_window.html#af06d97a6bc5af57d20496efef4b42205',1,'TicTacToeWindow']]], - ['cb_5freset_1',['cb_reset',['../class_tic_tac_toe_window.html#a721a06d7b66e4891e1c4e4714828e9e4',1,'TicTacToeWindow']]], - ['check_5fdraw_2',['check_draw',['../class_tic_tac_toe_window.html#a3ecf87bb2c63d9173859ffc791dba65a',1,'TicTacToeWindow']]], - ['check_5fwinner_3',['check_winner',['../class_tic_tac_toe_window.html#af31e8259796b4c713695f76a2e9ebbb4',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_1.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_1.js deleted file mode 100644 index baca892..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['draw_5fboard_0',['draw_board',['../class_tic_tac_toe_window.html#aea9364e6964b4d713db301e1dca05870',1,'TicTacToeWindow']]], - ['draw_5fmarks_1',['draw_marks',['../class_tic_tac_toe_window.html#a80d700fab549c892da6454ddf134e73f',1,'TicTacToeWindow']]], - ['draw_5fwinning_5fline_2',['draw_winning_line',['../class_tic_tac_toe_window.html#ad6b36f228408151798ccf6f93ae6bb9c',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_2.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_2.js deleted file mode 100644 index cb3fc35..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['handle_5fclick_0',['handle_click',['../class_tic_tac_toe_window.html#a7e59cd0a04b03284ce8a95ae104a40a0',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_3.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_3.js deleted file mode 100644 index 8abf631..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['main_0',['main',['../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main.cpp']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_4.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_4.js deleted file mode 100644 index f443a5b..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['play_0',['play',['../class_tic_tac_toe_window.html#a02a67ddb17bb56a4e34ce07b75d4c4c8',1,'TicTacToeWindow']]], - ['play_5ftick_5ftack_5ftoe_1',['play_tick_tack_toe',['../main_8cpp.html#adfe9299470a3da06f80456efb1e52945',1,'main.cpp']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_5.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_5.js deleted file mode 100644 index 6d64820..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['reset_5fgame_0',['reset_game',['../class_tic_tac_toe_window.html#a256a8423cb3c6e7b6e3ca6251866867d',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_6.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_6.js deleted file mode 100644 index d2dfc6a..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['tictactoewindow_0',['TicTacToeWindow',['../class_tic_tac_toe_window.html#a2fa1df2b5d6d7f69eef48cd28d588562',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_7.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_7.js deleted file mode 100644 index cbf9998..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/functions_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['write_5fresult_5fto_5ffile_0',['write_result_to_file',['../class_tic_tac_toe_window.html#a87e9e26b5d34f5bd3cadee4e2778df3e',1,'TicTacToeWindow']]] -]; diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag.svg deleted file mode 100644 index ffb6cf0..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_d.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_d.svg deleted file mode 100644 index 4122773..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_d.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_sel.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_sel.svg deleted file mode 100644 index 553dba8..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_sel.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_seld.svg b/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_seld.svg deleted file mode 100644 index c906f84..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/mag_seld.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/search/search.css b/templates/_folder_Projects/tic-tac-toe/docs/html/search/search.css deleted file mode 100644 index a53214f..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/search.css +++ /dev/null @@ -1,286 +0,0 @@ -/*---------------- Search Box */ - -#MSearchBox { - position: absolute; - right: 5px; -} -/*---------------- Search box styling */ - -.SRPage * { - font-weight: normal; - line-height: normal; -} - -dark-mode-toggle { - margin-left: 5px; - display: flex; - float: right; -} - -#MSearchBox { - display: inline-block; - white-space : nowrap; - background: var(--search-background-color); - border-radius: 0.65em; - box-shadow: var(--search-box-shadow); - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - width: 20px; - height: 19px; - background-image: var(--search-magnification-select-image); - margin: 0 0 0 0.3em; - padding: 0; -} - -#MSearchSelectExt { - display: inline-block; - vertical-align: middle; - width: 10px; - height: 19px; - background-image: var(--search-magnification-image); - margin: 0 0 0 0.5em; - padding: 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: var(--search-foreground-color); - outline: none; - font-family: var(--font-family-search); - -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 { - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: var(--search-active-color); -} - - - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid var(--search-filter-border-color); - background-color: var(--search-filter-background-color); - 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 var(--font-family-search); - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: var(--font-family-monospace); - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: var(--search-filter-foreground-color); - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: var(--search-filter-foreground-color); - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: var(--search-filter-highlight-text-color); - background-color: var(--search-filter-highlight-bg-color); - 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 var(--search-results-border-color); - background-color: var(--search-results-background-color); - z-index:10000; - width: 300px; - height: 400px; - overflow: auto; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -div.SRPage { - margin: 5px 2px; - background-color: var(--search-results-background-color); -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - font-size: 8pt; - 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: var(--font-family-search); -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: var(--font-family-search); -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: var(--nav-gradient-active-image-parent); - 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/templates/_folder_Projects/tic-tac-toe/docs/html/search/search.js b/templates/_folder_Projects/tic-tac-toe/docs/html/search/search.js deleted file mode 100644 index 666af01..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/search/search.js +++ /dev/null @@ -1,694 +0,0 @@ -/* - @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 - */ -const SEARCH_COOKIE_NAME = ''+'search_grp'; - -const searchResults = new SearchResults(); - -/* A class handling everything associated with the search panel. - - Parameters: - name - The name of the global variable that will be - storing this instance. Is needed to be able to set timeouts. - resultPath - path to use for external files -*/ -function SearchBox(name, resultsPath, extension) { - if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } - if (!extension || extension == "") { extension = ".html"; } - - function getXPos(item) { - let x = 0; - if (item.offsetWidth) { - while (item && item!=document.body) { - x += item.offsetLeft; - item = item.offsetParent; - } - } - return x; - } - - function getYPos(item) { - let y = 0; - if (item.offsetWidth) { - while (item && item!=document.body) { - y += item.offsetTop; - item = item.offsetParent; - } - } - return y; - } - - // ---------- Instance variables - this.name = name; - this.resultsPath = resultsPath; - this.keyTimeout = 0; - this.keyTimeoutLength = 500; - this.closeSelectionTimeout = 300; - this.lastSearchValue = ""; - this.lastResultsPage = ""; - this.hideTimeout = 0; - this.searchIndex = 0; - this.searchActive = false; - this.extension = extension; - - // ----------- DOM Elements - - this.DOMSearchField = () => document.getElementById("MSearchField"); - this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); - this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); - this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); - this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); - this.DOMSearchClose = () => document.getElementById("MSearchClose"); - this.DOMSearchBox = () => document.getElementById("MSearchBox"); - - // ------------ Event Handlers - - // Called when focus is added or removed from the search field. - this.OnSearchFieldFocus = function(isActive) { - this.Activate(isActive); - } - - this.OnSearchSelectShow = function() { - const searchSelectWindow = this.DOMSearchSelectWindow(); - const searchField = this.DOMSearchSelect(); - - const left = getXPos(searchField); - const top = getYPos(searchField) + searchField.offsetHeight; - - // show search selection popup - searchSelectWindow.style.display='block'; - searchSelectWindow.style.left = left + 'px'; - searchSelectWindow.style.top = top + 'px'; - - // stop selection hide timer - if (this.hideTimeout) { - clearTimeout(this.hideTimeout); - this.hideTimeout=0; - } - return false; // to avoid "image drag" default event - } - - this.OnSearchSelectHide = function() { - this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), - this.closeSelectionTimeout); - } - - // Called when the content of the search field is changed. - this.OnSearchFieldChange = function(evt) { - if (this.keyTimeout) { // kill running timer - clearTimeout(this.keyTimeout); - this.keyTimeout = 0; - } - - const e = evt ? evt : window.event; // for IE - if (e.keyCode==40 || e.keyCode==13) { - if (e.shiftKey==1) { - this.OnSearchSelectShow(); - const win=this.DOMSearchSelectWindow(); - for (let i=0;i do a search - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) { - const 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) { - e.stopPropagation(); - 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 - const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - const code = searchValue.toLowerCase().charCodeAt(0); - let idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair - idxChar = searchValue.substr(0, 2); - } - - let jsFile; - let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) { - const hexCode=idx.toString(16); - jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; - } - - const loadJS = function(url, impl, loc) { - const scriptTag = document.createElement('script'); - scriptTag.src = url; - scriptTag.onload = impl; - scriptTag.onreadystatechange = impl; - loc.appendChild(scriptTag); - } - - const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - const domSearchBox = this.DOMSearchBox(); - const domPopupSearchResults = this.DOMPopupSearchResults(); - const domSearchClose = this.DOMSearchClose(); - const resultsPath = this.resultsPath; - - const handleResults = function() { - document.getElementById("Loading").style.display="none"; - if (typeof searchData !== 'undefined') { - createResults(resultsPath); - document.getElementById("NoMatches").style.display="none"; - } - - if (idx!=-1) { - searchResults.Search(searchValue); - } else { // no file with search results => force empty search results - searchResults.Search('===='); - } - - if (domPopupSearchResultsWindow.style.display!='block') { - domSearchClose.style.display = 'inline-block'; - let left = getXPos(domSearchBox) + 150; - let top = getYPos(domSearchBox) + 20; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - const maxWidth = document.body.clientWidth; - const maxHeight = document.body.clientHeight; - let width = 300; - if (left<10) left=10; - if (width+left+8>maxWidth) width=maxWidth-left-8; - let height = 400; - if (height+top+8>maxHeight) height=maxHeight-top-8; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResultsWindow.style.height = height + 'px'; - } - } - - if (jsFile) { - loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); - } else { - handleResults(); - } - - this.lastSearchValue = searchValue; - } - - // -------- 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'; - this.searchActive = true; - } else if (!isActive) { // directly remove the panel - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - this.DOMSearchField().value = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults() { - - function convertToId(search) { - let result = ''; - for (let i=0;i. - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) { - const parentElement = document.getElementById(id); - let 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) { - const 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); - - const resultRows = document.getElementsByTagName("div"); - let matches = 0; - - let i = 0; - while (i < resultRows.length) { - const row = resultRows.item(i); - if (row.className == "SRResult") { - let 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) { - let focusItem; - for (;;) { - const 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) { - let focusItem; - for (;;) { - const 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) { - const e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) { // Up - const newIndex = itemIndex-1; - let focusItem = this.NavPrev(newIndex); - if (focusItem) { - let child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') { // children visible - let n=0; - let tmpElem; - for (;;) { // 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 - document.getElementById("MSearchField").focus(); - } - } else if (this.lastKey==40) { // Down - const newIndex = itemIndex+1; - let focusItem; - const item = document.getElementById('Item'+itemIndex); - const 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 - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } else if (this.lastKey==37) { // Left - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } else if (this.lastKey==27) { // Escape - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } else if (this.lastKey==13) { // Enter - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) { - const 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) { - const 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 - const newIndex = childIndex+1; - let 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 - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } else if (this.lastKey==13) { // Enter - return true; - } - return false; - } -} - -function createResults(resultsPath) { - - 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); - } - - const results = document.getElementById("SRResults"); - results.innerHTML = ''; - searchData.forEach((elem,index) => { - const id = elem[0]; - const srResult = document.createElement('div'); - srResult.setAttribute('id','SR_'+id); - setClassAttr(srResult,'SRResult'); - const srEntry = document.createElement('div'); - setClassAttr(srEntry,'SREntry'); - const srLink = document.createElement('a'); - srLink.setAttribute('id','Item'+index); - setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); - setClassAttr(srLink,'SRSymbol'); - srLink.innerHTML = elem[1][0]; - srEntry.appendChild(srLink); - if (elem[1].length==2) { // single result - srLink.setAttribute('href',resultsPath+elem[1][1][0]); - srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); - if (elem[1][1][1]) { - srLink.setAttribute('target','_parent'); - } else { - srLink.setAttribute('target','_blank'); - } - const srScope = document.createElement('span'); - setClassAttr(srScope,'SRScope'); - srScope.innerHTML = elem[1][1][2]; - srEntry.appendChild(srScope); - } else { // multiple results - srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); - const srChildren = document.createElement('div'); - setClassAttr(srChildren,'SRChildren'); - for (let c=0; c-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/splitbard.png b/templates/_folder_Projects/tic-tac-toe/docs/html/splitbard.png deleted file mode 100644 index 8367416d757fd7b6dc4272b6432dc75a75abd068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/sync_off.png b/templates/_folder_Projects/tic-tac-toe/docs/html/sync_off.png deleted file mode 100644 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/sync_on.png b/templates/_folder_Projects/tic-tac-toe/docs/html/sync_on.png deleted file mode 100644 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/tab_a.png b/templates/_folder_Projects/tic-tac-toe/docs/html/tab_a.png deleted file mode 100644 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/tab_ad.png b/templates/_folder_Projects/tic-tac-toe/docs/html/tab_ad.png deleted file mode 100644 index e34850acfc24be58da6d2fd1ccc6b29cc84fe34d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/tab_s.png b/templates/_folder_Projects/tic-tac-toe/docs/html/tab_s.png deleted file mode 100644 index ab478c95b67371d700a20869f7de1ddd73522d50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/tab_sd.png b/templates/_folder_Projects/tic-tac-toe/docs/html/tab_sd.png deleted file mode 100644 index 757a565ced4730f85c833fb2547d8e199ae68f19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% diff --git a/templates/_folder_Projects/tic-tac-toe/docs/html/tabs.css b/templates/_folder_Projects/tic-tac-toe/docs/html/tabs.css deleted file mode 100644 index 7fa4268..0000000 --- a/templates/_folder_Projects/tic-tac-toe/docs/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.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:var(--nav-menu-button-color);-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:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.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:var(--nav-menu-toggle-color);-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:var(--nav-menu-background-color)}.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:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);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:var(--nav-gradient-image);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:var(--nav-text-normal-color) 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:var(--nav-separator-image);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:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) 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 var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-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 var(--nav-menu-foreground-color);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:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);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 var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) 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:var(--nav-gradient-image)}.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:var(--nav-menu-background-color)}} diff --git a/templates/_folder_Projects/tic-tac-toe/game_results.txt b/templates/_folder_Projects/tic-tac-toe/game_results.txt deleted file mode 100644 index 86de3f4..0000000 --- a/templates/_folder_Projects/tic-tac-toe/game_results.txt +++ /dev/null @@ -1,57 +0,0 @@ -The game is a draw! -The game is a draw! -Player O wins! -Player O wins! -Player X wins! -The game is a draw! -The game is a draw! -Player O wins! -Player O wins! -The game is a draw! -The game is a draw! -Player O wins! -Player O wins! -The game is a draw! -Player O wins! -Player O wins! -Player X wins! -Player O wins! -Player X wins! -Player X wins! -Player O wins! -Player O wins! -Player X wins! -Player X wins! -Player O wins! -The game is a draw! -Player O wins! -Player X wins! -The game is a draw! -The game is a draw! -Player X wins! -Player X wins! -The game is a draw! -The game is a draw! -The game is a draw! -Player O wins! -Player O wins! -Player X wins! -Player O wins! -Player O wins! -Player O wins! -Player X wins! -The game is a draw! -Player O wins! -Player X wins! -The game is a draw! -The game is a draw! -Player O wins! -Player X wins! -Player X wins! -Player X wins! -Player X wins! -Player X wins! -Player X wins! -Player X wins! -Player X wins! -Player O wins! diff --git a/templates/_folder_Projects/tic-tac-toe/main.cpp b/templates/_folder_Projects/tic-tac-toe/main.cpp deleted file mode 100644 index 8ccdd43..0000000 --- a/templates/_folder_Projects/tic-tac-toe/main.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @file main.cpp - * @brief Entry point for the Tic Tac Toe game. - * - * @details This file uses the following libraries and resources: - * - TicTacToeWindow.h for the game window class - */ - -#include "TicTacToeWindow.h" - -/** - * @brief Initializes and starts the Tic Tac Toe game. - */ -void play_tick_tack_toe() { - int x = 100; ///< X-coordinate of the window. - int y = 50; ///< Y-coordinate of the window. - int width = 640; ///< Width of the window. - int height = 660; ///< Height of the window. - std::string title = "Tic Tac Toe"; ///< Title of the game window. - - TicTacToeWindow game(x, y, width, height, title); - game.play(); -} - -/** - * @brief Main function, starts the game. - * @return int Exit status. - */ -int main() { - play_tick_tack_toe(); - return 0; -}