home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / lyx-0.13.2.tar.gz / lyx-0.13.2.tar / lyx-0.13.2 / src / insetref.h < prev    next >
C/C++ Source or Header  |  1998-04-23  |  2KB  |  86 lines

  1. // -*- C++ -*-
  2. /* This file is part of*
  3.  * ======================================================
  4.  *
  5.  *           LyX, The Document Processor
  6.  *      
  7.  *        Copyright (C) 1997 LyX Team (this file was created this year)
  8.  * 
  9.  *======================================================*/
  10.  
  11. #ifndef _INSET_REF_H
  12. #define _INSET_REF_H
  13.  
  14. #ifdef __GNUG__
  15. #pragma interface
  16. #endif
  17.  
  18. #include "insetcommand.h"
  19. #include "buffer.h"
  20.  
  21. struct LaTeXFeatures;
  22.  
  23. /** The reference inset  
  24.  */
  25. class InsetRef: public InsetCommand {
  26. public:
  27.         ///
  28.         enum Ref_Flags {
  29.         ///
  30.         REF,
  31.         ///
  32.         PAGE_REF
  33.     };
  34.     
  35.     ///
  36.     InsetRef(): InsetCommand("ref") { flag = InsetRef::REF; }
  37.     ///
  38.     InsetRef(LString const &, Buffer*);
  39.     ///
  40.     InsetRef(InsetCommand const&, Buffer*);
  41.     ///
  42.     ~InsetRef();
  43.         ///
  44.         Inset* Clone() { return new InsetRef (getCommand(), master); }
  45.     ///
  46.     Inset::Code LyxCode() const { return Inset::REF_CODE; }
  47.     ///
  48.     void Edit(int, int);
  49.     ///
  50.     unsigned char Editable() const {
  51.         return 1;
  52.     }
  53.         ///
  54.     bool Display() const { return false; }
  55.     ///
  56.     LString getScreenLabel() const;
  57.     ///
  58.     InsetRef::Ref_Flags getFlag() { return flag; }
  59.     ///
  60.     void setFlag(InsetRef::Ref_Flags f) { flag = f; }
  61.         ///
  62.         void gotoLabel();
  63.     ///
  64.     int Latex(FILE *file, signed char fragile);
  65.     ///
  66.     int Latex(LString &file, signed char fragile);
  67. private:
  68.     /// This function escapes 8-bit characters
  69.     LString escape(LString const &) const;
  70.     ///
  71.         Ref_Flags flag;
  72.         ///
  73.     Buffer *master;
  74. };
  75.  
  76.  
  77. inline
  78. void InsetRef::gotoLabel()
  79. {
  80.     if (master) {
  81.     master->gotoLabel(getContents());
  82.     }
  83. }
  84.  
  85. #endif
  86.