home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / shell.pak / SHELLWIN.H < prev   
C/C++ Source or Header  |  1997-05-06  |  4KB  |  121 lines

  1. //----------------------------------------------------------------------------
  2. //  Project Shell
  3. //  Borland International
  4. //  Copyright ⌐ 1995, 1996 Borland International. All Rights Reserved.
  5. //
  6. //  SUBSYSTEM:    shell.exe Application
  7. //  FILE:         shellwin.h
  8. //  AUTHOR:       The OWL Team
  9. //
  10. //  OVERVIEW
  11. //  ~~~~~~~~
  12. //  Class definition for TShellWindow (TWindow).
  13. //
  14. //----------------------------------------------------------------------------
  15. #if !defined(shellwin_h)              // Sentry, use file only if it's not already included.
  16. #define shellwin_h
  17.  
  18. #include <owl/shellitm.h>
  19. #include <owl/contain.h>
  20.  
  21. #include "shellapp.rh"            // Definition of all resources.
  22.  
  23.  
  24. //{{TWindow = TShellWindow}}
  25. class TShellWindow : public TWindow {
  26.   public:
  27.     TShellWindow(TWindow* parent, TShellItem* item = 0,
  28.                 const char far* title = 0, TModule* module = 0);
  29.     virtual ~TShellWindow();
  30.  
  31. //{{ShellWindowVIRTUAL_BEGIN}}
  32.   public:
  33.     virtual void Paint(TDC& dc, bool erase, TRect& rect);
  34. //{{ShellWindowVIRTUAL_END}}
  35. //{{ShellWindowRSP_TBL_BEGIN}}
  36.   protected:
  37.     int  EvCreate(CREATESTRUCT far &);
  38.     void EvGetMinMaxInfo(MINMAXINFO far& minmaxinfo);
  39.     void EvSize(uint sizeType, TSize& size);
  40.     void EvLButtonUp(uint modKeys, TPoint& point);
  41.     void EvRButtonUp(uint modKeys, TPoint& point);
  42.     void EvLButtonDblClk(uint modKeys, TPoint& point);
  43.     void EvChar(uint key, uint repeatCount, uint flags);
  44. //{{ShellWindowRSP_TBL_END}}
  45. DECLARE_RESPONSE_TABLE(TShellWindow);
  46.     //
  47.     void TShellWindow::ComputeItemGrids();
  48.     void DrawIconTitle(TDC& dc, TString& name, int x, int y, int gridWidth);
  49.     void DrawLongWord(TDC& dc, int x, int y, int gridWidth, const char* begin, const char* end);
  50.     void DisplayProperties(TShellItem& item);
  51.     int ComputeItemsPerRow();
  52.     void OpenExec();
  53.     void DisplayShellExecuteError(int error, const char* itemName);
  54.     //
  55.     class ItemGrid {
  56.       public:
  57.         ItemGrid();
  58.         ItemGrid(TShellItem& item, const TRect& grid, const TPoint& iconPt,
  59.                  const TPoint& titlePt);
  60.         ItemGrid(const ItemGrid& source);
  61.         ItemGrid& operator =(const ItemGrid& source);
  62.         bool operator ==(const ItemGrid& rhs);
  63.         TShellItem Item;
  64.         TRect Grid;
  65.         TPoint IconPt;
  66.         TPoint TitlePt;
  67.     };
  68.     // Member Variables
  69.     enum Spacing { IconSpacingX = 2,
  70.                    IconSpacingY = 2
  71.     };
  72.     TShellItem Folder;
  73.     TArray<ItemGrid>* ItemGrids;
  74.     int SelectedItem;
  75.     int ClientRectWidth;
  76.     int ItemsPerRow;
  77. };    //{{TShellWindow}}
  78.  
  79. inline TShellWindow::ItemGrid::ItemGrid()
  80. {
  81. }
  82.  
  83. inline TShellWindow::ItemGrid::ItemGrid(TShellItem& item, const TRect& grid,
  84.                                        const TPoint& iconPt, const TPoint& titlePt)
  85. :
  86.   Item(item),
  87.   Grid(grid),
  88.   IconPt(iconPt),
  89.   TitlePt(titlePt)
  90. {
  91. }
  92.  
  93. inline TShellWindow::ItemGrid::ItemGrid(const ItemGrid& source)
  94. :
  95.   Item(source.Item),
  96.   Grid(source.Grid),
  97.   IconPt(source.IconPt),
  98.   TitlePt(source.TitlePt)
  99. {
  100. }
  101.  
  102. inline TShellWindow::ItemGrid& TShellWindow::ItemGrid::operator =(const ItemGrid& source)
  103. {
  104.   if (this != &source) {
  105.     Item = source.Item;
  106.     Grid = source.Grid;
  107.     IconPt = source.IconPt;
  108.     TitlePt = source.TitlePt;
  109.   }
  110.   return *this;
  111. }
  112.  
  113. inline bool TShellWindow::ItemGrid::operator ==(const ItemGrid& rhs)
  114. {
  115.   return this == &rhs || (Item == rhs.Item && Grid == rhs.Grid && IconPt ==
  116.                           rhs.IconPt && TitlePt == rhs.TitlePt);
  117. }
  118.  
  119. #endif  // shellwin_h sentry.
  120.  
  121.