main_win.h
author hegyi
Thu, 05 Jan 2006 12:30:09 +0000
branchgui
changeset 108 bf355fd6563e
parent 104 623ae8ed0877
child 114 0ace7edbb06f
permissions -rw-r--r--
Several changes. \n If new map is added to mapstorage it emits signal with the name of the new map. This was important, because from now on not only tha mapwin should be updated. \n Furthermore algobox gets a pointer to mapstorage instead of only the mapnames from it. This is important because without it it would be complicated to pass all of the required maps to algobox.
ladanyi@6
     1
// -*- C++ -*- //
ladanyi@6
     2
ladanyi@6
     3
#ifndef MAIN_WIN_H
ladanyi@6
     4
#define MAIN_WIN_H
ladanyi@6
     5
ladanyi@53
     6
#include "all_include.h"
hegyi@103
     7
#include "algowin.h"
ladanyi@53
     8
#include "map_win.h"
ladanyi@53
     9
#include "new_map_win.h"
hegyi@96
    10
#include "nbtab.h"
ladanyi@6
    11
#include <libgnomecanvasmm.h>
ladanyi@6
    12
#include <libgnomecanvasmm/polygon.h>
ladanyi@6
    13
hegyi@96
    14
ladanyi@6
    15
///This class is the main window of GUI.
ladanyi@6
    16
///It has menus, but the main part of it is the canvas.
ladanyi@6
    17
class MainWin : public Gtk::Window
ladanyi@6
    18
{
hegyi@96
    19
  ///Container
hegyi@96
    20
  Gtk::VBox vbox;
hegyi@96
    21
hegyi@96
    22
  Gtk::Notebook notebook;
hegyi@96
    23
hegyi@96
    24
  int active_tool;
hegyi@96
    25
hegyi@96
    26
  int active_tab;
hegyi@96
    27
  std::vector<NoteBookTab *> tabs;
hegyi@96
    28
  std::vector<std::string> tabnames;
hegyi@96
    29
hegyi@104
    30
  std::map<std::string, int> strinst;
hegyi@104
    31
hegyi@103
    32
  std::set< AlgoWin* > aws;
hegyi@103
    33
ladanyi@6
    34
public:
hegyi@96
    35
  
hegyi@96
    36
  ///Constructor of the \ref NoteBookTab. It creates the menu and the \ref GraphDisplayerCanvas on which the graph will be drawn.
ladanyi@6
    37
  ///\param title is the title of the window
ladanyi@68
    38
  MainWin();
ladanyi@53
    39
hegyi@96
    40
  void set_tabtitle(std::string);
ladanyi@6
    41
ladanyi@6
    42
  ///ActionGroup for menu
ladanyi@6
    43
  Glib::RefPtr<Gtk::ActionGroup> ag;
ladanyi@6
    44
ladanyi@6
    45
  ///UIManager for menu
ladanyi@6
    46
  Glib::RefPtr<Gtk::UIManager> uim;
ladanyi@6
    47
hegyi@96
    48
  void readFile(const std::string &);
ladanyi@6
    49
hegyi@50
    50
  ///Tooltips
hegyi@50
    51
  Gtk::Tooltips tooltips;
hegyi@50
    52
hegyi@96
    53
  //Call-backs of buttons
hegyi@96
    54
ladanyi@6
    55
  ///Callback for 'FileNew' action.
ladanyi@6
    56
  virtual void newFile();
ladanyi@6
    57
  ///Callback for 'FileOpen' action.
ladanyi@6
    58
  virtual void openFile();
ladanyi@6
    59
  ///Callback for 'FileSave' action.
ladanyi@6
    60
  virtual void saveFile();
ladanyi@6
    61
  ///Callback for 'FileSaveAs' action.
ladanyi@6
    62
  virtual void saveFileAs();
ladanyi@53
    63
  ///Callback for 'Close' action.
ladanyi@53
    64
  virtual void close();
hegyi@94
    65
hegyi@96
    66
  //Toolbar
hegyi@96
    67
  virtual void zoomIn();
hegyi@96
    68
  virtual void zoomOut();
hegyi@96
    69
  virtual void zoomFit();
hegyi@96
    70
  virtual void zoom100();
hegyi@94
    71
hegyi@96
    72
  virtual void createMapWin();
hegyi@94
    73
hegyi@103
    74
  virtual void createAlgoWin(int);
hegyi@103
    75
  virtual void deRegisterAlgoWin(AlgoWin *);
hegyi@106
    76
  virtual void updateAlgoWinTabs();
hegyi@106
    77
  virtual void updateAlgoWinMaps(AlgoWin *, std::string);
hegyi@103
    78
hegyi@96
    79
  virtual void changeEditorialTool(int);
hegyi@94
    80
hegyi@96
    81
  virtual void createNewMapWinAfterSignal(NoteBookTab *, bool);
hegyi@96
    82
  virtual void createNewMapWin();
hegyi@96
    83
hegyi@96
    84
  //Notebook handlers
hegyi@96
    85
  ///Callback for 'FileNewTab' action.
hegyi@96
    86
  virtual void newTab();
hegyi@97
    87
  virtual void closeTab();
hegyi@96
    88
  virtual void onChangeTab(GtkNotebookPage*, guint);
hegyi@96
    89
  virtual void onCloseTab();
hegyi@96
    90
hegyi@96
    91
ladanyi@6
    92
};
ladanyi@6
    93
ladanyi@6
    94
#endif //MAIN_WIN_H