home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / dreamscape / examples / Dreamscape / Examples / PicViewer / h / viewer < prev   
Encoding:
Text File  |  1996-09-22  |  1.1 KB  |  54 lines

  1.  
  2. #ifndef picviewer_viewer_H
  3. #define picviewer_viewer_H
  4.  
  5. #include "clipboard.h"
  6. #include "graphic.h"
  7. #include "document.h"
  8. #include "docgraphic.h"
  9. #include "viewwindow.h"
  10. #include "scaleview.h"
  11. #include "saveas.h"
  12.  
  13. class PictureDocument: public Document, private DocumentRedrawable {
  14. public:
  15.   PictureDocument(Graphic *graphic);
  16.   virtual ~PictureDocument();
  17.  
  18.   Graphic *graphic;
  19.   DocumentGraphic doc_graphic;
  20.  
  21.   void redraw(const RedrawInfo &info) const;
  22. };
  23.  
  24. class PictureView: public ViewWindow, private ScaleViewHandler,
  25. private Saver, private SelectionSaver {
  26.   Window *window;
  27.   ScaleView *scale_window;
  28.   SaveAs *save_window;
  29.   ClipboardCopier copier;
  30.  
  31.   void scale_view(int scale);
  32.   void scale_to_fit();
  33.   void save(ostream &stream) const;
  34.   void save_selection(ostream &stream) const;
  35.  
  36.   CopyCommand copy_command;
  37.  
  38.   class NewViewCommand: public Command {
  39.     PictureDocument *doc;
  40.   public:
  41.     NewViewCommand(PictureDocument *d): doc(d) {}
  42.     void execute();
  43.   } new_view_command;
  44.  
  45. public:
  46.   PictureView(PictureDocument *document);
  47.   virtual ~PictureView();
  48.  
  49.   PictureDocument *document() const
  50.     { return (PictureDocument *) View::document(); }
  51. };
  52.  
  53. #endif
  54.