main_win.h
author hegyi
Tue, 03 Jan 2006 17:30:22 +0000
branchgui
changeset 103 3a263e57e1d9
parent 97 23f0afd1a323
child 104 623ae8ed0877
permissions -rw-r--r--
Coding of Algorithms has begun, but code is really-really ugly yet.
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@103
    30
  std::set< AlgoWin* > aws;
hegyi@103
    31
ladanyi@6
    32
public:
hegyi@96
    33
  
hegyi@96
    34
  ///Constructor of the \ref NoteBookTab. It creates the menu and the \ref GraphDisplayerCanvas on which the graph will be drawn.
ladanyi@6
    35
  ///\param title is the title of the window
ladanyi@68
    36
  MainWin();
ladanyi@53
    37
hegyi@96
    38
  void set_tabtitle(std::string);
ladanyi@6
    39
ladanyi@6
    40
  ///ActionGroup for menu
ladanyi@6
    41
  Glib::RefPtr<Gtk::ActionGroup> ag;
ladanyi@6
    42
ladanyi@6
    43
  ///UIManager for menu
ladanyi@6
    44
  Glib::RefPtr<Gtk::UIManager> uim;
ladanyi@6
    45
hegyi@96
    46
  void readFile(const std::string &);
ladanyi@6
    47
hegyi@50
    48
  ///Tooltips
hegyi@50
    49
  Gtk::Tooltips tooltips;
hegyi@50
    50
hegyi@96
    51
  //Call-backs of buttons
hegyi@96
    52
ladanyi@6
    53
  ///Callback for 'FileNew' action.
ladanyi@6
    54
  virtual void newFile();
ladanyi@6
    55
  ///Callback for 'FileOpen' action.
ladanyi@6
    56
  virtual void openFile();
ladanyi@6
    57
  ///Callback for 'FileSave' action.
ladanyi@6
    58
  virtual void saveFile();
ladanyi@6
    59
  ///Callback for 'FileSaveAs' action.
ladanyi@6
    60
  virtual void saveFileAs();
ladanyi@53
    61
  ///Callback for 'Close' action.
ladanyi@53
    62
  virtual void close();
hegyi@94
    63
hegyi@96
    64
  //Toolbar
hegyi@96
    65
  virtual void zoomIn();
hegyi@96
    66
  virtual void zoomOut();
hegyi@96
    67
  virtual void zoomFit();
hegyi@96
    68
  virtual void zoom100();
hegyi@94
    69
hegyi@96
    70
  virtual void createMapWin();
hegyi@94
    71
hegyi@103
    72
  virtual void createAlgoWin(int);
hegyi@103
    73
  virtual void deRegisterAlgoWin(AlgoWin *);
hegyi@103
    74
  virtual void updateAlgoWins();
hegyi@103
    75
hegyi@96
    76
  virtual void changeEditorialTool(int);
hegyi@94
    77
hegyi@96
    78
  virtual void createNewMapWinAfterSignal(NoteBookTab *, bool);
hegyi@96
    79
  virtual void createNewMapWin();
hegyi@96
    80
hegyi@96
    81
  //Notebook handlers
hegyi@96
    82
  ///Callback for 'FileNewTab' action.
hegyi@96
    83
  virtual void newTab();
hegyi@97
    84
  virtual void closeTab();
hegyi@96
    85
  virtual void onChangeTab(GtkNotebookPage*, guint);
hegyi@96
    86
  virtual void onCloseTab();
hegyi@96
    87
hegyi@96
    88
ladanyi@6
    89
};
ladanyi@6
    90
ladanyi@6
    91
#endif //MAIN_WIN_H