/** @file | |
Declares filebuffer interface functions. | |
Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved. <BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef _LIB_FILE_BUFFER_H_ | |
#define _LIB_FILE_BUFFER_H_ | |
#include "TextEditorTypes.h" | |
/** | |
Initialization function for FileBuffer. | |
@param EFI_SUCCESS The initialization was successful. | |
@param EFI_LOAD_ERROR A default name could not be created. | |
@param EFI_OUT_OF_RESOURCES A memory allocation failed. | |
**/ | |
EFI_STATUS | |
FileBufferInit ( | |
VOID | |
); | |
/** | |
Cleanup function for FileBuffer. | |
@retval EFI_SUCCESS The cleanup was successful. | |
**/ | |
EFI_STATUS | |
FileBufferCleanup ( | |
VOID | |
); | |
/** | |
Refresh the screen with whats in the buffer. | |
@retval EFI_SUCCESS The refresh was successful. | |
@retval EFI_LOAD_ERROR There was an error finding what to write. | |
**/ | |
EFI_STATUS | |
FileBufferRefresh ( | |
VOID | |
); | |
/** | |
Dispatch input to different handler | |
@param[in] Key The input key. One of: | |
ASCII KEY | |
Backspace/Delete | |
Return | |
Direction key: up/down/left/right/pgup/pgdn | |
Home/End | |
INS | |
@retval EFI_SUCCESS The dispatch was done successfully. | |
@retval EFI_LOAD_ERROR The dispatch was not successful. | |
@retval EFI_OUT_OF_RESOURCES A memory allocation failed. | |
**/ | |
EFI_STATUS | |
FileBufferHandleInput ( | |
IN CONST EFI_INPUT_KEY *Key | |
); | |
/** | |
Backup function for FileBuffer. Only backup the following items: | |
Mouse/Cursor position | |
File Name, Type, ReadOnly, Modified | |
Insert Mode | |
This is for making the file buffer refresh as few as possible. | |
@retval EFI_SUCCESS The backup operation was successful. | |
**/ | |
EFI_STATUS | |
FileBufferBackup ( | |
VOID | |
); | |
/** | |
Set the cursor position according to FileBuffer.DisplayPosition. | |
@retval EFI_SUCCESS The operation was successful. | |
**/ | |
EFI_STATUS | |
FileBufferRestorePosition ( | |
VOID | |
); | |
/** | |
Set FileName field in FileBuffer. | |
@param Str The file name to set. | |
@retval EFI_SUCCESS The filename was successfully set. | |
@retval EFI_OUT_OF_RESOURCES A memory allocation failed. | |
@retval EFI_INVALID_PARAMETER Str is not a valid filename. | |
**/ | |
EFI_STATUS | |
FileBufferSetFileName ( | |
IN CONST CHAR16 *Str | |
); | |
/** | |
Read a file from disk into the FileBuffer. | |
@param[in] FileName The filename to read. | |
@param[in] Recover TRUE if is for recover mode, no information printouts. | |
@retval EFI_SUCCESS The load was successful. | |
@retval EFI_LOAD_ERROR The load failed. | |
@retval EFI_OUT_OF_RESOURCES A memory allocation failed. | |
@retval EFI_INVALID_PARAMETER FileName is a directory. | |
**/ | |
EFI_STATUS | |
FileBufferRead ( | |
IN CONST CHAR16 *FileName, | |
IN CONST BOOLEAN Recover | |
); | |
/** | |
Save lines in FileBuffer to disk | |
@param[in] FileName The file name for writing. | |
@retval EFI_SUCCESS Data was written. | |
@retval EFI_LOAD_ERROR | |
@retval EFI_OUT_OF_RESOURCES There were not enough resources to write the file. | |
**/ | |
EFI_STATUS | |
FileBufferSave ( | |
CONST CHAR16 *FileName | |
); | |
/** | |
According to cursor's file position, adjust screen display | |
@param[in] NewFilePosRow The row of file position ( start from 1 ). | |
@param[in] NewFilePosCol The column of file position ( start from 1 ). | |
**/ | |
VOID | |
FileBufferMovePosition ( | |
IN CONST UINTN NewFilePosRow, | |
IN CONST UINTN NewFilePosCol | |
); | |
/** | |
Cut current line out and return a pointer to it. | |
@param[out] CutLine Upon a successful return pointer to the pointer to | |
the allocated cut line. | |
@retval EFI_SUCCESS The cut was successful. | |
@retval EFI_NOT_FOUND There was no selection to cut. | |
@retval EFI_OUT_OF_RESOURCES A memory allocation failed. | |
**/ | |
EFI_STATUS | |
FileBufferCutLine ( | |
OUT EFI_EDITOR_LINE **CutLine | |
); | |
/** | |
Paste a line into line list. | |
@retval EFI_SUCCESS The paste was successful. | |
@retval EFI_OUT_OF_RESOURCES A memory allocation failed. | |
**/ | |
EFI_STATUS | |
FileBufferPasteLine ( | |
VOID | |
); | |
/** | |
Search string from current position on in file | |
@param[in] Str The search string. | |
@param[in] Offset The offset from current position. | |
@retval EFI_SUCCESS The operation was successful. | |
@retval EFI_NOT_FOUND The string Str was not found. | |
**/ | |
EFI_STATUS | |
FileBufferSearch ( | |
IN CONST CHAR16 *Str, | |
IN CONST UINTN Offset | |
); | |
/** | |
Replace SearchLen characters from current position on with Replace. | |
This will modify the current buffer at the current position. | |
@param[in] Replace The string to replace. | |
@param[in] SearchLen Search string's length. | |
@retval EFI_SUCCESS The operation was successful. | |
@retval EFI_OUT_OF_RESOURCES A memory allocation failed. | |
**/ | |
EFI_STATUS | |
FileBufferReplace ( | |
IN CONST CHAR16 *Replace, | |
IN CONST UINTN SearchLen | |
); | |
/** | |
Search and replace operation. | |
@param[in] SearchStr The string to search for. | |
@param[in] ReplaceStr The string to replace with. | |
@param[in] Offset The column to start at. | |
**/ | |
EFI_STATUS | |
FileBufferReplaceAll ( | |
IN CHAR16 *SearchStr, | |
IN CHAR16 *ReplaceStr, | |
IN UINTN Offset | |
); | |
/** | |
Move the mouse cursor position. | |
@param[in] TextX The new x-coordinate. | |
@param[in] TextY The new y-coordinate. | |
**/ | |
VOID | |
FileBufferAdjustMousePosition ( | |
IN CONST INT32 TextX, | |
IN CONST INT32 TextY | |
); | |
/** | |
Set the modified state to TRUE. | |
**/ | |
VOID | |
FileBufferSetModified ( | |
VOID | |
); | |
#endif |