00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef FXMDICLIENT_H
00025
#define FXMDICLIENT_H
00026
00027
#ifndef FXCOMPOSITE_H
00028
#include "FXComposite.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
00034
class FXMDIChild;
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 class FXAPI FXMDIClient :
public FXComposite {
00055 FXDECLARE(FXMDIClient)
00056
friend class FXMDIChild;
00057
protected:
00058
FXMDIChild *active;
00059 FXint cascadex;
00060 FXint cascadey;
00061
protected:
00062 FXMDIClient();
00063
private:
00064 FXMDIClient(
const FXMDIClient&);
00065 FXMDIClient &operator=(
const FXMDIClient&);
00066
public:
00067
long onCmdActivateNext(
FXObject*,FXSelector,
void*);
00068
long onCmdActivatePrev(
FXObject*,FXSelector,
void*);
00069
long onCmdTileHorizontal(
FXObject*,FXSelector,
void*);
00070
long onCmdTileVertical(
FXObject*,FXSelector,
void*);
00071
long onCmdCascade(
FXObject*,FXSelector,
void*);
00072
long onUpdActivateNext(
FXObject*,FXSelector,
void*);
00073
long onUpdActivatePrev(
FXObject*,FXSelector,
void*);
00074
long onUpdTileVertical(
FXObject*,FXSelector,
void*);
00075
long onUpdTileHorizontal(
FXObject*,FXSelector,
void*);
00076
long onUpdCascade(
FXObject*,FXSelector,
void*);
00077
long onUpdClose(
FXObject*,FXSelector,
void*);
00078
long onUpdMenuClose(
FXObject*,FXSelector,
void*);
00079
long onUpdRestore(
FXObject*,FXSelector,
void*);
00080
long onUpdMenuRestore(
FXObject*,FXSelector,
void*);
00081
long onUpdMinimize(
FXObject*,FXSelector,
void*);
00082
long onUpdMenuMinimize(
FXObject*,FXSelector,
void*);
00083
long onUpdMaximize(
FXObject*,FXSelector,
void*);
00084
long onUpdMenuWindow(
FXObject*,FXSelector,
void*);
00085
long onCmdWindowSelect(
FXObject*,FXSelector,
void*);
00086
long onUpdWindowSelect(
FXObject*,FXSelector,
void*);
00087
long onCmdOthersWindows(
FXObject*,FXSelector,
void*);
00088
long onUpdOthersWindows(
FXObject*,FXSelector,
void*);
00089
long onUpdAnyWindows(
FXObject*,FXSelector,
void*);
00090
virtual long onDefault(
FXObject*,FXSelector,
void*);
00091
public:
00092
enum {
00093 ID_MDI_ANY=65400,
00094 ID_MDI_1,
00095 ID_MDI_2,
00096 ID_MDI_3,
00097 ID_MDI_4,
00098 ID_MDI_5,
00099 ID_MDI_6,
00100 ID_MDI_7,
00101 ID_MDI_8,
00102 ID_MDI_9,
00103 ID_MDI_10,
00104 ID_MDI_OVER_1,
00105 ID_MDI_OVER_2,
00106 ID_MDI_OVER_3,
00107 ID_MDI_OVER_4,
00108 ID_MDI_OVER_5,
00109 ID_MDI_OVER_6,
00110 ID_MDI_OVER_7,
00111 ID_MDI_OVER_8,
00112 ID_MDI_OVER_9,
00113 ID_MDI_OVER_10,
00114 ID_LAST
00115 };
00116
public:
00117
00118
00119 FXMDIClient(
FXComposite* p,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00120
00121
00122
virtual FXint getDefaultWidth();
00123
00124
00125
virtual FXint getDefaultHeight();
00126
00127
00128
virtual void layout();
00129
00130
00131
00132
00133
00134
long forallWindows(
FXObject* sender,FXSelector sel,
void* ptr);
00135
00136
00137
00138
00139
00140
long forallDocuments(
FXObject* sender,FXSelector sel,
void* ptr);
00141
00142
00143
00144
00145
00146
long forallDocWindows(
FXObject* document,
FXObject* sender,FXSelector sel,
void* ptr);
00147
00148
00149
virtual FXbool setActiveChild(
FXMDIChild* child=NULL,FXbool notify=TRUE);
00150
00151
00152
FXMDIChild* getActiveChild()
const {
return active; }
00153
00154
00155 virtual void cascade(FXbool notify=FALSE);
00156
00157
00158 virtual void horizontal(FXbool notify=FALSE);
00159
00160
00161 virtual void vertical(FXbool notify=FALSE);
00162
00163
00164 void setCascadeX(FXint off){ cascadex=off; }
00165
00166
00167
void setCascadeY(FXint off){ cascadey=off; }
00168
00169
00170 FXint getCascadeX()
const {
return cascadex; }
00171
00172
00173 FXint getCascadeY()
const {
return cascadey; }
00174
00175
00176
virtual void save(FXStream& store)
const;
00177
00178
00179
virtual void load(FXStream& store);
00180
00181
00182
virtual ~FXMDIClient();
00183 };
00184
00185 }
00186
00187
#endif