Пример #1
0
int window_get_arg(context_t *context, int min_arg, int window_arg_pos,
                   const char **window_arg) {
  if (context->argc < min_arg) {
    fprintf(stderr, "Too few arguments (got %d, minimum is %d)\n",
            context->argc, min_arg);
    return False;
  } else if (context->argc == min_arg) {
    //fprintf(stderr, "Using default arg\n");
    /* nothing, keep default */
  } else if (context->argc > min_arg) {
    if (is_command(context->argv[min_arg])) {
      //fprintf(stderr, "arg is command, using default\n");
      /* keep default */
    } else {
      /* got enough args, let's use the window you asked for */
      //fprintf(stderr, "got enough args\n");
      *window_arg = context->argv[window_arg_pos];
      consume_args(context, 1);
    }
  }

  if (!window_is_valid(context, *window_arg)) {
    fprintf(stderr, "Invalid window '%s'\n", *window_arg);
    return False;
  }

  return True;
} /* int window_get_arg(context_t *, int, int, char **, int *) */
Пример #2
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_set_caption(HWINDOW hw, const wchar_t* text)
{
  if( window_is_valid(hw) )
  {
    ::SetWindowTextW(hw->hwnd,text);
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #3
0
// updates the window
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_update(HWINDOW hw)
{
  if( window_is_valid(hw) )
  {
    ::UpdateWindow(hw->hwnd);
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #4
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_set_tag(HWINDOW hw, void* tag)
{
  if( window_is_valid(hw) )
  {
    hw->tag = tag;    
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #5
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_get_caption(HWINDOW hw, wchar_t* buf, unsigned buf_size)
{
  if( window_is_valid(hw) )
  {
   ::GetWindowTextW(hw->hwnd,buf,buf_size);
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #6
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_request_idle(HWINDOW hw)
{
  if( window_is_valid(hw) )
  {
    ::PostMessage(hw->hwnd, WM_IDLE, 0, 0);
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #7
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_move(HWINDOW hw, int x, int y, int w, int h)
{
  if( window_is_valid(hw) )
  {
    ::MoveWindow(hw->hwnd, x, y, w, h, TRUE);
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #8
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_destroy(HWINDOW hw)
{
  if( window_is_valid(hw) )
  {
    ::DestroyWindow(hw->hwnd);
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #9
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_get_tag(HWINDOW hw, void** ptag)
{
  if( !ptag )
    return GRAPHIN_BAD_PARAM;
  if( window_is_valid(hw) )
  {
    *ptag = hw->tag;    
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #10
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_set_timer(HWINDOW hw, unsigned ms, unsigned long id)
{
  if( window_is_valid(hw) )
  {
    if(ms)
      ::SetTimer(hw->hwnd, id, ms, 0);
    else
      ::KillTimer(hw->hwnd, id);
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #11
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_set_state(HWINDOW hw, WINDOW_STATE cmd)
{
  if( window_is_valid(hw) )
  {
    switch(cmd)
    {
      case WINDOW_SHOWN:     ::ShowWindow(hw->hwnd, SW_SHOW); break;
      case WINDOW_EXPANDED:  ::ShowWindow(hw->hwnd, SW_MAXIMIZE); break;
      case WINDOW_COLLAPSED: ::ShowWindow(hw->hwnd, SW_MINIMIZE); break;
      case WINDOW_HIDDEN:    ::ShowWindow(hw->hwnd, SW_HIDE); break;  
    }
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #12
0
// invalidates rect - set dirty area
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_invalidate(HWINDOW hw, int x, int y, int w, int h)
{
  if( window_is_valid(hw) )
  {
    if(w > 0 && h > 0)
    {
      agg::rect_i r( x, y, x + w, y + h );
      hw->dirty_area = hw->dirty_area.is_valid() ? agg::unite_rectangles(hw->dirty_area, r ):r;
      RECT rw;
      rw.left   = hw->dirty_area.x1;
      rw.right  = hw->dirty_area.x2;
      rw.top    = hw->dirty_area.y1;
      rw.bottom = hw->dirty_area.y2;
      ::InvalidateRect(hw->hwnd,&rw,FALSE);
    }
    return GRAPHIN_OK;
  }
  return GRAPHIN_FAILURE;
}
Пример #13
0
GRAPHIN_API GRAPHIN_RESULT GRAPHIN_CALL 
        window_get_state(HWINDOW hw, WINDOW_STATE* wst)
{
  if( window_is_valid(hw) )
  {
    WINDOWPLACEMENT wndpl = {0}; wndpl.length = sizeof(wndpl);
    if(GetWindowPlacement( hw->hwnd, &wndpl))
    {
      switch(wndpl.showCmd)
      {
          case SW_HIDE         : *wst = WINDOW_HIDDEN; break;
          case SW_SHOWMINIMIZED: *wst = WINDOW_COLLAPSED;  break;
          case SW_SHOWMAXIMIZED: *wst = WINDOW_EXPANDED;  break;
          case SW_SHOWNORMAL   : 
          default              : *wst = WINDOW_SHOWN;  break;
      }
      return GRAPHIN_OK;
    }
  }
  return GRAPHIN_FAILURE;
}
Пример #14
0
 inline bool window::is_valid()
 {
   return GRAPHIN_OK == window_is_valid( hwnd );
 }