⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui.h

📁 一个很好的SDL建立应用程序界面的例子
💻 H
字号:
/* * GUI interface for Picstart Plus programmer * Copyright (C) 2004 by Jeffery L. Post * theposts<AT>pacbell<DOT>net * * gui.h - Header File * * Version 0.0.8 - 08/01/04 * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License as published by *	the Free Software Foundation; either version 2 of the License, or *	(at your option) any later version. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *	GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */#ifndef	_GUI_H_#define	_GUI_H_//#define	MSS			// test for memory leaks and other problems in Linux//#include	<mss.h>#ifndef	_WIDGETS_H_#include	"widgets.h"#endif#define	bool	int#ifndef FALSE#define	FALSE	0#endif#ifndef TRUE#define	TRUE	1#endif// Defined Constants#define	VERSION		0#define	MAJORREV		0#define	MINORREV		8#define	BETA			0	// for beta test versions#define	byte		unsigned char#define	WINDOW_X_POSITION		20#define	WINDOW_Y_POSITION		20#define	KB_DELAY			250	// key repeat start delay#define	KB_INTERVAL		50		// key repeat interval#define	FN_LEN	128#define	NUMBER_MENUS	7#define	TEXT_ROWS		18#define	TEXT_COLS		86#define	ROW_HEIGHT	(FONT_HEIGHT + 4)#define	SCREEN_PIXEL_WIDTH	(FONT_WIDTH * TEXT_COLS)#define	SCREEN_PIXEL_HEIGHT	(ROW_HEIGHT * NUMBER_MENUS + FONT_HEIGHT * TEXT_ROWS + 2 + FONT_HEIGHT)#define	SCREEN_PIXEL_DEPTH	16#define	outputWinX		0#define	outputWinY		(ROW_HEIGHT * NUMBER_MENUS - NUMBER_MENUS + 3)#define	outputWinW		(SCREEN_PIXEL_WIDTH - SLIDERBUTTONSIZE - 2)#define	outputWinH		(SCREEN_PIXEL_HEIGHT - outputWinY - 1)#define	outputWidth		(outputWinW / FONT_WIDTH)#define	outputHeight	(outputWinH / FONT_HEIGHT)#define	MAX_CFG_LEN	32#define	PIC_PROGRAM_SIZE		(1024 * 256)	// 256KB max program size#define	MAX_EEPROM_DATA_SIZE	(1024 * 16)		// maximum size of any device's data memory#define	HELP_MENU_X				10#define	HELP_MENU_Y				4#define	HELP_X					(HELP_MENU_X + 70)#define	HELP_Y					16#define	USER_FILENAME_SIZE	64#define	MAX_LINE					1024#define	DISPLAY_LINES			16#define	OUTPUT_WIN_OFFSET		4#define	EDIT_BOX_SIZE			64// Prototypesextern void	initGUI(void);extern void	guiQuit(void);extern void	setSelectedDevice(char *name);extern void	showProgram(void);// Callback functionsextern void		AlertCB(SDL_Event *event, ALERT *ab);extern void		NoticeCB(SDL_Event *event, NOTICE *note);extern void		fileButtonCB(SDL_Event *event);extern void		enableButtonCB(SDL_Event *event);extern void		saveButtonCB(SDL_Event *event, MENU *m);extern void		saveAsButtonCB(SDL_Event *event, MENU *m);extern void		saveConfigButtonCB(SDL_Event *event);extern void		userFileCB(SDL_Event *event);extern void		userFileInputCB(SDL_Event *event, INPUTBOX *ib);extern void		userFileOkCB(SDL_Event *event);extern void		userFileCancelCB(SDL_Event *event);extern void		closeFileMenuCB(SDL_Event *event);extern void		editBoxCB(SDL_Event *event, INPUTBOX *ib);extern void		editBoxOkCB(SDL_Event *event);extern void		editBoxCancelCB(SDL_Event *event);extern void		openButtonCB(SDL_Event *event, MENU *m);extern void		portButtonCB(SDL_Event *event);extern void		port0ButtonCB(SDL_Event *event);extern void		port1ButtonCB(SDL_Event *event);extern void		port2ButtonCB(SDL_Event *event);extern void		port3ButtonCB(SDL_Event *event);extern void		portUSB0ButtonCB(SDL_Event *event);extern void		portUSB1ButtonCB(SDL_Event *event);extern void		portUSB2ButtonCB(SDL_Event *event);extern void		portUSB3ButtonCB(SDL_Event *event);extern void		closePortMenuCB(SDL_Event *event);extern void		selectDeviceCB(SDL_Event *event);extern void		readButtonCB(SDL_Event *event);extern void		programButtonCB(SDL_Event *event);extern void		verifyButtonCB(SDL_Event *event);extern void		blankButtonCB(SDL_Event *event);extern void		helpMenuCB(SDL_Event *event, BUTTON *b);extern void		aboutMenuCB(SDL_Event *event, BUTTON *b);extern void		helpButtonCB(SDL_Event *event);extern void		aboutButtonCB(SDL_Event *event);extern void		exitButtonCB(SDL_Event *event, MENU *m);extern void		configEditCB(SDL_Event *event);extern void		IdEditCB(SDL_Event *event);extern void		disVSliderCB(SDL_Event *event, VSLIDER *vs);extern void		outputWinCB(SDL_Event *event, TEXTBOX *tbox);extern void		displayLabelCB(SDL_Event *event);extern void		disasmCB(SDL_Event *event);extern void		logBoxCB(SDL_Event *event, CHECKBOX *cb);extern void		ispBoxCB(SDL_Event *event, CHECKBOX *cb);extern void		eraseButtonCB(SDL_Event *event);extern void		idSelectCB(SDL_Event *event);extern void		configSelectCB(SDL_Event *event);extern void		dataSelectCB(SDL_Event *event);extern void		cancelSelectCB(SDL_Event *event);extern void		programSelectCB(SDL_Event *event);extern void		erasePgmSelectCB(SDL_Event *event);extern void		eraseFlashSelectCB(SDL_Event *event);extern void		eraseDataSelectCB(SDL_Event *event);extern void		eraseIDSelectCB(SDL_Event *event);extern void		eraseConfigSelectCB(SDL_Event *event);extern void		cancelEraseSelectCB(SDL_Event *event);// Help menu callbacksextern void		OpenHelpCB(SDL_Event *event);extern void		CloseHelpMenu(SDL_Event *event, WIDGET *w);extern void		CloseMenuHelpCB(SDL_Event *event);extern void		ExitHelpCB(SDL_Event *event);extern void		CloseMenuHelpCB(SDL_Event *event);extern void		FileHelpCB(SDL_Event *event);extern void		SaveHelpCB(SDL_Event *event);extern void		SaveAsHelpCB(SDL_Event *event);extern void		SaveConfigHelpCB(SDL_Event *event);extern void		HelpHelpCB(SDL_Event *event);extern void		AboutHelpCB(SDL_Event *event);extern void		serialPortHelpCB(SDL_Event *event);extern void		enableHelpCB(SDL_Event *event);extern void		deviceHelpCB(SDL_Event *event);extern void		readHelpCB(SDL_Event *event);extern void		programHelpCB(SDL_Event *event);extern void		eraseHelpCB(SDL_Event *event);extern void		verifyHelpCB(SDL_Event *event);extern void		blankHelpCB(SDL_Event *event);extern void		configBitsHelpCB(SDL_Event *event);extern void		IdHelpCB(SDL_Event *event);extern void		DisasmHelpCB(SDL_Event *event);extern void		DisplayModeHelpCB(SDL_Event *event);// Global variablesextern bool		appQuit;							// lives in main.cextern char		nullString[];extern char		alertMessage[128];extern char		noticeMessage[256];extern VSLIDER	*disVSlider;extern SDL_Surface	*screen;							// main screenextern char				caption[];extern char				src[FN_LEN], dst[FN_LEN];	// file name buffersextern char				versionString[64];extern char				picFWversionString[64];extern char				IdText[];extern char				configText[];extern PIC_DEFINITION	*selectedPicDevice;extern CHECKBOX	*commDbgBox;extern bool			commdbg;extern CHECKBOX	*ISPBox;extern bool			ISPprog;extern char		configFileName[];extern char		configLine[MAX_CFG_LEN];extern char		serialPort[MAX_CFG_LEN];extern char		deviceType[MAX_CFG_LEN];extern time_t	file_mtime;						// input file modification timeextern char		src[FN_LEN];					// file name bufferextern char		fileStr[FN_LEN];				// the current file nameextern char		fileName[FN_LEN];				// base file nameextern char		fileExt[FN_LEN / 2];			// input file extensionextern char		programFileStr[FN_LEN];		// program file nameextern char		dataFileStr[FN_LEN];			// data file nameextern byte		dataWidthHi, dataWidthLo;	// width of program data wordextern byte		*picProgramData;				// buffer for PIC program dataextern byte		*picProgramTemp;				// extra buffer for verify programextern byte		*picDataBuffer;				// buffer for PIC data memoryextern byte		*picDataTemp;					// extra buffer for verify dataextern int		picProgramPos;					// slider position for program displayextern int		picProgramPcent;				// slider percent for program displayextern int		picProgramPC;					// display program locationextern int		picDataPos;						// slider position for data displayextern int		picDataPcent;					// slider percent for data displayextern int		picDataPC;						// display data locationextern int		picProgramSize;				// program memory size for current deviceextern int		picDataSize;					// data memory size for current deviceextern MENU			*menu1;						// main menuextern MENU			*menu2;						// main menuextern MENU			*filename;					// current file name menuextern LABEL		*filelabel;					// current file name labelextern VMENU		*fileMenu;					// file sub-menuextern VMENU		*regionMenu;extern BUTTON		*regionDataButton;extern BUTTON		*eraseRegionDataButton;extern char			regionTypeText[20];		// will be filled in by callbacksextern VMENU		*eraseRegionMenu;extern VMENU		*helpMenu;					// help screenextern VMENU		*aboutMenu;					// about screenextern VMENU		*portMenu;extern MENU			*picstartName;extern LABEL		*picstartVersion;extern BUTTON		*saveButton;extern BUTTON		*saveAsButton;extern BUTTON		*saveConfigButton;extern MENU			*statusMenu1;extern MENU			*statusMenu2;extern MENU			*statusMenu3;extern LABEL		*configTextLabel;extern LABEL		*configDataLabel;extern LABEL		*IdTextLabel;extern LABEL		*IdDataLabel;extern VMENU		*FileHelpMenu;extern VMENU		*OpenHelpMenu;extern VMENU		*SaveHelpMenu;extern VMENU		*SaveAsHelpMenu;extern VMENU		*SaveConfigHelpMenu;extern VMENU		*ExitHelpMenu;extern VMENU		*CloseMenuHelpMenu;extern VMENU		*HelpHelpMenu;extern VMENU		*AboutHelpMenu;extern VMENU		*serialPortHelpMenu;extern VMENU		*enableHelpMenu;extern VMENU		*deviceHelpMenu;extern VMENU		*readHelpMenu;extern VMENU		*programHelpMenu;extern VMENU		*eraseHelpMenu;extern VMENU		*verifyHelpMenu;extern VMENU		*blankHelpMenu;extern VMENU		*configBitsHelpMenu;extern VMENU		*IdHelpMenu;extern VMENU		*DisasmHelpMenu;extern VMENU		*DisplayHelpMenu;extern ALERT		*fileErrorAlert;extern VSLIDER		*disVSlider;extern TEXTBOX		*outputWin;					// window for output displayextern LABEL		*pmwLabel;					// program memory window labelextern LABEL		*dmwLabel;					// data memory window labelextern ALERT		*errorAlert;extern ALERT		*confirmAlert;extern ALERT		*confirmEraseAlert;extern ALERT		*connectAlert;extern WINDOW		*userFileNameWin;extern INPUTBOX	*userFileName;extern LABEL		*userFileNameLabel;extern BUTTON		*userFileNameOkButton;extern BUTTON		*userFileNameCancelButton;extern char			userFileNameBuffer[USER_FILENAME_SIZE];extern WINDOW		*editBoxWin;extern INPUTBOX	*editBox;extern LABEL		*editBoxLabel;extern BUTTON		*editBoxOkButton;extern BUTTON		*editBoxCancelButton;extern int			editWhich;extern char			editBoxBuffer[EDIT_BOX_SIZE];extern WINDOW		*connectWin;extern WINDOW		*readingWin;extern WINDOW		*writingWin;extern WINDOW		*erasingWin;extern WINDOW		*checkingWin;extern NOTICE		*blankCheckResultWin;extern NOTICE		*verifyResultWin;extern LABEL	*progLine0;extern LABEL	*progLine1;extern LABEL	*progLine2;extern LABEL	*progLine3;extern LABEL	*progLine4;extern LABEL	*progLine5;extern LABEL	*progLine6;extern LABEL	*progLine7;extern LABEL	*progLine8;extern LABEL	*progLine9;extern LABEL	*progLineA;extern LABEL	*progLineB;extern LABEL	*progLineC;extern LABEL	*progLineD;extern LABEL	*progLineE;extern LABEL	*progLineF;extern char	progData0[outputWidth];extern char	progData1[outputWidth];extern char	progData2[outputWidth];extern char	progData3[outputWidth];extern char	progData4[outputWidth];extern char	progData5[outputWidth];extern char	progData6[outputWidth];extern char	progData7[outputWidth];extern char	progData8[outputWidth];extern char	progData9[outputWidth];extern char	progDataA[outputWidth];extern char	progDataB[outputWidth];extern char	progDataC[outputWidth];extern char	progDataD[outputWidth];extern char	progDataE[outputWidth];extern char	progDataF[outputWidth];extern char	*progData[DISPLAY_LINES];#endif	// _GUI_H_// end of gui.h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -