CEBL  2.1
Tab.hpp
Go to the documentation of this file.
1 /*
2 * CEBL : CSU EEG Brain-Computer Interface Lab
3 *
4 * Author: Jeshua Bratman - jeshuabratman@gmail.com
5 *
6 * This file is part of CEBL.
7 *
8 * CEBL is free software; you can redistribute it and/or modify it.
9 * We only ask that if you use our code that you cite the source in
10 * your project or publication.
11 *
12 * EEG Group (www.cs.colostate.edu/eeg)
13 * Department of Computer Science
14 * Colorado State University
15 *
16 */
17 
27 #ifndef TAB_H
28 #define TAB_H
29 
30 #include "CEBLViewGTK.hpp"
31 #include "TextUtils.hpp"
32 
33 using std::string;
34 
35 
36 class Tab
37 {
38  protected:
39 
42 
44  GtkWidget *container;
45 
47  string title;
48 
51 
53  void TabAdd(GtkWidget *, bool expand, bool fill, int padding);
54 
56  void TabAdd(GtkWidget *);
57 
59  void TabFrameAdd(GtkWidget *, const char * title = "", bool expand = false, bool fill = false);
60 
62  GtkWidget *TabFrameCreate(GtkWidget * widget, const char * title="");
63 
65  void TabRemove(GtkWidget *);
66 
67  public:
68  // Constructors / Destructors
69  Tab(string title, GtkWidget * notebook, CEBLViewGTK * view);
70  virtual ~Tab();
71 
73  string GetTitle();
74 
76  GtkWidget *GetContainer();
77 
79  CEBLViewGTK *getView() { return view; }
80 
81 
83  virtual void updateView() = 0;
85  virtual void updateModel() = 0;
87  virtual void onHide() {}
89  virtual void onShow() {}
90 
91 };
92 #endif
93