コード例 #1
0
ファイル: cmd_undo_history.cpp プロジェクト: 4144/aseprite
  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);
  }
コード例 #2
0
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;
        }
	}
}
コード例 #3
0
ファイル: wgdi.c プロジェクト: dodamn/pkg-allegro4.2
/* 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();
}