Files
TencentOS-tiny/components/gui/STemWin/inc/CHOOSEFILE.h
2021-01-30 11:26:41 +08:00

145 lines
6.2 KiB
C

/*********************************************************************
* Portions COPYRIGHT 2016 STMicroelectronics *
* Portions SEGGER Microcontroller GmbH & Co. KG *
* Solutions for real time microcontroller applications *
**********************************************************************
* *
* (c) 1996 - 2015 SEGGER Microcontroller GmbH & Co. KG *
* *
* Internet: www.segger.com Support: support@segger.com *
* *
**********************************************************************
** emWin V5.32 - Graphical user interface for embedded applications **
All Intellectual Property rights in the Software belongs to SEGGER.
emWin is protected by international copyright laws. Knowledge of the
source code may not be used to write a similar product. This file may
only be used in accordance with the following terms:
The software has been licensed to STMicroelectronics International
N.V. a Dutch company with a Swiss branch and its headquarters in Plan-
les-Ouates, Geneva, 39 Chemin du Champ des Filles, Switzerland for the
purposes of creating libraries for ARM Cortex-M-based 32-bit microcon_
troller products commercialized by Licensee only, sublicensed and dis_
tributed under the terms and conditions of the End User License Agree_
ment supplied by STMicroelectronics International N.V.
Full source code is available at: www.segger.com
We appreciate your understanding and fairness.
----------------------------------------------------------------------
File : CHOOSEFILE.h
Purpose : File dialog interface
--------------------END-OF-HEADER-------------------------------------
*/
/**
******************************************************************************
* @attention
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
#ifndef CHOOSEFILE_H
#define CHOOSEFILE_H
#include "WM.h"
#if GUI_WINSUPPORT
#if defined(__cplusplus)
extern "C" { /* Make sure we have C-declarations in C++ programs */
#endif
/*********************************************************************
*
* Defines
*
**********************************************************************
*/
#define CHOOSEFILE_FINDFIRST 0
#define CHOOSEFILE_FINDNEXT 1
#define CHOOSEFILE_FLAG_DIRECTORY (1 << 0)
#ifndef CHOOSEFILE_MAXLEN
#define CHOOSEFILE_MAXLEN 256
#endif
#define CHOOSEFILE_BI_CANCEL 0
#define CHOOSEFILE_BI_OK 1
#define CHOOSEFILE_BI_UP 2
/*********************************************************************
*
* Types
*
**********************************************************************
*/
/*********************************************************************
*
* CHOOSEFILE_INFO
*/
typedef struct CHOOSEFILE_INFO CHOOSEFILE_INFO;
struct CHOOSEFILE_INFO {
int Cmd; // Command for GetData() function
int Id; // Id of pressed button (for internal use only)
const char * pMask; // Mask to be used for searching files
char * pName; // (for internal use only)
char * pExt; // (for internal use only)
char * pAttrib; // (for internal use only)
WM_TOOLTIP_HANDLE hToolTip; // (for internal use only)
U32 SizeL; // FileSize low word
U32 SizeH; // FileSize high word
U32 Flags; // File flags
char pRoot[CHOOSEFILE_MAXLEN]; // Buffer used internally and for passing result
int (* pfGetData)(CHOOSEFILE_INFO * pInfo); // Pointer to GetData() function
};
/*********************************************************************
*
* Functions
*
**********************************************************************
*/
WM_HWIN CHOOSEFILE_Create(WM_HWIN hParent, // Parent window
int xPos, // xPosition in window coordinates
int yPos, // yPosition in window coordinates
int xSize, // xSize in pixels
int ySize, // ySize in pixels
const char * apRoot[], // Pointers to root strings
int NumRoot, // Number of roots
int SelRoot, // Root to be selected at first
const char * sCaption, // Shown in title bar
int Flags, // Flags for FRAMEWINDOW
CHOOSEFILE_INFO * pInfo // Pointer to CHOOSEFILE_INFO structure
);
void CHOOSEFILE_Callback (WM_MESSAGE * pMsg);
void CHOOSEFILE_EnableToolTips (void);
void CHOOSEFILE_SetButtonText (WM_HWIN hWin, unsigned ButtonIndex, const char * pText);
void CHOOSEFILE_SetDefaultButtonText(unsigned ButtonIndex, const char * pText);
void CHOOSEFILE_SetDelim (char Delim);
void CHOOSEFILE_SetToolTips (const TOOLTIP_INFO * pInfo, int NumItems);
void CHOOSEFILE_SetTopMode (unsigned OnOff);
#if defined(__cplusplus)
}
#endif
#endif /* GUI_WINSUPPORT */
#endif /* CHOOSEFILE_H */