1 /********************************************************************************
2 *                                                                               *
3 *             M u l t i p l e   D o c u m e n t   B u t t o n                   *
4 *                                                                               *
5 *********************************************************************************
6 * Copyright (C) 1998,2006 by Jeroen van der Zijp.   All Rights Reserved.        *
7 *********************************************************************************
8 * This library is free software; you can redistribute it and/or                 *
9 * modify it under the terms of the GNU Lesser General Public                    *
10 * License as published by the Free Software Foundation; either                  *
11 * version 2.1 of the License, or (at your option) any later version.            *
12 *                                                                               *
13 * This library is distributed in the hope that it will be useful,               *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU             *
16 * Lesser General Public License for more details.                               *
17 *                                                                               *
18 * You should have received a copy of the GNU Lesser General Public              *
19 * License along with this library; if not, write to the Free Software           *
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.    *
21 *********************************************************************************
22 * $Id: FXMDIButton.h,v 1.16 2006/01/22 17:58:05 fox Exp $                       *
23 ********************************************************************************/
24 #ifndef FXMDIBUTTON_H
25 #define FXMDIBUTTON_H
26 
27 #ifndef FXBUTTON_H
28 #include "FXButton.h"
29 #endif
30 
31 namespace FX {
32 
33 class FXIcon;
34 
35 
36 /// MDI Delete button
37 class FXAPI FXMDIDeleteButton : public FXButton {
FXDECLARE(FXMDIDeleteButton)38   FXDECLARE(FXMDIDeleteButton)
39 protected:
40   FXMDIDeleteButton(){}
41 private:
42   FXMDIDeleteButton(const FXMDIDeleteButton&);
43   FXMDIDeleteButton &operator=(const FXMDIDeleteButton&);
44 public:
45   long onPaint(FXObject*,FXSelector,void*);
46 public:
47   /// Constructor
48   FXMDIDeleteButton(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=FRAME_RAISED,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
49   virtual FXint getDefaultWidth();
50   virtual FXint getDefaultHeight();
51   };
52 
53 
54 /// MDI Restore button
55 class FXAPI FXMDIRestoreButton : public FXButton {
FXDECLARE(FXMDIRestoreButton)56   FXDECLARE(FXMDIRestoreButton)
57 protected:
58   FXMDIRestoreButton(){}
59 private:
60   FXMDIRestoreButton(const FXMDIRestoreButton&);
61   FXMDIRestoreButton &operator=(const FXMDIRestoreButton&);
62 public:
63   long onPaint(FXObject*,FXSelector,void*);
64 public:
65   /// Constructor
66   FXMDIRestoreButton(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=FRAME_RAISED,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
67   virtual FXint getDefaultWidth();
68   virtual FXint getDefaultHeight();
69   };
70 
71 
72 /// MDI Maximize button
73 class FXAPI FXMDIMaximizeButton : public FXButton {
FXDECLARE(FXMDIMaximizeButton)74   FXDECLARE(FXMDIMaximizeButton)
75 protected:
76   FXMDIMaximizeButton(){}
77 private:
78   FXMDIMaximizeButton(const FXMDIMaximizeButton&);
79   FXMDIMaximizeButton &operator=(const FXMDIMaximizeButton&);
80 public:
81   long onPaint(FXObject*,FXSelector,void*);
82 public:
83   /// Constructor
84   FXMDIMaximizeButton(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=FRAME_RAISED,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
85   virtual FXint getDefaultWidth();
86   virtual FXint getDefaultHeight();
87   };
88 
89 
90 /// MDI Minimize button
91 class FXAPI FXMDIMinimizeButton : public FXButton {
FXDECLARE(FXMDIMinimizeButton)92   FXDECLARE(FXMDIMinimizeButton)
93 protected:
94   FXMDIMinimizeButton(){}
95 private:
96   FXMDIMinimizeButton(const FXMDIMinimizeButton&);
97   FXMDIMinimizeButton &operator=(const FXMDIMinimizeButton&);
98 public:
99   long onPaint(FXObject*,FXSelector,void*);
100 public:
101   /// Constructor
102   FXMDIMinimizeButton(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=FRAME_RAISED,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
103   virtual FXint getDefaultWidth();
104   virtual FXint getDefaultHeight();
105   };
106 
107 
108 /// MDI Window button
109 class FXAPI FXMDIWindowButton : public FXMenuButton {
FXDECLARE(FXMDIWindowButton)110   FXDECLARE(FXMDIWindowButton)
111 protected:
112   FXMDIWindowButton(){}
113 private:
114   FXMDIWindowButton(const FXMDIWindowButton&);
115   FXMDIWindowButton &operator=(const FXMDIWindowButton&);
116 public:
117   long onPaint(FXObject*,FXSelector,void*);
118 public:
119   /// Constructor
120   FXMDIWindowButton(FXComposite* p,FXPopup* pup,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
121   virtual FXint getDefaultWidth();
122   virtual FXint getDefaultHeight();
123   };
124 
125 
126 /// MDI Window Menu
127 class FXAPI FXMDIMenu : public FXMenuPane {
128   FXDECLARE(FXMDIMenu)
129 private:
130   FXIcon *closeicon;
131   FXIcon *maximizeicon;
132   FXIcon *minimizeicon;
133   FXIcon *restoreicon;
134 protected:
FXMDIMenu()135   FXMDIMenu(){}
136 private:
137   FXMDIMenu(const FXMDIMenu&);
138   FXMDIMenu &operator=(const FXMDIMenu&);
139 public:
140 
141   /// Construct MDI menu
142   FXMDIMenu(FXWindow *owner,FXObject* tgt=NULL);
143 
144   /// Destructor
145   virtual ~FXMDIMenu();
146   };
147 
148 }
149 
150 #endif
151