📄 gui.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 + -