// Fill out your copyright notice in the Description page of Project Settings. #include "JournalWidget.h" #include "JournalPage.h" #include "utils_functions.h" void UJournalWidget::NativeConstruct() { Super::NativeConstruct(); //UJournalPage* page = NewObject(); //journal_pages.Add(page); //current_number_of_pages = journal_pages.Num(); //current_page_number = 0; } void UJournalWidget::next_page() { if (current_page_number + 1 < max_pages) { current_page_number++; } } void UJournalWidget::previous_page() { if (current_page_number - 1 >= 0) { current_page_number--; } } void UJournalWidget::go_to_page(int page_number) { current_page_number = page_number; } void UJournalWidget::remove_page(int page_number) { if (page_number < current_number_of_pages) { journal_pages.RemoveAt(page_number); current_number_of_pages = journal_pages.Num(); } } TArray UJournalWidget::get_current_page_entries_names() { if (current_page_number < current_number_of_pages) { return journal_pages[current_page_number]->get_all_entries_names(); } return TArray(); } FString UJournalWidget::get_entry_description(FString entry_name) { if (current_page_number < current_number_of_pages) { return journal_pages[current_page_number]->get_entry_description(entry_name); } return FString(); } void UJournalWidget::clear_journal() { journal_pages.Empty(); UJournalPage page = UJournalPage(); journal_pages.Add(&page); current_number_of_pages = journal_pages.Num(); } void UJournalWidget::add_to_journal(FString item_name, FString item_description) { for (int i = 0; i < current_number_of_pages; i++) { if (journal_pages[i]->get_number_of_entries() < journal_pages[i]->max_page_entries) { //utils_functions::debug_print("added item to page"); journal_pages[i]->add_entry(item_name, item_description); return; } } UJournalPage* page = NewObject(); page->add_entry(item_name, item_description); journal_pages.Add(page); current_number_of_pages = journal_pages.Num(); return; } void UJournalWidget::print_current_page() { if (current_page_number < current_number_of_pages) { for (FString entry_name : journal_pages[current_page_number]->get_all_entries_names()) { utils_functions::debug_print(TCHAR_TO_ANSI(*entry_name)); FString entry_description = journal_pages[current_page_number]->get_entry_description(entry_name); utils_functions::debug_print(TCHAR_TO_ANSI(*entry_description)); } } return; } int UJournalWidget::add_page() { UJournalPage* page = NewObject(); journal_pages.Add(page); current_number_of_pages = journal_pages.Num(); return current_number_of_pages; } int UJournalWidget::get_current_page_number() { return current_page_number; }