文件:
gui_windows.h
文件: gui_windows.c
文件: main.c
void gui_setDisplayFunction(void (*func)(void));
void gui_setReshapeFunction(void (*func)(int32 w, int32 h));
void gui_setKeyboardFunction(void (*func)(unsigned char key, int32 x, int32 y));
void gui_setMouseFunction(void (*func)(int32 button, int32 state, int32 x, int32 y));
void gui_setMotionFunction(void (*func)(int32 x, int32 y));
文件: gui_windows.c
static void (*mainWindowDisplayFunction)();
static void (*mainWindowReshapeFunction)(int32, int32);
static void (*mainWindowKeyboardFunction)(unsigned char, int32, int32);
static void (*mainWindowMouseFunction)(int32, int32, int32, int32);
static void (*mainWindowMotionFunction)(int32, int32);
void gui_setDisplayFunction(void (*func)(void))
{
mainWindowDisplayFunction = func;
}
void gui_setReshapeFunction(void (*func)(int32 w, int32 h))
{
mainWindowReshapeFunction = func;
}
void gui_setKeyboardFunction(void (*func)(unsigned char key, int32 x, int32 y))
{
mainWindowKeyboardFunction = func;
}
void gui_setMouseFunction(void (*func)(int32 button, int32 state, int32 x, int32 y))
{
mainWindowMouseFunction = func;
}
void gui_setMotionFunction(void (*func)(int32 x, int32 y))
{
mainWindowMotionFunction = func;
}
文件: main.c
#include <stdio.h>
#include <stdlib.h>
#include "define.h"
#include "gui.h"
void displayFunction(void)
{
//TODO
}
void reshapeFunction(int32 w, int32 h)
{
//TODO
}
void keyboardFunction(unsigned char key, int32 x, int32 y)
{
//TODO
}
void mouseFunction(int32 button, int32 state, int32 x, int32 y)
{
//TODO
}
void motionFunction(int32 x, int32 y)
{
//TODO
}
int main()
{
#ifndef DEBUG
freopen("log.txt", "w", stdout);
#endif
freopen("error.txt", "w", stderr);
gui_createMainWindow("ZPIC");
gui_setMainWindowSize(800, 600);
gui_setMainWindowToCenter();
gui_setDisplayFunction(displayFunction);
gui_setReshapeFunction(reshapeFunction);
gui_setKeyboardFunction(keyboardFunction);
gui_setMouseFunction(mouseFunction);
gui_setMotionFunction(motionFunction);
gui_mainLoop();
return 0;
}