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 FXMATRIX_H
00025 #define FXMATRIX_H
00026
00027 #ifndef FXPACKER_H
00028 #include "FXPacker.h"
00029 #endif
00030
00031 namespace FX {
00032
00033
00035 enum {
00036 MATRIX_BY_ROWS = 0,
00037 MATRIX_BY_COLUMNS = 0x00020000
00038 };
00039
00040
00041
00059 class FXAPI FXMatrix : public FXPacker {
00060 FXDECLARE(FXMatrix)
00061 protected:
00062 FXint num;
00063 protected:
00064 FXMatrix(){}
00065 private:
00066 FXMatrix(const FXMatrix&);
00067 FXMatrix &operator=(const FXMatrix&);
00068 public:
00069 long onFocusUp(FXObject*,FXSelector,void*);
00070 long onFocusDown(FXObject*,FXSelector,void*);
00071 long onFocusLeft(FXObject*,FXSelector,void*);
00072 long onFocusRight(FXObject*,FXSelector,void*);
00073 public:
00074
00076 FXMatrix(FXComposite *p,FXint n=1,FXuint opts=MATRIX_BY_ROWS,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_SPACING,FXint pr=DEFAULT_SPACING,FXint pt=DEFAULT_SPACING,FXint pb=DEFAULT_SPACING,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING);
00077
00079 virtual void layout();
00080
00082 virtual FXint getDefaultWidth();
00083
00085 virtual FXint getDefaultHeight();
00086
00088 FXWindow* childAtRowCol(FXint r,FXint c) const;
00089
00091 FXint rowOfChild(const FXWindow* child) const;
00092
00094 FXint colOfChild(const FXWindow* child) const;
00095
00097 void setMatrixStyle(FXuint ph);
00098
00100 FXuint getMatrixStyle() const;
00101
00103 void setNumRows(FXint nr);
00104
00106 FXint getNumRows() const;
00107
00109 void setNumColumns(FXint nc);
00110
00112 FXint getNumColumns() const;
00113 };
00114
00115 }
00116
00117 #endif