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 / toolbarbackend.h < prev    next >
C/C++ Source or Header  |  1998-04-23  |  2KB  |  104 lines

  1. // -*- C++ -*-
  2. /* This file is part of
  3.  * ======================================================
  4. *           LyX, The Document Processor
  5. *        Copyright (C) 1995 Matthias Ettrich
  6. *
  7. *           This file is Copyright (C) 1996-1998
  8. *           Lars Gullik Bj°nnes
  9. *
  10. *======================================================*/
  11.  
  12. #ifndef _TOOLBARBACKEND_H_
  13. #define _TOOLBARBACKEND_H_
  14.  
  15. #ifdef __GNUG__
  16. #pragma interface
  17. #endif
  18.  
  19. #include "lyxfunc.h"
  20. #include "lyxlex.h"
  21.  
  22. /** The GUI independant part of the toolbar code.
  23.     This holds enough information to build the visible toolbar.
  24. */
  25. class ToolbarBackend {
  26. public:
  27.     ///
  28.     ToolbarBackend()
  29.     {
  30.         reset();
  31.         init(); // set default toolbar.
  32.     }
  33.  
  34.     ///
  35.     ~ToolbarBackend() {
  36.     }
  37.     
  38.     ///
  39.     int get_toolbar_func(LString const & func);
  40.     
  41.         /// The special toolbar actions
  42.     enum  TOOLBARITEMS {
  43.         /// adds space between buttons in the toolbar
  44.         TOOL_SEPARATOR = -1,
  45.         /// a special combox insead of a button
  46.         TOOL_LAYOUTS = -2,
  47.         /// begin a new line of button (not working)
  48.         TOOL_NEWLINE = -3
  49.     };
  50.  
  51.     ///
  52.     void read(LyXLex&);
  53.     /// sets up the default toolbar
  54.     void init();
  55.  
  56.     /// add a new button to the toolbar.
  57.         void add(int, bool doclean=true);
  58.     ///
  59.     void clean();
  60. private:
  61.     ///
  62.     friend class Toolbar;
  63.     ///
  64.     enum tooltags_ {
  65.         TO_ADD = 1,
  66.         TO_ENDTOOLBAR,
  67.         TO_SEPARATOR,
  68.         TO_LAYOUTS,
  69.         TO_NEWLINE,
  70.         TO_LAST
  71.     };
  72.     
  73.     ///
  74.     struct toolbarFunc
  75.     {
  76.         ///
  77.         toolbarFunc *next;
  78.         ///
  79.         int action;
  80.         ///
  81.         LString help;
  82.         ///
  83.         toolbarFunc(){
  84.             next = NULL;
  85.             action = LFUN_NOACTION;
  86.         }
  87.         ///
  88.         ~toolbarFunc(){
  89.         }
  90.             
  91.     };
  92.  
  93.     /// a list containing all the buttons
  94.     toolbarFunc *toollist;
  95.  
  96.     /** more...
  97.      */
  98.     void reset(){
  99.         toollist = NULL;
  100.     }
  101. };
  102. #endif
  103.