void _moo_window_set_remember_size (GtkWindow *window, const char *prefs_key, int default_width, int default_height, gboolean remember_position) { PositionInfo *pinfo; g_return_if_fail (prefs_key != NULL); pinfo = (PositionInfo*) g_object_get_data (G_OBJECT (window), "moo-position-info"); if (pinfo) g_signal_handlers_disconnect_by_func (window, (gpointer) configure_event, pinfo); pinfo = g_new0 (PositionInfo, 1); pinfo->key_maximized = moo_prefs_make_key (prefs_key, "maximized", NULL); pinfo->key_width = moo_prefs_make_key (prefs_key, "width", NULL); pinfo->key_height = moo_prefs_make_key (prefs_key, "height", NULL); pinfo->key_x = moo_prefs_make_key (prefs_key, "x", NULL); pinfo->key_y = moo_prefs_make_key (prefs_key, "y", NULL); pinfo->remember_position = remember_position; moo_prefs_create_key (pinfo->key_maximized, MOO_PREFS_STATE, G_TYPE_BOOLEAN, FALSE); moo_prefs_create_key (pinfo->key_width, MOO_PREFS_STATE, G_TYPE_INT, default_width); moo_prefs_create_key (pinfo->key_height, MOO_PREFS_STATE, G_TYPE_INT, default_height); if (remember_position) { moo_prefs_create_key (pinfo->key_x, MOO_PREFS_STATE, G_TYPE_INT, G_MAXINT); moo_prefs_create_key (pinfo->key_y, MOO_PREFS_STATE, G_TYPE_INT, G_MAXINT); } g_object_set_data_full (G_OBJECT (window), "moo-position-info", pinfo, (GDestroyNotify) position_info_free); set_initial_size (window, pinfo); g_signal_connect (window, "configure-event", G_CALLBACK (configure_event), pinfo); }
/* Note: if compiling with Win32 be sure to use /subsystem:windows and * /entry:mainCRTStartup */ int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowPosition(0,0); glutInitWindowSize(INIT_WIN_W, INIT_WIN_H); disp_win = glutCreateWindow("QuasiPseudoSorta FlightSim"); glutDisplayFunc(display); glutKeyboardFunc(keyfunc); glutMouseFunc(mouse_button); glutMotionFunc(track_motion); glutReshapeFunc(reshape); glutVisibilityFunc(vis); /* don't do idle things if they aren't seen */ set_initial_size(INIT_WIN_W, INIT_WIN_H, INIT_AE_WIN_W, INIT_AE_WIN_H); init_look(); spin_init(); scene_init(); glutSetWindow(disp_win); glutMainLoop(); return 0; /* we'll never get here, of course */ }