DrawCaml
container.h
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 #include <X11/Xlib.h>
6 
7 #include "element.h"
8 // #include "window.h"
9 
10 using namespace std;
11 
15 enum class SLayout{FloatLayout, GridLayout, BorderLayout};
16 
20 class SContainer : public SElement {
21 private:
22  // Relevant for GridLayout
23  int _gridX = 1, _gridY = 1;
24  int _curGridPos = 0;
25  int _wSpace, _hSpace;
26 
27  void _updateBgColor();
28 
29 public:
33  SLayout mLayout;
37  vector<SElement*> mElements;
38 
39  string mBgColorStr = "white";
40  XColor mBgColor;
41 
42  SContainer(SLayout lay, int width=1, int height=1);
43 
47  void updateWin(SWindow* win);
51  virtual void draw(SWindow* win, int drawX, int drawY);
55  virtual void setSize(int sizeX, int sizeY);
59  void removeElem(SElement* elt);
63  void addElem(SElement* elt, int posX=-1, int posY=-1);
64 
68  void setBgColor(string bgColor);
69 };
Definition: container.h:20
SLayout mLayout
Definition: container.h:33
vector< SElement * > mElements
Definition: container.h:37
Definition: element.h:10
Definition: window.h:30