summaryrefslogtreecommitdiff
path: root/dwr/hideable.hh
blob: aabf80701d8d9543e82f7c68a9557cef17cf78ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef __DWR_HIDEABLE_HH__
#define __DWR_HIDEABLE_HH__

#include "dw/core.hh"

namespace rtfl {

namespace dw {

class Hideable: public ::dw::core::Widget
{
   bool hidden, drawable;
   
protected:
   void sizeRequestImpl (::dw::core::Requisition *requisition);
   void getExtremesImpl (::dw::core::Extremes *extremes);

   virtual void sizeRequestImplImpl (::dw::core::Requisition *requisition) = 0;
   virtual void getExtremesImplImpl (::dw::core::Extremes *extremes) = 0;
   virtual void drawImpl (::dw::core::View *view, ::dw::core::Rectangle *area)
      =  0;

public:
   static int CLASS_ID;

   Hideable ();
   ~Hideable ();

   void draw (::dw::core::View *view, ::dw::core::Rectangle *area);

   void show ();
   void hide ();
};

} // namespace rtfl

} // namespace dw

#endif // __DWR_HIDEABLE_HH__