1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00
Files
wmaker/WINGs/WINGs.h

1261 lines
32 KiB
C

#ifndef _WINGS_H_
#define _WINGS_H_
#include <wraster.h>
#include <WUtil.h>
#include <X11/Xlib.h>
#define WINGS_H_VERSION 990516
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#if 0
}
#endif
typedef unsigned long WMPixel;
typedef struct {
unsigned int width;
unsigned int height;
} WMSize;
typedef struct {
int x;
int y;
} WMPoint;
typedef struct {
WMPoint pos;
WMSize size;
} WMRect;
typedef struct {
int position;
int count;
} WMRange;
#define ClientMessageMask (1L<<30)
/* window stacking level */
enum {
WMNormalWindowLevel = 0,
WMFloatingWindowLevel = 3,
WMDockWindowLevel = 5,
WMSubmenuWindowLevel = 10,
WMMainMenuWindowLevel = 20
};
/* window attributes */
enum {
WMBorderlessWindowMask = 0,
WMTitledWindowMask = 1,
WMClosableWindowMask = 2,
WMMiniaturizableWindowMask = 4,
WMResizableWindowMask = 8
};
/* button types */
typedef enum {
/* 0 is reserved for internal use */
WBTMomentaryPush = 1,
WBTPushOnPushOff = 2,
WBTToggle = 3,
WBTSwitch = 4,
WBTRadio = 5,
WBTMomentaryChange = 6,
WBTOnOff = 7,
WBTMomentaryLight = 8
} WMButtonType;
/* button behaviour masks */
enum {
WBBSpringLoadedMask = (1 << 0),
WBBPushInMask = (1 << 1),
WBBPushChangeMask = (1 << 2),
WBBPushLightMask = (1 << 3),
WBBStateLightMask = (1 << 5),
WBBStateChangeMask = (1 << 6),
WBBStatePushMask = (1 << 7)
};
/* frame title positions */
typedef enum {
WTPNoTitle,
WTPAboveTop,
WTPAtTop,
WTPBelowTop,
WTPAboveBottom,
WTPAtBottom,
WTPBelowBottom
} WMTitlePosition;
/* relief types */
typedef enum {
WRFlat,
WRSimple,
WRRaised,
WRSunken,
WRGroove,
WRRidge,
WRPushed
} WMReliefType;
/* alignment types */
typedef enum {
WALeft,
WACenter,
WARight,
WAJustified /* not valid for textfields */
} WMAlignment;
/* image position */
typedef enum {
WIPNoImage,
WIPImageOnly,
WIPLeft,
WIPRight,
WIPBelow,
WIPAbove,
WIPOverlaps
} WMImagePosition;
/* scroller arrow position */
typedef enum {
WSAMaxEnd,
WSAMinEnd,
WSANone
} WMScrollArrowPosition;
/* scroller parts */
typedef enum {
WSNoPart,
WSDecrementPage,
WSIncrementPage,
WSDecrementLine,
WSIncrementLine,
WSKnob,
WSKnobSlot
} WMScrollerPart;
/* usable scroller parts */
typedef enum {
WSUNoParts,
WSUOnlyArrows,
WSUAllParts
} WMUsableScrollerParts;
/* matrix types */
typedef enum {
WMRadioMode,
WMHighlightMode,
WMListMode,
WMTrackMode
} WMMatrixTypes;
typedef enum {
WTTopTabsBevelBorder,
WTNoTabsBevelBorder,
WTNoTabsLineBorder,
WTNoTabsNoBorder
} WMTabViewTypes;
/* text movement types */
enum {
WMIllegalTextMovement,
WMReturnTextMovement,
WMTabTextMovement,
WMBacktabTextMovement,
WMLeftTextMovement,
WMRightTextMovement,
WMUpTextMovement,
WMDownTextMovement
};
/* text field special events */
enum {
WMInsertTextEvent,
WMDeleteTextEvent
};
typedef enum {
WMGrayModeColorPanel,
WMRGBModeColorPanel,
WMCMYKModeColorPanel,
WMHSBModeColorPanel,
WMCustomPaletteModeColorPanel,
WMColorListModeColorPanel,
WMWheelModeColorPanel
} WMColorPanelMode;
/* system images */
#define WSIReturnArrow 1
#define WSIHighlightedReturnArrow 2
#define WSIScrollerDimple 3
#define WSIArrowLeft 4
#define WSIHighlightedArrowLeft 5
#define WSIArrowRight 6
#define WSIHighlightedArrowRight 7
#define WSIArrowUp 8
#define WSIHighlightedArrowUp 9
#define WSIArrowDown 10
#define WSIHighlightedArrowDown 11
#define WSICheckMark 12
enum {
WLDSSelected = (1 << 16),
WLDSDisabled = (1 << 17),
WLDSFocused = (1 << 18),
WLDSIsBranch = (1 << 19)
};
/* alert panel return values */
enum {
WAPRDefault = 0,
WAPRAlternate = 1,
WAPROther = -1,
WAPRError = -2
};
/* types of input observers */
enum {
WIReadMask = (1 << 0),
WIWriteMask = (1 << 1),
WIExceptMask = (1 << 2)
};
typedef int W_Class;
enum {
WC_Window = 0,
WC_Frame = 1,
WC_Label = 2,
WC_Button = 3,
WC_TextField = 4,
WC_Scroller = 5,
WC_ScrollView = 6,
WC_List = 7,
WC_Browser = 8,
WC_PopUpButton = 9,
WC_ColorWell = 10,
WC_Slider = 11,
WC_Matrix = 12, /* not ready */
WC_SplitView = 13,
WC_TabView = 14
};
/* All widgets must start with the following structure
* in that order. Used for typecasting to get some generic data */
typedef struct W_WidgetType {
W_Class widgetClass;
struct W_View *view;
} W_WidgetType;
#define WMWidgetClass(widget) (((W_WidgetType*)(widget))->widgetClass)
#define WMWidgetView(widget) (((W_WidgetType*)(widget))->view)
/* widgets */
typedef void WMWidget;
typedef struct W_Pixmap WMPixmap;
typedef struct W_Font WMFont;
typedef struct W_Color WMColor;
typedef struct W_Screen WMScreen;
typedef struct W_View WMView;
typedef struct W_Window WMWindow;
typedef struct W_Frame WMFrame;
typedef struct W_Button WMButton;
typedef struct W_Label WMLabel;
typedef struct W_TextField WMTextField;
typedef struct W_Scroller WMScroller;
typedef struct W_ScrollView WMScrollView;
typedef struct W_List WMList;
typedef struct W_Browser WMBrowser;
typedef struct W_PopUpButton WMPopUpButton;
typedef struct W_ColorWell WMColorWell;
typedef struct W_Slider WMSlider;
typedef struct W_Matrix WMMatrix; /* not ready */
typedef struct W_SplitView WMSplitView;
typedef struct W_TabView WMTabView;
/* not widgets */
typedef struct W_TabViewItem WMTabViewItem;
typedef struct W_FilePanel WMFilePanel;
typedef WMFilePanel WMOpenPanel;
typedef WMFilePanel WMSavePanel;
typedef struct W_FontPanel WMFontPanel;
typedef struct W_ColorPanel WMColorPanel;
/* item for WMList */
typedef struct WMListItem {
char *text;
void *clientData; /* ptr for user clientdata. */
struct WMListItem *nextPtr;
unsigned int uflags:16; /* flags for the user */
unsigned int selected:1;
unsigned int disabled:1;
unsigned int isBranch:1;
unsigned int loaded:1;
} WMListItem;
/* struct for message panel */
typedef struct WMAlertPanel {
WMWindow *win; /* window */
WMButton *defBtn; /* default button */
WMButton *altBtn; /* alternative button */
WMButton *othBtn; /* other button */
WMLabel *iLbl; /* icon label */
WMLabel *tLbl; /* title label */
WMLabel *mLbl; /* message label */
WMFrame *line; /* separator */
short result; /* button that was pushed */
short done;
KeyCode retKey;
} WMAlertPanel;
typedef struct WMInputPanel {
WMWindow *win; /* window */
WMButton *defBtn; /* default button */
WMButton *altBtn; /* alternative button */
WMLabel *tLbl; /* title label */
WMLabel *mLbl; /* message label */
WMTextField *text; /* text field */
short result; /* button that was pushed */
short done;
KeyCode retKey;
} WMInputPanel;
typedef void *WMHandlerID;
typedef void WMInputProc(int fd, int mask, void *clientData);
typedef void WMEventProc(XEvent *event, void *clientData);
typedef void WMEventHook(XEvent *event);
/* self is set to the widget from where the callback is being called and
* clientData to the data set to with WMSetClientData() */
typedef void WMAction(WMWidget *self, void *clientData);
/* same as WMAction, but for stuff that arent widgets */
typedef void WMAction2(void *self, void *clientData);
typedef void WMCallback(void *data);
/* delegate method like stuff */
typedef void WMFreeDataProc(void *data);
typedef void WMListDrawProc(WMList *lPtr, int index, Drawable d, char *text,
int state, WMRect *rect);
/*
typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
unsigned int oldWidth,
unsigned int oldHeight);
*/
typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex,
int *minCoordinate, int *maxCoordinate);
typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
typedef Bool WMConvertSelectionProc(WMWidget *w, Atom selection, Atom target,
Atom *type, void **value, unsigned *length,
int *format);
typedef void WMLoseSelectionProc(WMWidget *w, Atom selection);
typedef void WMSelectionDoneProc(WMWidget *w, Atom selection, Atom target);
typedef struct WMBrowserDelegate {
void *data;
void (*createRowsForColumn)(struct WMBrowserDelegate *self,
WMBrowser *sender, int column, WMList *list);
char* (*titleOfColumn)(struct WMBrowserDelegate *self, WMBrowser *sender,
int column);
void (*didScroll)(struct WMBrowserDelegate *self, WMBrowser *sender);
void (*willScroll)(struct WMBrowserDelegate *self, WMBrowser *sender);
} WMBrowserDelegate;
typedef struct WMTextFieldDelegate {
void *data;
void (*didBeginEditing)(struct WMTextFieldDelegate *self,
WMNotification *notif);
void (*didChange)(struct WMTextFieldDelegate *self,
WMNotification *notif);
void (*didEndEditing)(struct WMTextFieldDelegate *self,
WMNotification *notif);
Bool (*shouldBeginEditing)(struct WMTextFieldDelegate *self,
WMTextField *tPtr);
Bool (*shouldEndEditing)(struct WMTextFieldDelegate *self,
WMTextField *tPtr);
} WMTextFieldDelegate;
typedef struct WMTabViewDelegate {
void *data;
void (*didChangeNumberOfItems)(struct WMTabViewDelegate *self,
WMTabView *tabView);
void (*didSelectItem)(struct WMTabViewDelegate *self, WMTabView *tabView,
WMTabViewItem *item);
Bool (*shouldSelectItem)(struct WMTabViewDelegate *self, WMTabView *tabView,
WMTabViewItem *item);
void (*willSelectItem)(struct WMTabViewDelegate *self, WMTabView *tabView,
WMTabViewItem *item);
} WMTabViewDelegate;
/* ....................................................................... */
void WMInitializeApplication(char *applicationName, int *argc, char **argv);
void WMSetApplicationDataPath(char *path);
/* don't free the returned string */
char *WMGetApplicationName();
/* Try to locate resource file. ext may be NULL */
char *WMPathForResourceOfType(char *resource, char *ext);
WMScreen *WMCreateScreenWithRContext(Display *display, int screen,
RContext *context);
WMScreen *WMCreateScreen(Display *display, int screen);
WMScreen *WMCreateSimpleApplicationScreen(Display *display);
void WMScreenMainLoop(WMScreen *scr);
RContext *WMScreenRContext(WMScreen *scr);
Display *WMScreenDisplay(WMScreen *scr);
int WMScreenDepth(WMScreen *scr);
void WMSetApplicationIconImage(WMScreen *app, WMPixmap *icon);
WMPixmap *WMGetApplicationIconImage(WMScreen *app);
void WMSetFocusToWidget(WMWidget *widget);
WMEventHook *WMHookEventHandler(WMEventHook *handler);
int WMHandleEvent(XEvent *event);
Bool WMScreenPending(WMScreen *scr);
void WMCreateEventHandler(WMView *view, unsigned long mask,
WMEventProc *eventProc, void *clientData);
void WMDeleteEventHandler(WMView *view, unsigned long mask,
WMEventProc *eventProc, void *clientData);
int WMIsDoubleClick(XEvent *event);
void WMNextEvent(Display *dpy, XEvent *event);
void WMMaskEvent(Display *dpy, long mask, XEvent *event);
WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback *callback,
void *cdata);
void WMDeleteTimerWithClientData(void *cdata);
void WMDeleteTimerHandler(WMHandlerID handlerID);
WMHandlerID WMAddIdleHandler(WMCallback *callback, void *cdata);
void WMDeleteIdleHandler(WMHandlerID handlerID);
WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc,
void *clientData);
void WMDeleteInputHandler(WMHandlerID handlerID);
/* ....................................................................... */
/*
void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation,
WMSize mouseOffset, XEvent *event, Bool slideBack);
*/
/* ....................................................................... */
WMFont *WMCreateFont(WMScreen *scrPtr, char *fontName);
WMFont *WMCreateFontInDefaultEncoding(WMScreen *scrPtr, char *fontName);
WMFont *WMRetainFont(WMFont *font);
void WMReleaseFont(WMFont *font);
unsigned int WMFontHeight(WMFont *font);
/*
WMFont *WMUserFontOfSize(WMScreen *scrPtr, int size);
WMFont *WMUserFixedPitchFontOfSize(WMScreen *scrPtr, int size);
*/
WMFont *WMSystemFontOfSize(WMScreen *scrPtr, int size);
WMFont *WMBoldSystemFontOfSize(WMScreen *scrPtr, int size);
XFontSet WMGetFontFontSet(WMFont *font);
/* ....................................................................... */
WMPixmap *WMRetainPixmap(WMPixmap *pixmap);
void WMReleasePixmap(WMPixmap *pixmap);
WMPixmap *WMCreatePixmap(WMScreen *scrPtr, int width, int height, int depth,
Bool masked);
WMPixmap *WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap,
Pixmap mask, int width, int height,
int depth);
WMPixmap *WMCreatePixmapFromRImage(WMScreen *scrPtr, RImage *image,
int threshold);
WMPixmap *WMCreatePixmapFromXPMData(WMScreen *scrPtr, char **data);
WMSize WMGetPixmapSize(WMPixmap *pixmap);
WMPixmap *WMCreatePixmapFromFile(WMScreen *scrPtr, char *fileName);
WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, char *fileName,
RColor *color);
void WMDrawPixmap(WMPixmap *pixmap, Drawable d, int x, int y);
Pixmap WMGetPixmapXID(WMPixmap *pixmap);
Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
WMPixmap *WMGetSystemPixmap(WMScreen *scr, int image);
/* ....................................................................... */
WMColor *WMDarkGrayColor(WMScreen *scr);
WMColor *WMGrayColor(WMScreen *scr);
WMColor *WMBlackColor(WMScreen *scr);
WMColor *WMWhiteColor(WMScreen *scr);
void WMSetColorInGC(WMColor *color, GC gc);
GC WMColorGC(WMColor *color);
WMPixel WMColorPixel(WMColor *color);
void WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y,
unsigned int width, unsigned int height);
void WMReleaseColor(WMColor *color);
WMColor *WMRetainColor(WMColor *color);
WMColor *WMCreateRGBColor(WMScreen *scr, unsigned short red,
unsigned short green, unsigned short blue,
Bool exact);
WMColor *WMCreateNamedColor(WMScreen *scr, char *name, Bool exact);
unsigned short WMRedComponentOfColor(WMColor *color);
unsigned short WMGreenComponentOfColor(WMColor *color);
unsigned short WMBlueComponentOfColor(WMColor *color);
char *WMGetColorRGBDescription(WMColor *color);
/* ....................................................................... */
void WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
int y, char *text, int length);
void WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
int y, char *text, int length);
int WMWidthOfString(WMFont *font, char *text, int length);
/* ....................................................................... */
WMScreen *WMWidgetScreen(WMWidget *w);
void WMUnmapWidget(WMWidget *w);
void WMMapWidget(WMWidget *w);
void WMMoveWidget(WMWidget *w, int x, int y);
void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height);
void WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color);
void WMMapSubwidgets(WMWidget *w);
void WMUnmapSubwidgets(WMWidget *w);
void WMRealizeWidget(WMWidget *w);
void WMDestroyWidget(WMWidget *widget);
void WMHangData(WMWidget *widget, void *data);
void *WMGetHangedData(WMWidget *widget);
unsigned int WMWidgetWidth(WMWidget *w);
unsigned int WMWidgetHeight(WMWidget *w);
Window WMWidgetXID(WMWidget *w);
Window WMViewXID(WMView *view);
void WMRedisplayWidget(WMWidget *w);
void WMSetViewNotifySizeChanges(WMView *view, Bool flag);
WMSize WMGetViewSize(WMView *view);
WMPoint WMGetViewPosition(WMView *view);
WMWidget *WMWidgetOfView(WMView *view);
/* notifications */
extern char *WMViewSizeDidChangeNotification;
extern char *WMViewRealizedNotification;
/* ....................................................................... */
void WMSetBalloonTextForView(char *text, WMView *view);
void WMSetBalloonTextAlignment(WMScreen *scr, WMAlignment alignment);
void WMSetBalloonFont(WMScreen *scr, WMFont *font);
void WMSetBalloonTextColor(WMScreen *scr, WMColor *color);
void WMSetBalloonDelay(WMScreen *scr, int delay);
void WMSetBalloonEnabled(WMScreen *scr, Bool flag);
/* ....................................................................... */
WMWindow *WMCreateWindow(WMScreen *screen, char *name);
WMWindow *WMCreateWindowWithStyle(WMScreen *screen, char *name, int style);
WMWindow *WMCreatePanelWithStyleForWindow(WMWindow *owner, char *name,
int style);
WMWindow *WMCreatePanelForWindow(WMWindow *owner, char *name);
void WMChangePanelOwner(WMWindow *win, WMWindow *newOwner);
void WMSetWindowTitle(WMWindow *wPtr, char *title);
void WMSetWindowMiniwindowTitle(WMWindow *win, char *title);
void WMSetWindowMiniwindowImage(WMWindow *win, WMPixmap *pixmap);
void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData);
void WMSetWindowUPosition(WMWindow *win, int x, int y);
void WMSetWindowUSize(WMWindow *win, unsigned width, unsigned height);
void WMSetWindowMaxSize(WMWindow *win, unsigned width, unsigned height);
void WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height);
void WMSetWindowBaseSize(WMWindow *win, unsigned width, unsigned height);
void WMSetWindowResizeIncrements(WMWindow *win, unsigned wIncr, unsigned hIncr);
void WMSetWindowLevel(WMWindow *win, int level);
void WMSetWindowDocumentEdited(WMWindow *win, Bool flag);
void WMCloseWindow(WMWindow *win);
/* ....................................................................... */
void WMSetButtonAction(WMButton *bPtr, WMAction *action, void *clientData);
#define WMCreateCommandButton(parent) \
WMCreateCustomButton((parent), WBBSpringLoadedMask\
|WBBPushInMask\
|WBBPushLightMask\
|WBBPushChangeMask)
#define WMCreateRadioButton(parent) \
WMCreateButton((parent), WBTRadio)
#define WMCreateSwitchButton(parent) \
WMCreateButton((parent), WBTSwitch)
WMButton *WMCreateButton(WMWidget *parent, WMButtonType type);
WMButton *WMCreateCustomButton(WMWidget *parent, int behaviourMask);
void WMSetButtonImage(WMButton *bPtr, WMPixmap *image);
void WMSetButtonAltImage(WMButton *bPtr, WMPixmap *image);
void WMSetButtonImagePosition(WMButton *bPtr, WMImagePosition position);
void WMSetButtonFont(WMButton *bPtr, WMFont *font);
void WMSetButtonTextAlignment(WMButton *bPtr, WMAlignment alignment);
void WMSetButtonText(WMButton *bPtr, char *text);
void WMSetButtonAltText(WMButton *bPtr, char *text);
void WMSetButtonSelected(WMButton *bPtr, int isSelected);
int WMGetButtonSelected(WMButton *bPtr);
void WMSetButtonBordered(WMButton *bPtr, int isBordered);
void WMSetButtonEnabled(WMButton *bPtr, Bool flag);
void WMSetButtonImageDimsWhenDisabled(WMButton *bPtr, Bool flag);
void WMSetButtonTag(WMButton *bPtr, int tag);
void WMGroupButtons(WMButton *bPtr, WMButton *newMember);
void WMPerformButtonClick(WMButton *bPtr);
void WMSetButtonContinuous(WMButton *bPtr, Bool flag);
void WMSetButtonPeriodicDelay(WMButton *bPtr, float delay, float interval);
/* ....................................................................... */
WMLabel *WMCreateLabel(WMWidget *parent);
void WMSetLabelWraps(WMLabel *lPtr, Bool flag);
void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
WMPixmap *WMGetLabelImage(WMLabel *lPtr);
void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
void WMSetLabelRelief(WMLabel *lPtr, WMReliefType relief);
void WMSetLabelText(WMLabel *lPtr, char *text);
void WMSetLabelFont(WMLabel *lPtr, WMFont *font);
void WMSetLabelTextColor(WMLabel *lPtr, WMColor *color);
/* ....................................................................... */
WMFrame *WMCreateFrame(WMWidget *parent);
void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position);
void WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief);
void WMSetFrameTitle(WMFrame *fPtr, char *title);
/* ....................................................................... */
WMTextField *WMCreateTextField(WMWidget *parent);
void WMInsertTextFieldText(WMTextField *tPtr, char *text, int position);
void WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range);
/* you can free the returned string */
char *WMGetTextFieldText(WMTextField *tPtr);
void WMSetTextFieldText(WMTextField *tPtr, char *text);
void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment);
void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
void WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag);
Bool WMGetTextFieldEditable(WMTextField *tPtr);
void WMSetTextFieldEditable(WMTextField *tPtr, Bool flag);
void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
void WMSelectTextFieldRange(WMTextField *tPtr, WMRange range);
void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position);
void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next);
void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev);
void WMSetTextFieldDelegate(WMTextField *tPtr, WMTextFieldDelegate *delegate);
extern char *WMTextDidChangeNotification;
extern char *WMTextDidBeginEditingNotification;
extern char *WMTextDidEndEditingNotification;
/* ....................................................................... */
WMScroller *WMCreateScroller(WMWidget *parent);
void WMSetScrollerParameters(WMScroller *sPtr, float floatValue,
float knobProportion);
float WMGetScrollerKnobProportion(WMScroller *sPtr);
float WMGetScrollerValue(WMScroller *sPtr);
WMScrollerPart WMGetScrollerHitPart(WMScroller *sPtr);
void WMSetScrollerAction(WMScroller *sPtr, WMAction *action, void *clientData);
void WMSetScrollerArrowsPosition(WMScroller *sPtr,
WMScrollArrowPosition position);
/* ....................................................................... */
WMList *WMCreateList(WMWidget *parent);
#define WMAddListItem(lPtr, text) WMInsertListItem((lPtr), -1, (text))
WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
WMListItem *WMAddSortedListItem(WMList *lPtr, char *text);
int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
WMListItem *WMGetListItem(WMList *lPtr, int row);
void WMRemoveListItem(WMList *lPtr, int row);
void WMSelectListItem(WMList *lPtr, int row);
void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc);
void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
int WMGetListItemHeight(WMList *lPtr);
/* don't free the returned data */
WMListItem *WMGetListSelectedItem(WMList *lPtr);
int WMGetListSelectedItemRow(WMList *lPtr);
void WMSetListAction(WMList *lPtr, WMAction *action, void *clientData);
void WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData);
void WMClearList(WMList *lPtr);
int WMGetListNumberOfRows(WMList *lPtr);
void WMSetListPosition(WMList *lPtr, int row);
void WMSetListBottomPosition(WMList *lPtr, int row);
int WMGetListPosition(WMList *lPtr);
extern char *WMListDidScrollNotification;
extern char *WMListSelectionDidChangeNotification;
/* ....................................................................... */
WMBrowser *WMCreateBrowser(WMWidget *parent);
void WMSetBrowserPathSeparator(WMBrowser *bPtr, char *separator);
void WMSetBrowserTitled(WMBrowser *bPtr, Bool flag);
void WMLoadBrowserColumnZero(WMBrowser *bPtr);
int WMAddBrowserColumn(WMBrowser *bPtr);
void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row);
void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns);
void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
/* Don't free the returned string. */
char* WMSetBrowserPath(WMBrowser *bPtr, char *path);
/* you can free the returned string */
char *WMGetBrowserPath(WMBrowser *bPtr);
/* you can free the returned string */
char *WMGetBrowserPathToColumn(WMBrowser *bPtr, int column);
void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData);
void WMSetBrowserDoubleAction(WMBrowser *bPtr, WMAction *action,
void *clientData);
WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column);
int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr);
int WMGetBrowserSelectedColumn(WMBrowser *bPtr);
int WMGetBrowserSelectedRowInColumn(WMBrowser *bPtr, int column);
int WMGetBrowserNumberOfColumns(WMBrowser *bPtr);
int WMGetBrowserMaxVisibleColumns(WMBrowser *bPtr);
WMList *WMGetBrowserListInColumn(WMBrowser *bPtr, int column);
void WMSetBrowserDelegate(WMBrowser *bPtr, WMBrowserDelegate *delegate);
/* ....................................................................... */
WMPopUpButton *WMCreatePopUpButton(WMWidget *parent);
void WMSetPopUpButtonAction(WMPopUpButton *sPtr, WMAction *action,
void *clientData);
void WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag);
void WMAddPopUpButtonItem(WMPopUpButton *bPtr, char *title);
void WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, char *title);
void WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index);
void WMSetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index, Bool flag);
Bool WMGetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index);
void WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index);
int WMGetPopUpButtonSelectedItem(WMPopUpButton *bPtr);
void WMSetPopUpButtonText(WMPopUpButton *bPtr, char *text);
/* don't free the returned data */
char *WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
Bool WMGetPopUpButtonEnabled(WMPopUpButton *bPtr);
/* ....................................................................... */
WMColorPanel *WMGetColorPanel(WMScreen *scrPtr);
void WMFreeColorPanel(WMColorPanel *panel);
void WMShowColorPanel(WMColorPanel *panel);
void WMCloseColorPanel(WMColorPanel *panel);
void WMSetColorPanelColor(WMColorPanel *panel, WMColor *color);
WMColor *WMGetColorPanelColor(WMColorPanel *panel);
void WMSetColorPanelPickerMode(WMColorPanel *panel, WMColorPanelMode mode);
void WMSetColorPanelAction(WMColorPanel *panel, WMAction2 *action, void *data);
extern char *WMColorPanelColorChangedNotification;
/* ....................................................................... */
WMColorWell *WMCreateColorWell(WMWidget *parent);
void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
WMColor *WMGetColorWellColor(WMColorWell *cPtr);
void WSetColorWellBordered(WMColorWell *cPtr, Bool flag);
extern char *WMColorWellDidChangeNotification;
/* ...................................................................... */
WMScrollView *WMCreateScrollView(WMWidget *parent);
void WMResizeScrollViewContent(WMScrollView *sPtr, unsigned int width,
unsigned int height);
void WMSetScrollViewHasHorizontalScroller(WMScrollView *sPtr, Bool flag);
void WMSetScrollViewHasVerticalScroller(WMScrollView *sPtr, Bool flag);
void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type);
void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
void WMSetScrollViewLineScroll(WMScrollView *sPtr, int amount);
void WMSetScrollViewPageScroll(WMScrollView *sPtr, int amount);
/* ....................................................................... */
WMSlider *WMCreateSlider(WMWidget *parent);
int WMGetSliderMinValue(WMSlider *slider);
int WMGetSliderMaxValue(WMSlider *slider);
int WMGetSliderValue(WMSlider *slider);
void WMSetSliderMinValue(WMSlider *slider, int value);
void WMSetSliderMaxValue(WMSlider *slider, int value);
void WMSetSliderValue(WMSlider *slider, int value);
void WMSetSliderContinuous(WMSlider *slider, Bool flag);
void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
void WMSetSliderKnobThickness(WMSlider *sPtr, int thickness);
void WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap);
/* ....................................................................... */
/* only supports 2 subviews */
WMSplitView *WMCreateSplitView(WMWidget *parent);
void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
void WMAdjustSplitViewSubviews(WMSplitView *sPtr);
void WMSetSplitViewConstrainProc(WMSplitView *sPtr,
WMSplitViewConstrainProc *proc);
/*
void WMSetSplitViewResizeSubviewsProc(WMSplitView *sPtr,
WMSplitViewResizeSubviewsProc *proc);
*/
int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
/* ....................................................................... */
WMTabView *WMCreateTabView(WMWidget *parent);
void WMSetTabViewFont(WMTabView *tPtr, WMFont *font);
void WMAddItemInTabView(WMTabView *tPtr, WMTabViewItem *item);
void WMInsertItemInTabView(WMTabView *tPtr, int index, WMTabViewItem *item);
void WMRemoveTabViewItem(WMTabView *tPtr, WMTabViewItem *item);
WMTabViewItem *WMTabViewItemAtPoint(WMTabView *tPtr, int x, int y);
void WMSelectFirstTabViewItem(WMTabView *tPtr);
void WMSelectLastTabViewItem(WMTabView *tPtr);
void WMSelectNextTabViewItem(WMTabView *tPtr);
void WMSelectPreviousTabViewItem(WMTabView *tPtr);
WMTabViewItem *WMGetSelectedTabViewItem(WMTabView *tPtr);
void WMSelectTabViewItem(WMTabView *tPtr, WMTabViewItem *item);
void WMSelectTabViewItemAtIndex(WMTabView *tPtr, int index);
void WMSetTabViewDelegate(WMTabView *tPtr, WMTabViewDelegate *delegate);
WMTabViewItem *WMCreateTabViewItemWithIdentifier(int identifier);
int WMGetTabViewItemIdentifier(WMTabViewItem *item);
void WMSetTabViewItemLabel(WMTabViewItem *item, char *label);
char *WMGetTabViewItemLabel(WMTabViewItem *item);
void WMSetTabViewItemView(WMTabViewItem *item, WMView *view);
WMView *WMGetTabViewItemView(WMTabViewItem *item);
void WMDestroyTabViewItem(WMTabViewItem *item);
/* ....................................................................... */
int WMRunAlertPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
char *defaultButton, char *alternateButton,
char *otherButton);
/* you can free the returned string */
char *WMRunInputPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
char *defaultText, char *okButton, char *cancelButton);
WMAlertPanel *WMCreateAlertPanel(WMScreen *app, WMWindow *owner, char *title,
char *msg, char *defaultButton,
char *alternateButton, char *otherButton);
WMInputPanel *WMCreateInputPanel(WMScreen *app, WMWindow *owner, char *title,
char *msg, char *defaultText, char *okButton,
char *cancelButton);
void WMDestroyAlertPanel(WMAlertPanel *panel);
void WMDestroyInputPanel(WMInputPanel *panel);
/* ....................................................................... */
/* only 1 instance per WMScreen */
WMOpenPanel *WMGetOpenPanel(WMScreen *scrPtr);
WMSavePanel *WMGetSavePanel(WMScreen *scrPtr);
void WMSetFilePanelCanChooseDirectories(WMFilePanel *panel, Bool flag);
void WMSetFilePanelCanChooseFiles(WMFilePanel *panel, Bool flag);
void WMSetFilePanelAutoCompletion(WMFilePanel *panel, Bool flag);
void WMSetFilePanelDirectory(WMFilePanel *panel, char *path);
/* you can free the returned string */
char *WMGetFilePanelFileName(WMFilePanel *panel);
void WMFreeFilePanel(WMFilePanel *panel);
int WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
char *path, char *name, char **fileTypes);
void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view);
WMView *WMGetFilePanelAccessoryView(WMFilePanel *panel);
/* ...................................................................... */
/* only 1 instance per WMScreen */
WMFontPanel *WMGetFontPanel(WMScreen *scr);
void WMShowFontPanel(WMFontPanel *panel);
void WMHideFontPanel(WMFontPanel *panel);
void WMSetFontPanelFont(WMFontPanel *panel, WMFont *font);
/* you can free the returned string */
char *WMGetFontPanelFontName(WMFontPanel *panel);
WMFont *WMGetFontPanelFont(WMFontPanel *panel);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif