bool onProcessMessage(ui::Message* msg) override { switch (msg->type()) { case ui::kOpenMessage: load_window_pos(this, "UndoHistory"); m_ctx->addObserver(this); m_ctx->documents().addObserver(this); if (m_ctx->activeDocument()) { m_frame = m_ctx->activeSite().frame(); attachDocument( static_cast<app::Document*>(m_ctx->activeDocument())); } break; case ui::kCloseMessage: save_window_pos(this, "UndoHistory"); if (m_document) detachDocument(); m_ctx->documents().removeObserver(this); m_ctx->removeObserver(this); break; } return app::gen::UndoHistory::onProcessMessage(msg); }
void handle_events(platform::Locator *services) { auto game_state = (GameState*)services->memory.permanent_memory; for (auto &event : services->events) { if (event.type == SDL_KEYUP && event.key.keysym.scancode ==SDL_SCANCODE_1) { std::cout<<"\nRed"; game_state->color.r = (float)(!game_state->color.r); } if (event.type == SDL_KEYUP && event.key.keysym.scancode == SDL_SCANCODE_2) { std::cout<<"\nGreen"; game_state->color.g = (float)(!game_state->color.g); } if (event.type == SDL_KEYUP && event.key.keysym.scancode == SDL_SCANCODE_3) { std::cout<<"\nBlue"; game_state->color.b = (float)(!game_state->color.b); } if(event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_MOVED) { save_window_pos(event.window.data1,event.window.data2); } if(event.type == SDL_KEYUP && event.key.keysym.scancode == SDL_SCANCODE_SPACE) { static bool line_mode = false; line_mode = !line_mode; if(line_mode)glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); else glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } if(event.type == SDL_KEYUP && event.key.keysym.scancode == SDL_SCANCODE_W) { game_state->box_size += 5; } else if(event.type == SDL_KEYUP && event.key.keysym.scancode == SDL_SCANCODE_S) { game_state->box_size -= 5; } if(event.type == SDL_KEYUP && event.key.keysym.scancode == SDL_SCANCODE_A) { game_state->box_stride -= 1; } else if(event.type == SDL_KEYUP && event.key.keysym.scancode == SDL_SCANCODE_D) { game_state->box_stride += 1; } } }
/* gfx_gdi_exit: */ static void gfx_gdi_exit(struct BITMAP *bmp) { _enter_critical(); _enter_gfx_critical(); if (bmp) { save_window_pos(); clear_bitmap(bmp); } /* stop timer */ remove_int(render_proc); CloseHandle(vsync_event); /* disconnect from the system driver */ win_gfx_driver = NULL; /* destroy dirty lines array */ _AL_FREE(gdi_dirty_lines); gdi_dirty_lines = NULL; /* destroy screen surface */ _AL_FREE(screen_surf); gdi_screen = NULL; /* destroy mouse bitmaps */ if (wgdi_mouse_sprite) { destroy_bitmap(wgdi_mouse_sprite); wgdi_mouse_sprite = NULL; destroy_bitmap(mouse_frontbuffer); mouse_frontbuffer = NULL; destroy_bitmap(mouse_backbuffer); mouse_backbuffer = NULL; } _exit_gfx_critical(); /* before restoring video mode, hide window */ set_display_switch_mode(SWITCH_PAUSE); system_driver->restore_console_state(); restore_window_style(); _exit_critical(); }