Initial revision
[wmaker-crm.git] / WINGs / WINGs.h
blobf2816dbac29b0c369b7233cee30be283deec9937
3 #ifndef _WINGS_H_
4 #define _WINGS_H_
6 #include <wraster.h>
7 #include <X11/Xlib.h>
9 #define WINGS_H_VERSION 980922
16 typedef unsigned long WMPixel;
19 typedef struct {
20 unsigned int width;
21 unsigned int height;
22 } WMSize;
24 typedef struct {
25 int x;
26 int y;
27 } WMPoint;
29 typedef struct {
30 WMPoint pos;
31 WMSize size;
32 } WMRect;
34 typedef struct {
35 int position;
36 int count;
37 } WMRange;
40 #define ClientMessageMask (1L<<30)
43 /* window stacking level */
44 enum {
45 WMNormalWindowLevel = 0,
46 WMFloatingWindowLevel = 3,
47 WMDockWindowLevel = 5,
48 WMSubmenuWindowLevel = 10,
49 WMMainMenuWindowLevel = 20
52 /* window attributes */
53 enum {
54 WMBorderlessWindowMask = 0,
55 WMTitledWindowMask = 1,
56 WMClosableWindowMask = 2,
57 WMMiniaturizableWindowMask = 4,
58 WMResizableWindowMask = 8
62 /* button types */
63 typedef enum {
64 /* 0 is reserved for internal use */
65 WBTMomentaryPush = 1,
66 WBTPushOnPushOff = 2,
67 WBTToggle = 3,
68 WBTSwitch = 4,
69 WBTRadio = 5,
70 WBTMomentaryChange = 6,
71 WBTOnOff = 7,
72 WBTMomentaryLight = 8
73 } WMButtonType;
75 /* button behaviour masks */
76 enum {
77 WBBSpringLoadedMask = (1 << 0),
78 WBBPushInMask = (1 << 1),
79 WBBPushChangeMask = (1 << 2),
80 WBBPushLightMask = (1 << 3),
81 WBBStateLightMask = (1 << 5),
82 WBBStateChangeMask = (1 << 6),
83 WBBStatePushMask = (1 << 7)
87 /* frame title positions */
88 typedef enum {
89 WTPNoTitle,
90 WTPAboveTop,
91 WTPAtTop,
92 WTPBelowTop,
93 WTPAboveBottom,
94 WTPAtBottom,
95 WTPBelowBottom
96 } WMTitlePosition;
99 /* relief types */
100 typedef enum {
101 WRFlat,
102 WRSimple,
103 WRRaised,
104 WRSunken,
105 WRGroove,
106 WRRidge,
107 WRPushed
108 } WMReliefType;
111 /* alignment types */
112 typedef enum {
113 WALeft,
114 WACenter,
115 WARight,
116 WMJustified /* not valid for textfields */
117 } WMAlignment;
120 /* image position */
121 typedef enum {
122 WIPNoImage,
123 WIPImageOnly,
124 WIPLeft,
125 WIPRight,
126 WIPBelow,
127 WIPAbove,
128 WIPOverlaps
129 } WMImagePosition;
132 /* scroller arrow position */
133 typedef enum {
134 WSAMaxEnd,
135 WSAMinEnd,
136 WSANone
137 } WMScrollArrowPosition;
139 /* scroller parts */
140 typedef enum {
141 WSNoPart,
142 WSDecrementPage,
143 WSIncrementPage,
144 WSDecrementLine,
145 WSIncrementLine,
146 WSKnob,
147 WSKnobSlot
148 } WMScrollerPart;
150 /* usable scroller parts */
151 typedef enum {
152 WSUNoParts,
153 WSUOnlyArrows,
154 WSUAllParts
155 } WMUsableScrollerParts;
157 /* matrix types */
158 typedef enum {
159 WMMRadioMode,
160 WMMHighlightMode,
161 WMMListMode,
162 WMMTrackMode
163 } WMMatrixTypes;
166 /* text movement types */
167 enum {
168 WMIllegalTextMovement,
169 WMReturnTextMovement,
170 WMTabTextMovement,
171 WMBacktabTextMovement,
172 WMLeftTextMovement,
173 WMRightTextMovement,
174 WMUpTextMovement,
175 WMDownTextMovement
179 /* system images */
180 #define WSIReturnArrow 1
181 #define WSIHighlightedReturnArrow 2
182 #define WSIScrollerDimple 3
183 #define WSIArrowLeft 4
184 #define WSIHighlightedArrowLeft 5
185 #define WSIArrowRight 6
186 #define WSIHighlightedArrowRight 7
187 #define WSIArrowUp 8
188 #define WSIHighlightedArrowUp 9
189 #define WSIArrowDown 10
190 #define WSIHighlightedArrowDown 11
193 enum {
194 WLDSSelected = (1 << 16),
195 WLDSDisabled = (1 << 17),
196 WLDSFocused = (1 << 18),
197 WLDSIsBranch = (1 << 19)
200 /* alert panel return values */
201 enum {
202 WAPRDefault = 0,
203 WAPRAlternate = 1,
204 WAPROther = -1,
205 WAPRError = -2
210 /* types of input observers */
211 enum {
212 WIReadMask = (1 << 0),
213 WIWriteMask = (1 << 1),
214 WIExceptMask = (1 << 2)
219 typedef int W_Class;
221 enum {
222 WC_Window = 0,
223 WC_Frame = 1,
224 WC_Label = 2,
225 WC_Button = 3,
226 WC_TextField = 4,
227 WC_Scroller = 5,
228 WC_ScrollView = 6,
229 WC_List = 7,
230 WC_Browser = 8,
231 WC_PopUpButton = 9,
232 WC_ColorWell = 10,
233 WC_Slider = 11,
234 WC_Matrix = 12, /* not ready */
235 WC_SplitView = 13
238 /* All widgets must start with the following structure
239 * in that order. Used for typecasting to get some generic data */
240 typedef struct W_WidgetType {
241 W_Class widgetClass;
242 struct W_View *view;
244 } W_WidgetType;
247 #define WMWidgetClass(widget) (((W_WidgetType*)(widget))->widgetClass)
248 #define WMWidgetView(widget) (((W_WidgetType*)(widget))->view)
251 /* widgets */
253 typedef void WMWidget;
255 typedef struct W_Pixmap WMPixmap;
256 typedef struct W_Font WMFont;
257 typedef struct W_Color WMColor;
259 typedef struct W_Screen WMScreen;
261 typedef struct W_View WMView;
263 typedef struct W_Window WMWindow;
264 typedef struct W_Frame WMFrame;
265 typedef struct W_Button WMButton;
266 typedef struct W_Label WMLabel;
267 typedef struct W_TextField WMTextField;
268 typedef struct W_Scroller WMScroller;
269 typedef struct W_ScrollView WMScrollView;
270 typedef struct W_List WMList;
271 typedef struct W_Browser WMBrowser;
272 typedef struct W_PopUpButton WMPopUpButton;
273 typedef struct W_ColorWell WMColorWell;
274 typedef struct W_Slider WMSlider;
275 typedef struct W_Matrix WMMatrix; /* not ready */
276 typedef struct W_SplitView WMSplitView;
278 /* not widgets */
279 typedef struct W_FilePanel WMFilePanel;
280 typedef WMFilePanel WMOpenPanel;
281 typedef WMFilePanel WMSavePanel;
283 typedef struct W_FontPanel WMFontPanel;
286 /* item for WMList */
287 typedef struct WMListItem {
288 char *text;
290 struct WMListItem *nextPtr;
292 unsigned int uflags:16; /* flags for the user */
293 unsigned int selected:1;
294 unsigned int disabled:1;
295 unsigned int isBranch:1;
296 unsigned int loaded:1;
297 } WMListItem;
299 /* struct for message panel */
300 typedef struct WMAlertPanel {
301 WMWindow *win; /* window */
302 WMButton *defBtn; /* default button */
303 WMButton *altBtn; /* alternative button */
304 WMButton *othBtn; /* other button */
305 WMLabel *iLbl; /* icon label */
306 WMLabel *tLbl; /* title label */
307 WMLabel *mLbl; /* message label */
308 WMFrame *line; /* separator */
309 short result; /* button that was pushed */
310 short done;
312 KeyCode retKey;
313 } WMAlertPanel;
316 typedef struct WMInputPanel {
317 WMWindow *win; /* window */
318 WMButton *defBtn; /* default button */
319 WMButton *altBtn; /* alternative button */
320 WMLabel *tLbl; /* title label */
321 WMLabel *mLbl; /* message label */
322 WMTextField *text; /* text field */
323 short result; /* button that was pushed */
324 short done;
326 KeyCode retKey;
327 } WMInputPanel;
335 typedef void *WMHandlerID;
337 typedef void WMInputProc(int fd, int mask, void *clientData);
339 typedef void WMEventProc(XEvent *event, void *clientData);
341 typedef void WMEventHook(XEvent *event);
343 /* self is set to the widget from where the callback is being called and
344 * clientData to the data set to with WMSetClientData() */
345 typedef void WMAction(WMWidget *self, void *clientData);
348 typedef void WMCallback(void *data);
351 /* delegate method like stuff */
352 typedef void WMFreeDataProc(void *data);
354 typedef void WMListDrawProc(WMList *lPtr, Drawable d, char *text, int state,
355 WMRect *rect);
358 typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
359 unsigned int oldWidth,
360 unsigned int oldHeight);
363 typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex,
364 int *minCoordinate, int *maxCoordinate);
366 typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
369 typedef void WMBrowserFillColumnProc(WMBrowser *bPtr, int column);
372 /* ....................................................................... */
374 void WMInitializeApplication(char *applicationName, int *argc, char **argv);
376 void WMSetApplicationDataPath(char *path);
378 /* don't free the returned string */
379 char *WMGetApplicationName();
381 /* Try to locate resource file. ext may be NULL */
382 char *WMPathForResourceOfType(char *resource, char *ext);
384 WMScreen *WMCreateScreenWithRContext(Display *display, int screen,
385 RContext *context);
387 WMScreen *WMCreateScreen(Display *display, int screen);
389 WMScreen *WMCreateSimpleApplicationScreen(Display *display);
391 void WMScreenMainLoop(WMScreen *scr);
394 RContext *WMScreenRContext(WMScreen *scr);
396 void WMSetApplicationIconImage(WMScreen *app, WMPixmap *icon);
398 WMPixmap *WMGetApplicationIconImage(WMScreen *app);
400 void WMSetFocusToWidget(WMWidget *widget);
402 WMEventHook *WMHookEventHandler(WMEventHook *handler);
404 int WMHandleEvent(XEvent *event);
406 Bool WMScreenPending(WMScreen *scr);
408 void WMCreateEventHandler(WMView *view, unsigned long mask,
409 WMEventProc *eventProc, void *clientData);
411 void WMDeleteEventHandler(WMView *view, unsigned long mask,
412 WMEventProc *eventProc, void *clientData);
414 int WMIsDoubleClick(XEvent *event);
416 void WMNextEvent(Display *dpy, XEvent *event);
418 void WMMaskEvent(Display *dpy, long mask, XEvent *event);
420 WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback *callback,
421 void *cdata);
423 void WMDeleteTimerWithClientData(void *cdata);
425 void WMDeleteTimerHandler(WMHandlerID handlerID);
427 WMHandlerID WMAddIdleHandler(WMCallback *callback, void *cdata);
429 void WMDeleteIdleHandler(WMHandlerID handlerID);
431 WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc,
432 void *clientData);
434 void WMDeleteInputHandler(WMHandlerID handlerID);
436 /* ....................................................................... */
438 void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation,
439 WMSize mouseOffset, XEvent *event, Bool slideBack);
443 /* ....................................................................... */
445 WMFont *WMCreateFont(WMScreen *scrPtr, char *fontName);
447 WMFont *WMCreateFontInDefaultEncoding(WMScreen *scrPtr, char *fontName);
449 WMFont *WMRetainFont(WMFont *font);
451 void WMReleaseFont(WMFont *font);
453 unsigned int WMFontHeight(WMFont *font);
456 WMFont *WMUserFontOfSize(WMScreen *scrPtr, int size);
458 WMFont *WMUserFixedPitchFontOfSize(WMScreen *scrPtr, int size);
461 WMFont *WMSystemFontOfSize(WMScreen *scrPtr, int size);
463 WMFont *WMBoldSystemFontOfSize(WMScreen *scrPtr, int size);
465 XFontSet WMGetFontFontSet(WMFont *font);
467 /* ....................................................................... */
469 WMPixmap *WMRetainPixmap(WMPixmap *pixmap);
471 void WMReleasePixmap(WMPixmap *pixmap);
473 WMPixmap *WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap,
474 Pixmap mask, int width, int height,
475 int depth);
477 WMPixmap *WMCreatePixmapFromRImage(WMScreen *scrPtr, RImage *image,
478 int threshold);
480 WMPixmap *WMCreatePixmapFromXPMData(WMScreen *scrPtr, char **data);
482 WMSize WMGetPixmapSize(WMPixmap *pixmap);
484 WMPixmap *WMCreatePixmapFromFile(WMScreen *scrPtr, char *fileName);
486 WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, char *fileName,
487 RColor *color);
489 Pixmap WMGetPixmapXID(WMPixmap *pixmap);
491 Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
493 WMPixmap *WMGetSystemPixmap(WMScreen *scr, int image);
495 /* ....................................................................... */
498 WMColor *WMDarkGrayColor(WMScreen *scr);
500 WMColor *WMGrayColor(WMScreen *scr);
502 WMColor *WMBlackColor(WMScreen *scr);
504 WMColor *WMWhiteColor(WMScreen *scr);
506 void WMSetColorInGC(WMColor *color, GC gc);
508 GC WMColorGC(WMColor *color);
510 WMPixel WMColorPixel(WMColor *color);
512 void WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y,
513 unsigned int width, unsigned int height);
515 void WMReleaseColor(WMColor *color);
517 WMColor *WMRetainColor(WMColor *color);
519 WMColor *WMCreateRGBColor(WMScreen *scr, unsigned short red,
520 unsigned short green, unsigned short blue,
521 Bool exact);
523 WMColor *WMCreateNamedColor(WMScreen *scr, char *name, Bool exact);
525 unsigned short WMRedComponentOfColor(WMColor *color);
527 unsigned short WMGreenComponentOfColor(WMColor *color);
529 unsigned short WMBlueComponentOfColor(WMColor *color);
531 char *WMGetColorRGBDescription(WMColor *color);
533 /* ....................................................................... */
536 void WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
537 int y, char *text, int length);
539 void WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
540 int y, char *text, int length);
542 int WMWidthOfString(WMFont *font, char *text, int length);
546 /* ....................................................................... */
548 WMScreen *WMWidgetScreen(WMWidget *w);
550 Display *WMScreenDisplay(WMScreen *scr);
552 void WMUnmapWidget(WMWidget *w);
554 void WMMapWidget(WMWidget *w);
556 void WMMoveWidget(WMWidget *w, int x, int y);
558 void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height);
560 void WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color);
562 void WMMapSubwidgets(WMWidget *w);
564 void WMUnmapSubwidgets(WMWidget *w);
566 void WMRealizeWidget(WMWidget *w);
568 void WMDestroyWidget(WMWidget *widget);
570 void WMHangData(WMWidget *widget, void *data);
572 void *WMGetHangedData(WMWidget *widget);
574 unsigned int WMWidgetWidth(WMWidget *w);
576 unsigned int WMWidgetHeight(WMWidget *w);
578 Window WMWidgetXID(WMWidget *w);
580 Window WMViewXID(WMView *view);
582 void WMRedisplayWidget(WMWidget *w);
584 void WMSetViewNotifySizeChanges(WMView *view, Bool flag);
586 WMSize WMGetViewSize(WMView *view);
588 WMPoint WMGetViewPosition(WMView *view);
590 WMWidget *WMWidgetOfView(WMView *view);
592 /* notifications */
593 extern char *WMViewSizeDidChangeNotification;
595 extern char *WMViewRealizedNotification;
597 /* ....................................................................... */
599 WMWindow *WMCreateWindow(WMScreen *screen, char *name);
601 WMWindow *WMCreateWindowWithStyle(WMScreen *screen, char *name, int style);
603 WMWindow *WMCreatePanelWithStyleForWindow(WMWindow *owner, char *name,
604 int style);
606 WMWindow *WMCreatePanelForWindow(WMWindow *owner, char *name);
608 void WMChangePanelOwner(WMWindow *win, WMWindow *newOwner);
610 void WMSetWindowTitle(WMWindow *wPtr, char *title);
612 void WMSetWindowMiniwindowTitle(WMWindow *win, char *title);
614 void WMSetWindowMiniwindowImage(WMWindow *win, WMPixmap *pixmap);
616 void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData);
618 void WMSetWindowMaxSize(WMWindow *win, unsigned width, unsigned height);
620 void WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height);
622 void WMSetWindowBaseSize(WMWindow *win, unsigned width, unsigned height);
624 void WMSetWindowResizeIncrements(WMWindow *win, unsigned wIncr, unsigned hIncr);
626 void WMSetWindowLevel(WMWindow *win, int level);
628 void WMSetWindowDocumentEdited(WMWindow *win, Bool flag);
630 void WMCloseWindow(WMWindow *win);
632 /* ....................................................................... */
634 void WMSetButtonAction(WMButton *bPtr, WMAction *action, void *clientData);
636 #define WMCreateCommandButton(parent) \
637 WMCreateCustomButton((parent), WBBSpringLoadedMask\
638 |WBBPushInMask\
639 |WBBPushLightMask\
640 |WBBPushChangeMask)
642 #define WMCreateRadioButton(parent) \
643 WMCreateButton((parent), WBTRadio)
645 #define WMCreateSwitchButton(parent) \
646 WMCreateButton((parent), WBTSwitch)
648 WMButton *WMCreateButton(WMWidget *parent, WMButtonType type);
650 WMButton *WMCreateCustomButton(WMWidget *parent, int behaviourMask);
652 void WMSetButtonImage(WMButton *bPtr, WMPixmap *image);
654 void WMSetButtonAltImage(WMButton *bPtr, WMPixmap *image);
656 void WMSetButtonImagePosition(WMButton *bPtr, WMImagePosition position);
658 void WMSetButtonFont(WMButton *bPtr, WMFont *font);
660 void WMSetButtonTextAlignment(WMButton *bPtr, WMAlignment alignment);
662 void WMSetButtonText(WMButton *bPtr, char *text);
664 void WMSetButtonAltText(WMButton *bPtr, char *text);
666 void WMSetButtonSelected(WMButton *bPtr, int isSelected);
668 int WMGetButtonSelected(WMButton *bPtr);
670 void WMSetButtonBordered(WMButton *bPtr, int isBordered);
672 void WMSetButtonEnabled(WMButton *bPtr, Bool flag);
674 void WMSetButtonTag(WMButton *bPtr, int tag);
676 void WMGroupButtons(WMButton *bPtr, WMButton *newMember);
678 void WMPerformButtonClick(WMButton *bPtr);
680 void WMSetButtonContinuous(WMButton *bPtr, Bool flag);
682 void WMSetButtonPeriodicDelay(WMButton *bPtr, float delay, float interval);
684 /* ....................................................................... */
686 WMLabel *WMCreateLabel(WMWidget *parent);
688 void WMSetLabelWraps(WMLabel *lPtr, Bool flag);
690 void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
692 void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
694 void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
696 void WMSetLabelRelief(WMLabel *lPtr, WMReliefType relief);
698 void WMSetLabelText(WMLabel *lPtr, char *text);
700 void WMSetLabelFont(WMLabel *lPtr, WMFont *font);
702 void WMSetLabelTextColor(WMLabel *lPtr, WMColor *color);
704 /* ....................................................................... */
706 WMFrame *WMCreateFrame(WMWidget *parent);
708 void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position);
710 void WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief);
712 void WMSetFrameTitle(WMFrame *fPtr, char *title);
714 /* ....................................................................... */
716 WMTextField *WMCreateTextField(WMWidget *parent);
718 void WMInsertTextFieldText(WMTextField *tPtr, char *text, int position);
720 void WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range);
722 /* you can free the returned string */
723 char *WMGetTextFieldText(WMTextField *tPtr);
725 void WMSetTextFieldText(WMTextField *tPtr, char *text);
727 void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment);
729 void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
731 void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag);
733 void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
736 extern char *WMTextDidChangeNotification;
737 extern char *WMTextDidBeginEditingNotification;
738 extern char *WMTextDidEndEditingNotification;
740 /* ....................................................................... */
742 WMScroller *WMCreateScroller(WMWidget *parent);
744 void WMSetScrollerParameters(WMScroller *sPtr, float floatValue,
745 float knobProportion);
747 float WMGetScrollerKnobProportion(WMScroller *sPtr);
749 float WMGetScrollerValue(WMScroller *sPtr);
751 WMScrollerPart WMGetScrollerHitPart(WMScroller *sPtr);
753 void WMSetScrollerAction(WMScroller *sPtr, WMAction *action, void *clientData);
755 void WMSetScrollerArrowsPosition(WMScroller *sPtr,
756 WMScrollArrowPosition position);
758 /* ....................................................................... */
760 WMList *WMCreateList(WMWidget *parent);
762 #define WMAddListItem(lPtr, text) WMInsertListItem((lPtr), -1, (text))
764 WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
766 WMListItem *WMAddSortedListItem(WMList *lPtr, char *text);
768 int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
770 WMListItem *WMGetListItem(WMList *lPtr, int row);
772 void WMRemoveListItem(WMList *lPtr, int row);
774 void WMSelectListItem(WMList *lPtr, int row);
776 void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc);
778 void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
780 /* don't free the returned data */
781 WMListItem *WMGetListSelectedItem(WMList *lPtr);
783 int WMGetListSelectedItemRow(WMList *lPtr);
785 void WMSetListAction(WMList *lPtr, WMAction *action, void *clientData);
787 void WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData);
789 void WMClearList(WMList *lPtr);
791 int WMGetListNumberOfRows(WMList *lPtr);
793 void WMSetListPosition(WMList *lPtr, int row);
795 void WMSetListBottomPosition(WMList *lPtr, int row);
797 int WMGetListPosition(WMList *lPtr);
799 /* ....................................................................... */
801 WMBrowser *WMCreateBrowser(WMWidget *parent);
803 void WMSetBrowserPathSeparator(WMBrowser *bPtr, char *separator);
805 void WMSetBrowserTitled(WMBrowser *bPtr, Bool flag);
807 void WMLoadBrowserColumnZero(WMBrowser *bPtr);
809 int WMAddBrowserColumn(WMBrowser *bPtr);
811 void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row);
813 void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
815 WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
817 WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
819 Bool WMSetBrowserPath(WMBrowser *bPtr, char *path);
821 /* you can free the returned string */
822 char *WMGetBrowserPath(WMBrowser *bPtr);
823 /* you can free the returned string */
824 char *WMGetBrowserPathToColumn(WMBrowser *bPtr, int column);
826 void WMSetBrowserFillColumnProc(WMBrowser *bPtr,WMBrowserFillColumnProc *proc);
828 void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData);
830 WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column);
832 int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr);
834 int WMGetBrowserSelectedColumn(WMBrowser *bPtr);
836 int WMGetBrowserSelectedRowInColumn(WMBrowser *bPtr, int column);
838 int WMGetBrowserNumberOfColumns(WMBrowser *bPtr);
840 WMList *WMGetBrowserListInColumn(WMBrowser *bPtr, int column);
842 extern char *WMBrowserDidScrollNotification;
844 /* ....................................................................... */
846 WMPopUpButton *WMCreatePopUpButton(WMWidget *parent);
848 void WMSetPopUpButtonAction(WMPopUpButton *sPtr, WMAction *action,
849 void *clientData);
851 void WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag);
853 void WMAddPopUpButtonItem(WMPopUpButton *bPtr, char *title);
855 void WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, char *title);
857 void WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index);
859 void WMSetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index, Bool flag);
861 void WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index);
863 int WMGetPopUpButtonSelectedItem(WMPopUpButton *bPtr);
865 void WMSetPopUpButtonText(WMPopUpButton *bPtr, char *text);
867 /* don't free the returned data */
868 char *WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
870 int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
872 /* ....................................................................... */
874 WMColorWell *WMCreateColorWell(WMWidget *parent);
876 void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
878 WMColor *WMGetColorWellColor(WMColorWell *cPtr);
880 /* ...................................................................... */
882 WMScrollView *WMCreateScrollView(WMWidget *parent);
884 void WMResizeScrollViewContent(WMScrollView *sPtr, unsigned int width,
885 unsigned int height);
887 void WMSetScrollViewHasHorizontalScroller(WMScrollView *sPtr, Bool flag);
889 void WMSetScrollViewHasVerticalScroller(WMScrollView *sPtr, Bool flag);
891 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
893 void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type);
895 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
897 WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
899 WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
901 /* ....................................................................... */
903 WMSlider *WMCreateSlider(WMWidget *parent);
905 int WMGetSliderMinValue(WMSlider *slider);
907 int WMGetSliderMaxValue(WMSlider *slider);
909 int WMGetSliderValue(WMSlider *slider);
911 void WMSetSliderMinValue(WMSlider *slider, int value);
913 void WMSetSliderMaxValue(WMSlider *slider, int value);
915 void WMSetSliderValue(WMSlider *slider, int value);
917 void WMSetSliderContinuous(WMSlider *slider, Bool flag);
919 void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
921 /* ....................................................................... */
923 /* only supports 2 subviews */
924 WMSplitView *WMCreateSplitView(WMWidget *parent);
926 void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
928 void WMAdjustSplitViewSubviews(WMSplitView *sPtr);
930 void WMSetSplitViewConstrainProc(WMSplitView *sPtr,
931 WMSplitViewConstrainProc *proc);
934 void WMSetSplitViewResizeSubviewsProc(WMSplitView *sPtr,
935 WMSplitViewResizeSubviewsProc *proc);
938 int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
941 /* ....................................................................... */
943 int WMRunAlertPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
944 char *defaultButton, char *alternateButton,
945 char *otherButton);
947 /* you can free the returned string */
948 char *WMRunInputPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
949 char *defaultText, char *okButton, char *cancelButton);
951 WMAlertPanel *WMCreateAlertPanel(WMScreen *app, WMWindow *owner, char *title,
952 char *msg, char *defaultButton,
953 char *alternateButton, char *otherButton);
955 WMInputPanel *WMCreateInputPanel(WMScreen *app, WMWindow *owner, char *title,
956 char *msg, char *defaultText, char *okButton,
957 char *cancelButton);
959 void WMDestroyAlertPanel(WMAlertPanel *panel);
961 void WMDestroyInputPanel(WMInputPanel *panel);
963 /* ....................................................................... */
965 /* only 1 instance per WMScreen */
966 WMOpenPanel *WMGetOpenPanel(WMScreen *app);
968 WMSavePanel *WMGetSavePanel(WMScreen *scrPtr);
970 void WMSetFilePanelCanChooseDirectories(WMFilePanel *panel, int flag);
972 void WMSetFilePanelCanChooseFiles(WMFilePanel *panel, int flag);
974 void WMSetFilePanelDirectory(WMFilePanel *panel, char *path);
976 /* you can free the returned string */
977 char *WMGetFilePanelFileName(WMFilePanel *panel);
979 void WMFreeFilePanel(WMFilePanel *panel);
981 int WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner,
982 char *path, char *name, char **fileTypes);
984 int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
985 char *path, char *name);
987 /* ...................................................................... */
989 /* only 1 instance per WMScreen */
990 WMFontPanel *WMGetFontPanel(WMScreen *scr);
992 void WMShowFontPanel(WMFontPanel *panel);
994 void WMHideFontPanel(WMFontPanel *panel);
996 void WMSetFontPanelFont(WMFontPanel *panel, WMFont *font);
998 /* you can free the returned string */
999 char *WMGetFontPanelFontName(WMFontPanel *panel);
1001 WMFont *WMGetFontPanelFont(WMFontPanel *panel);
1003 #endif