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 FXTOOLBAR_H
00025 #define FXTOOLBAR_H
00026
00027 #ifndef FXPACKER_H
00028 #include "FXPacker.h"
00029 #endif
00030
00031 namespace FX {
00032
00033
00034
00035
00036
00037 class FXAPI FXToolBar : public FXPacker {
00038 FXDECLARE(FXToolBar)
00039 protected:
00040 FXComposite *drydock;
00041 FXComposite *wetdock;
00042 FXRectangle outline;
00043 FXWindow *dockafter;
00044 FXuint dockside;
00045 FXbool docking;
00046 protected:
00047 FXToolBar();
00048 private:
00049 FXToolBar(const FXToolBar&);
00050 FXToolBar &operator=(const FXToolBar&);
00051 public:
00052 long onCmdUndock(FXObject*,FXSelector,void*);
00053 long onUpdUndock(FXObject*,FXSelector,void*);
00054 long onCmdDockTop(FXObject*,FXSelector,void*);
00055 long onUpdDockTop(FXObject*,FXSelector,void*);
00056 long onCmdDockBottom(FXObject*,FXSelector,void*);
00057 long onUpdDockBottom(FXObject*,FXSelector,void*);
00058 long onCmdDockLeft(FXObject*,FXSelector,void*);
00059 long onUpdDockLeft(FXObject*,FXSelector,void*);
00060 long onCmdDockRight(FXObject*,FXSelector,void*);
00061 long onUpdDockRight(FXObject*,FXSelector,void*);
00062 long onBeginDragGrip(FXObject*,FXSelector,void*);
00063 long onEndDragGrip(FXObject*,FXSelector,void*);
00064 long onDraggedGrip(FXObject*,FXSelector,void*);
00065 public:
00066 enum {
00067 ID_UNDOCK=FXPacker::ID_LAST,
00068 ID_DOCK_TOP,
00069 ID_DOCK_BOTTOM,
00070 ID_DOCK_LEFT,
00071 ID_DOCK_RIGHT,
00072 ID_TOOLBARGRIP,
00073 ID_LAST
00074 };
00075 public:
00076
00077
00078
00079
00080
00081
00082
00083 FXToolBar(FXComposite* p,FXComposite* q,FXuint opts=LAYOUT_TOP|LAYOUT_LEFT|LAYOUT_FILL_X,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=3,FXint pr=3,FXint pt=2,FXint pb=2,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING);
00084
00085
00086
00087
00088
00089 FXToolBar(FXComposite* p,FXuint opts=LAYOUT_TOP|LAYOUT_LEFT|LAYOUT_FILL_X,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=2,FXint pr=3,FXint pt=3,FXint pb=2,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING);
00090
00091
00092
00093
00094
00095 void setDryDock(FXComposite* dry);
00096
00097
00098
00099
00100
00101 void setWetDock(FXComposite* wet);
00102
00103
00104 FXComposite* getDryDock() const { return drydock; }
00105
00106
00107 FXComposite* getWetDock() const { return wetdock; }
00108
00109
00110 FXbool isDocked() const;
00111
00112
00113
00114
00115
00116
00117 virtual void dock(FXuint side=LAYOUT_SIDE_TOP,FXWindow* after=(FXWindow*)-1);
00118
00119
00120
00121
00122
00123
00124 virtual void undock();
00125
00126
00127 virtual FXint getDefaultWidth();
00128
00129
00130 virtual FXint getDefaultHeight();
00131
00132
00133 virtual void layout();
00134
00135
00136 virtual FXint getWidthForHeight(FXint h);
00137
00138
00139 virtual FXint getHeightForWidth(FXint w);
00140
00141
00142 void setDockingSide(FXuint side=LAYOUT_SIDE_TOP);
00143
00144
00145 FXuint getDockingSide() const;
00146
00147
00148 virtual void save(FXStream& store) const;
00149
00150
00151 virtual void load(FXStream& store);
00152
00153
00154 virtual ~FXToolBar();
00155 };
00156
00157 }
00158
00159 #endif