Beispiel #1
0
void shader_dlg_show(HWND parent_hwnd)
{
   const ui_window_t *window = ui_companion_driver_get_window_ptr();

   if (!IsWindowVisible(g_shader_dlg.window.hwnd))
   {
      if (parent_hwnd)
      {
         RECT parent_rect;
         GetWindowRect(parent_hwnd, &parent_rect);
         SetWindowPos(g_shader_dlg.window.hwnd, HWND_TOP,
               parent_rect.right, parent_rect.top,
               0, 0, SWP_NOSIZE | SWP_SHOWWINDOW);
      }
      else
         window->set_visible(&g_shader_dlg.window, true);

      shader_dlg_update_on_top_state();

      shader_dlg_params_reload();

   }

   window->set_focused(&g_shader_dlg.window);
}
Beispiel #2
0
void shader_dlg_show(HWND parent_hwnd)
{
   const video_driver_t* vid_drv;

   video_driver_get_ptr(&vid_drv);

   if(vid_drv != &video_gl)
      return;

   if (!IsWindowVisible(g_shader_dlg.hwnd))
   {
      if (parent_hwnd)
      {
         RECT parent_rect;
         GetWindowRect(parent_hwnd, &parent_rect);
         SetWindowPos(g_shader_dlg.hwnd, HWND_TOP, parent_rect.right, parent_rect.top,
               0, 0, SWP_NOSIZE | SWP_SHOWWINDOW);
      }
      else
         ShowWindow(g_shader_dlg.hwnd, SW_SHOW);

      shader_dlg_update_on_top_state();

      shader_dlg_params_reload();

   }

   SetFocus(g_shader_dlg.hwnd);
}
Beispiel #3
0
static LRESULT CALLBACK ShaderDlgWndProc(HWND hwnd, UINT message,
      WPARAM wparam, LPARAM lparam)
{
   int i, pos;
   struct video_shader* shader = video_shader_driver_get_current_shader();

   switch (message)
   {
      case WM_CREATE:
         break;

      case WM_CLOSE:
      case WM_DESTROY:
      case WM_QUIT:
         ShowWindow(g_shader_dlg.hwnd, 0);
         return 0;

      case WM_COMMAND:
         i = LOWORD(wparam);

         if (i == SHADER_DLG_CHECKBOX_ONTOP_ID)
         {
            shader_dlg_update_on_top_state();
            break;
         }

         if (i >= GFX_MAX_PARAMETERS)
            break;

         if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_CHECKBOX)
            break;

         if (SendMessage(g_shader_dlg.controls[i].checkbox.hwnd, BM_GETCHECK, 0, 0) == BST_CHECKED)
            shader->parameters[i].current = shader->parameters[i].maximum;
         else
            shader->parameters[i].current = shader->parameters[i].minimum;

         break;

      case WM_HSCROLL:
         i = GetWindowLong((HWND)lparam, GWL_ID);

         if (i >= GFX_MAX_PARAMETERS)
            break;

         if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_TRACKBAR)
            break;

         pos = (int)SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_GETPOS, 0, 0);
         shader->parameters[i].current = shader->parameters[i].minimum + pos * shader->parameters[i].step;

         shader_dlg_refresh_trackbar_label(i);
         break;

   }

   return DefWindowProc(hwnd, message, wparam, lparam);
}
Beispiel #4
0
void shader_dlg_show(HWND parent_hwnd)
{
   if (!IsWindowVisible(g_shader_dlg.hwnd))
   {
      if (parent_hwnd)
      {
         RECT parent_rect;
         GetWindowRect(parent_hwnd, &parent_rect);
         SetWindowPos(g_shader_dlg.hwnd, HWND_TOP, parent_rect.right, parent_rect.top,
               0, 0, SWP_NOSIZE | SWP_SHOWWINDOW);
      }
      else
         ShowWindow(g_shader_dlg.hwnd, SW_SHOW);

      shader_dlg_update_on_top_state();

      shader_dlg_params_reload();

   }

   SetFocus(g_shader_dlg.hwnd);
}
Beispiel #5
0
static LRESULT CALLBACK ShaderDlgWndProc(HWND hwnd, UINT message,
      WPARAM wparam, LPARAM lparam)
{
   int i, pos;
   const ui_window_t *window = ui_companion_driver_get_window_ptr();

   switch (message)
   {
      case WM_CREATE:
         break;

      case WM_CLOSE:
      case WM_DESTROY:
      case WM_QUIT:
         if (window)
            window->set_visible(&g_shader_dlg.window, false);
         return 0;

      case WM_COMMAND:
         i = LOWORD(wparam);

         if (i == SHADER_DLG_CHECKBOX_ONTOP_ID)
         {
            shader_dlg_update_on_top_state();
            break;
         }

         if (i >= GFX_MAX_PARAMETERS)
            break;

         if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_CHECKBOX)
            break;

         {
            video_shader_ctx_t shader_info;
            video_shader_driver_get_current_shader(&shader_info);

            if (SendMessage(g_shader_dlg.controls[i].checkbox.hwnd,
                     BM_GETCHECK, 0, 0) == BST_CHECKED)
               shader_info.data->parameters[i].current = 
                  shader_info.data->parameters[i].maximum;
            else
               shader_info.data->parameters[i].current = 
                  shader_info.data->parameters[i].minimum;
         }
         break;

      case WM_HSCROLL:
         {
            video_shader_ctx_t shader_info;
            video_shader_driver_get_current_shader(&shader_info);
            i = GetWindowLong((HWND)lparam, GWL_ID);

            if (i >= GFX_MAX_PARAMETERS)
               break;

            if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_TRACKBAR)
               break;

            pos = (int)SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_GETPOS, 0, 0);

            {

               shader_info.data->parameters[i].current = 
                  shader_info.data->parameters[i].minimum + pos * shader_info.data->parameters[i].step;
            }

            if (shader_info.data)
               shader_dlg_refresh_trackbar_label(i, &shader_info);
         }
         break;

   }

   return DefWindowProc(hwnd, message, wparam, lparam);
}