Esempio n. 1
0
/*
 * InventoryProc:  Subclassed window procedure for inventory area.
 */
long CALLBACK InventoryProc(HWND hwnd, UINT message, UINT wParam, LONG lParam)
{
    RECT r;
    HDC hdc;

    switch (message)
    {
    case WM_KEYDOWN:
        if (HANDLE_WM_KEYDOWN_BLAK(hwnd, wParam, lParam, InventoryKey) == True)
            return 0;
        break;

    case WM_ERASEBKGND:
        // Draw outside of inventory items
        // XXX
        hdc = (HDC) wParam;
        r.left = cols * INVENTORY_BOX_WIDTH;
        r.right = inventory_area.cx;
        r.top = 0;
        r.bottom = inventory_area.cy;
        if (has_scrollbar)
            r.right -= inventory_scrollbar_width;
        DrawWindowBackgroundColor(&inventory_bkgnd, hdc, &r, r.left + inventory_area.x, r.top + inventory_area.y,
                                  -1);

        r.left = 0;
        r.right = inventory_area.cx;
        if (has_scrollbar)
            r.right -= inventory_scrollbar_width;
        r.top = rows * INVENTORY_BOX_HEIGHT;
        r.bottom = inventory_area.cy;
        DrawWindowBackgroundColor(&inventory_bkgnd, hdc, &r, r.left + inventory_area.x, r.top + inventory_area.y,
                                  -1);
        return 1;

        HANDLE_MSG(hwnd, WM_LBUTTONDOWN, InventoryLButtonDown);
        HANDLE_MSG(hwnd, WM_RBUTTONDOWN, InventoryRButton);
        HANDLE_MSG(hwnd, WM_LBUTTONDBLCLK, InventoryLButtonDown);
        HANDLE_MSG(hwnd, WM_LBUTTONUP, InventoryLButtonUp);

    case WM_SETFOCUS:
        StatsDrawBorder();
        break;
    case WM_KILLFOCUS:
        StatsDrawBorder();
        InventoryReleaseCapture();
        break;
    }

    return CallWindowProc(lpfnDefProc, hwnd, message, wParam, lParam);
}
Esempio n. 2
0
/*
 * StatButtonProc:  Subclassed window procedure for stat group buttons
 */
long CALLBACK StatButtonProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	MSG msg;
	msg.hwnd = hwnd;
	msg.message = message;
	msg.wParam = wParam;
	msg.lParam = lParam;
	TooltipForwardMessage(&msg);

   switch (message)
   {
   case WM_ERASEBKGND:
     return 1;

   case WM_KEYDOWN:
      if (HANDLE_WM_KEYDOWN_BLAK(hwnd, wParam, lParam, StatInputKey) == True)
      	 return 0;
      break;

   case WM_SETFOCUS:
   case WM_KILLFOCUS:
      StatsDrawBorder();
      break;
   }
   return CallWindowProc(lpfnDefButtonProc, hwnd, message, wParam, lParam);
}
Esempio n. 3
0
/*
 * InterfaceRedrawModule:  Called when main window needs to be redrawn.
 */
void InterfaceRedrawModule(HDC hdc)
{
	UserAreaRedraw();
  InterfaceDrawElements(hdc);
  StatsDrawBorder();
  StatsMainRedraw();
  StatsDraw();
  if( StatsGetCurrentGroup() == STATS_INVENTORY )
  {
    InvalidateRect( GetHwndInv(), NULL, FALSE );
    ShowInventory(TRUE);
    InventoryRedraw();
  }
}
Esempio n. 4
0
/*
 * StatsListProc:  Subclassed window procedure for list box.
 */
long CALLBACK StatsListProc(HWND hwnd, UINT message, UINT wParam, LONG lParam)
{
   switch (message)
   {
   case WM_KEYDOWN:
      if (HANDLE_WM_KEYDOWN_BLAK(hwnd, wParam, lParam, StatListKey) == True)
      	 return 0;
      break;

      HANDLE_MSG(hwnd, WM_VSCROLL, StatsListVScroll);

   case WM_ERASEBKGND:
//		StatsClearArea();
	   return 1;

   case WM_LBUTTONDOWN:
      HANDLE_WM_LBUTTONDOWN(hwnd, wParam, lParam, StatsListLButton);
      return 1;        /* Don't select item under cursor */

   case WM_LBUTTONDBLCLK:		//	ajw
      HANDLE_WM_LBUTTONDBLCLK( hwnd, wParam, lParam, StatsListLButtonDblClk );
      return 1;

   case WM_RBUTTONDOWN:
      HANDLE_WM_RBUTTONDOWN(hwnd, wParam, lParam, StatsListRButton);
      return 0;        /* Don't select item under cursor */

   case WM_SETFOCUS:
   case WM_KILLFOCUS:
      StatsDrawBorder();
      break;

//	case WM_CTLCOLORSCROLLBAR:						// ajw
//		return (long)GetStockObject( BLACK_BRUSH );		//	xxx
   }
   return CallWindowProc(lpfnDefStatListProc, hwnd, message, wParam, lParam);
}