Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
124
Src/Wasabi/api/wnd/wndclass/framewnd.h
Normal file
124
Src/Wasabi/api/wnd/wndclass/framewnd.h
Normal file
|
@ -0,0 +1,124 @@
|
|||
//NONPORTABLE
|
||||
#ifndef _FRAMEWND_H
|
||||
#define _FRAMEWND_H
|
||||
|
||||
#include <bfc/common.h>
|
||||
#include <api/wnd/wndclass/labelwnd.h>
|
||||
#include <tataki/bitmap/autobitmap.h>
|
||||
|
||||
#define MAXCHILD 2 // this had better never not be 2
|
||||
|
||||
typedef enum {
|
||||
DIVIDER_HORIZONTAL, DIVIDER_VERTICAL, DIVIDER_UNDEFINED = -1
|
||||
} FrameWndDividerType;
|
||||
enum { SDP_FROMLEFT, SDP_FROMRIGHT };
|
||||
#define SDP_FROMTOP SDP_FROMLEFT
|
||||
#define SDP_FROMBOTTOM SDP_FROMRIGHT
|
||||
|
||||
typedef enum {
|
||||
FRAMEWND_SQUISH,
|
||||
FRAMEWND_COVER
|
||||
} FrameWndSlideMode;
|
||||
|
||||
#define SIZERWIDTH 8
|
||||
|
||||
// this window holds other basewnd derived classes
|
||||
#define FRAMEWND_PARENT LabelWnd
|
||||
class FrameWnd : public FRAMEWND_PARENT {
|
||||
public:
|
||||
FrameWnd();
|
||||
virtual ~FrameWnd();
|
||||
|
||||
virtual int onInit();
|
||||
|
||||
virtual int getCursorType(int x, int y);
|
||||
|
||||
virtual int onPaint(Canvas *canvas);
|
||||
virtual int onResize();
|
||||
|
||||
virtual int onLeftButtonDown(int x, int y);
|
||||
virtual int onMouseMove(int x, int y); // only called when mouse captured
|
||||
virtual int onLeftButtonUp(int x, int y);
|
||||
|
||||
virtual int childNotify(ifc_window *which, int msg, intptr_t param1, intptr_t param2);
|
||||
|
||||
// virtual int forceFocus();
|
||||
|
||||
// unique to this class
|
||||
int setChildren(BaseWnd *child1, BaseWnd *child2=NULL);
|
||||
int setChildrenRootWnd(ifc_window *child1, ifc_window *child2=NULL);
|
||||
ifc_window *enumChild(int which);
|
||||
// horizontal or vertical?
|
||||
void setDividerType(FrameWndDividerType type);
|
||||
FrameWndDividerType getDividerType();
|
||||
// where is the divider?
|
||||
int setDividerPos(int from, int pos);
|
||||
// this version doesn't check the cfg file for last position
|
||||
int setDividerPosNoCfg(int from, int pos);
|
||||
void getDividerPos(int *from, int *pos);
|
||||
|
||||
int setResizeable(int is);
|
||||
void setMinWidth(int min);
|
||||
void setMaxWidth(int max);
|
||||
void setSnap(int snap);
|
||||
|
||||
virtual int onGetFocus();
|
||||
virtual int onDeferredCallback(intptr_t p1, intptr_t p2);
|
||||
|
||||
// cover or squish
|
||||
void setSlideMode(FrameWndSlideMode mode);
|
||||
FrameWndSlideMode getSlideMode();
|
||||
|
||||
virtual void onResizeChildren(RECT leftr, RECT rightr);
|
||||
|
||||
// drag and drops are forwarded into windowshaded windows
|
||||
virtual int dragEnter(ifc_window *sourceWnd);
|
||||
virtual int dragOver(int x, int y, ifc_window *sourceWnd);
|
||||
virtual int dragLeave(ifc_window *sourceWnd);
|
||||
virtual int dragDrop(ifc_window *sourceWnd, int x, int y);
|
||||
|
||||
protected:
|
||||
int convertPropToPix(int prop);
|
||||
int ConvertPixToProp();
|
||||
|
||||
void windowshade(int which, int shaded);
|
||||
ifc_window *getWindowShadedChild();
|
||||
|
||||
void Set_v_bitmap(const wchar_t *new_v_bitmap);
|
||||
void Set_v_grabber(const wchar_t *new_v_grabber);
|
||||
|
||||
private:
|
||||
int _setChildren(ifc_window *child1, ifc_window *child2, BaseWnd *child1b, BaseWnd *child2b);
|
||||
int nchild;
|
||||
BaseWnd *children[MAXCHILD];
|
||||
ifc_window *rwchildren[MAXCHILD];
|
||||
int hidey[MAXCHILD];
|
||||
int windowshaded[MAXCHILD];
|
||||
|
||||
FrameWndDividerType vert;
|
||||
|
||||
int resizeable;
|
||||
FrameWndSlideMode slidemode;
|
||||
|
||||
int divideside;
|
||||
int pullbarpos; // 0..65536
|
||||
int prevpullbarpos;
|
||||
int minwidth, maxwidth;
|
||||
int maxpixels;
|
||||
boolean noMaxRestriction;
|
||||
int minpixels;
|
||||
int snapoffsetx, snapoffsety;
|
||||
int SNAP;
|
||||
RECT sizerRect;
|
||||
|
||||
AutoSkinBitmap h_bitmap, v_bitmap, h_grabber, v_grabber, ws_bitmap;
|
||||
int resizing;
|
||||
};
|
||||
|
||||
#define PULLBAR_FULL 65536L
|
||||
#define PULLBAR_HALF (PULLBAR_FULL/2)
|
||||
#define PULLBAR_QUARTER (PULLBAR_FULL/4)
|
||||
#define PULLBAR_THREEQUARTER (PULLBAR_FULL-PULLBAR_QUARTER)
|
||||
#define PULLBAR_EIGHTH (PULLBAR_FULL/8)
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue