Updating to version 0.20.2
[wmaker-crm.git] / WINGs / WINGs.h
blobf8291189cac9c3d3959e5eeded50316f3abb4b95
3 #ifndef _WINGS_H_
4 #define _WINGS_H_
6 #include <wraster.h>
7 #include <X11/Xlib.h>
9 #define WINGS_H_VERSION 980930
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;
289 void *clientData; /* ptr for user clientdata. */
291 struct WMListItem *nextPtr;
293 unsigned int uflags:16; /* flags for the user */
294 unsigned int selected:1;
295 unsigned int disabled:1;
296 unsigned int isBranch:1;
297 unsigned int loaded:1;
298 } WMListItem;
300 /* struct for message panel */
301 typedef struct WMAlertPanel {
302 WMWindow *win; /* window */
303 WMButton *defBtn; /* default button */
304 WMButton *altBtn; /* alternative button */
305 WMButton *othBtn; /* other button */
306 WMLabel *iLbl; /* icon label */
307 WMLabel *tLbl; /* title label */
308 WMLabel *mLbl; /* message label */
309 WMFrame *line; /* separator */
310 short result; /* button that was pushed */
311 short done;
313 KeyCode retKey;
314 } WMAlertPanel;
317 typedef struct WMInputPanel {
318 WMWindow *win; /* window */
319 WMButton *defBtn; /* default button */
320 WMButton *altBtn; /* alternative button */
321 WMLabel *tLbl; /* title label */
322 WMLabel *mLbl; /* message label */
323 WMTextField *text; /* text field */
324 short result; /* button that was pushed */
325 short done;
327 KeyCode retKey;
328 } WMInputPanel;
336 typedef void *WMHandlerID;
338 typedef void WMInputProc(int fd, int mask, void *clientData);
340 typedef void WMEventProc(XEvent *event, void *clientData);
342 typedef void WMEventHook(XEvent *event);
344 /* self is set to the widget from where the callback is being called and
345 * clientData to the data set to with WMSetClientData() */
346 typedef void WMAction(WMWidget *self, void *clientData);
349 typedef void WMCallback(void *data);
352 /* delegate method like stuff */
353 typedef void WMFreeDataProc(void *data);
355 typedef void WMListDrawProc(WMList *lPtr, Drawable d, char *text, int state,
356 WMRect *rect);
359 typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
360 unsigned int oldWidth,
361 unsigned int oldHeight);
364 typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex,
365 int *minCoordinate, int *maxCoordinate);
367 typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
370 typedef void WMBrowserFillColumnProc(WMBrowser *bPtr, int column);
373 /* ....................................................................... */
375 void WMInitializeApplication(char *applicationName, int *argc, char **argv);
377 void WMSetApplicationDataPath(char *path);
379 /* don't free the returned string */
380 char *WMGetApplicationName();
382 /* Try to locate resource file. ext may be NULL */
383 char *WMPathForResourceOfType(char *resource, char *ext);
385 WMScreen *WMCreateScreenWithRContext(Display *display, int screen,
386 RContext *context);
388 WMScreen *WMCreateScreen(Display *display, int screen);
390 WMScreen *WMCreateSimpleApplicationScreen(Display *display);
392 void WMScreenMainLoop(WMScreen *scr);
395 RContext *WMScreenRContext(WMScreen *scr);
397 Display *WMScreenDisplay(WMScreen *scr);
399 int WMScreenDepth(WMScreen *scr);
403 void WMSetApplicationIconImage(WMScreen *app, WMPixmap *icon);
405 WMPixmap *WMGetApplicationIconImage(WMScreen *app);
407 void WMSetFocusToWidget(WMWidget *widget);
409 WMEventHook *WMHookEventHandler(WMEventHook *handler);
411 int WMHandleEvent(XEvent *event);
413 Bool WMScreenPending(WMScreen *scr);
415 void WMCreateEventHandler(WMView *view, unsigned long mask,
416 WMEventProc *eventProc, void *clientData);
418 void WMDeleteEventHandler(WMView *view, unsigned long mask,
419 WMEventProc *eventProc, void *clientData);
421 int WMIsDoubleClick(XEvent *event);
423 void WMNextEvent(Display *dpy, XEvent *event);
425 void WMMaskEvent(Display *dpy, long mask, XEvent *event);
427 WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback *callback,
428 void *cdata);
430 void WMDeleteTimerWithClientData(void *cdata);
432 void WMDeleteTimerHandler(WMHandlerID handlerID);
434 WMHandlerID WMAddIdleHandler(WMCallback *callback, void *cdata);
436 void WMDeleteIdleHandler(WMHandlerID handlerID);
438 WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc,
439 void *clientData);
441 void WMDeleteInputHandler(WMHandlerID handlerID);
443 /* ....................................................................... */
445 void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation,
446 WMSize mouseOffset, XEvent *event, Bool slideBack);
450 /* ....................................................................... */
452 WMFont *WMCreateFont(WMScreen *scrPtr, char *fontName);
454 WMFont *WMCreateFontInDefaultEncoding(WMScreen *scrPtr, char *fontName);
456 WMFont *WMRetainFont(WMFont *font);
458 void WMReleaseFont(WMFont *font);
460 unsigned int WMFontHeight(WMFont *font);
463 WMFont *WMUserFontOfSize(WMScreen *scrPtr, int size);
465 WMFont *WMUserFixedPitchFontOfSize(WMScreen *scrPtr, int size);
468 WMFont *WMSystemFontOfSize(WMScreen *scrPtr, int size);
470 WMFont *WMBoldSystemFontOfSize(WMScreen *scrPtr, int size);
472 XFontSet WMGetFontFontSet(WMFont *font);
474 /* ....................................................................... */
476 WMPixmap *WMRetainPixmap(WMPixmap *pixmap);
478 void WMReleasePixmap(WMPixmap *pixmap);
480 WMPixmap *WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap,
481 Pixmap mask, int width, int height,
482 int depth);
484 WMPixmap *WMCreatePixmapFromRImage(WMScreen *scrPtr, RImage *image,
485 int threshold);
487 WMPixmap *WMCreatePixmapFromXPMData(WMScreen *scrPtr, char **data);
489 WMSize WMGetPixmapSize(WMPixmap *pixmap);
491 WMPixmap *WMCreatePixmapFromFile(WMScreen *scrPtr, char *fileName);
493 WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, char *fileName,
494 RColor *color);
496 Pixmap WMGetPixmapXID(WMPixmap *pixmap);
498 Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
500 WMPixmap *WMGetSystemPixmap(WMScreen *scr, int image);
502 /* ....................................................................... */
505 WMColor *WMDarkGrayColor(WMScreen *scr);
507 WMColor *WMGrayColor(WMScreen *scr);
509 WMColor *WMBlackColor(WMScreen *scr);
511 WMColor *WMWhiteColor(WMScreen *scr);
513 void WMSetColorInGC(WMColor *color, GC gc);
515 GC WMColorGC(WMColor *color);
517 WMPixel WMColorPixel(WMColor *color);
519 void WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y,
520 unsigned int width, unsigned int height);
522 void WMReleaseColor(WMColor *color);
524 WMColor *WMRetainColor(WMColor *color);
526 WMColor *WMCreateRGBColor(WMScreen *scr, unsigned short red,
527 unsigned short green, unsigned short blue,
528 Bool exact);
530 WMColor *WMCreateNamedColor(WMScreen *scr, char *name, Bool exact);
532 unsigned short WMRedComponentOfColor(WMColor *color);
534 unsigned short WMGreenComponentOfColor(WMColor *color);
536 unsigned short WMBlueComponentOfColor(WMColor *color);
538 char *WMGetColorRGBDescription(WMColor *color);
540 /* ....................................................................... */
543 void WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
544 int y, char *text, int length);
546 void WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
547 int y, char *text, int length);
549 int WMWidthOfString(WMFont *font, char *text, int length);
553 /* ....................................................................... */
555 WMScreen *WMWidgetScreen(WMWidget *w);
557 void WMUnmapWidget(WMWidget *w);
559 void WMMapWidget(WMWidget *w);
561 void WMMoveWidget(WMWidget *w, int x, int y);
563 void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height);
565 void WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color);
567 void WMMapSubwidgets(WMWidget *w);
569 void WMUnmapSubwidgets(WMWidget *w);
571 void WMRealizeWidget(WMWidget *w);
573 void WMDestroyWidget(WMWidget *widget);
575 void WMHangData(WMWidget *widget, void *data);
577 void *WMGetHangedData(WMWidget *widget);
579 unsigned int WMWidgetWidth(WMWidget *w);
581 unsigned int WMWidgetHeight(WMWidget *w);
583 Window WMWidgetXID(WMWidget *w);
585 Window WMViewXID(WMView *view);
587 void WMRedisplayWidget(WMWidget *w);
589 void WMSetViewNotifySizeChanges(WMView *view, Bool flag);
591 WMSize WMGetViewSize(WMView *view);
593 WMPoint WMGetViewPosition(WMView *view);
595 WMWidget *WMWidgetOfView(WMView *view);
597 /* notifications */
598 extern char *WMViewSizeDidChangeNotification;
600 extern char *WMViewRealizedNotification;
602 /* ....................................................................... */
604 WMWindow *WMCreateWindow(WMScreen *screen, char *name);
606 WMWindow *WMCreateWindowWithStyle(WMScreen *screen, char *name, int style);
608 WMWindow *WMCreatePanelWithStyleForWindow(WMWindow *owner, char *name,
609 int style);
611 WMWindow *WMCreatePanelForWindow(WMWindow *owner, char *name);
613 void WMChangePanelOwner(WMWindow *win, WMWindow *newOwner);
615 void WMSetWindowTitle(WMWindow *wPtr, char *title);
617 void WMSetWindowMiniwindowTitle(WMWindow *win, char *title);
619 void WMSetWindowMiniwindowImage(WMWindow *win, WMPixmap *pixmap);
621 void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData);
623 void WMSetWindowMaxSize(WMWindow *win, unsigned width, unsigned height);
625 void WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height);
627 void WMSetWindowBaseSize(WMWindow *win, unsigned width, unsigned height);
629 void WMSetWindowResizeIncrements(WMWindow *win, unsigned wIncr, unsigned hIncr);
631 void WMSetWindowLevel(WMWindow *win, int level);
633 void WMSetWindowDocumentEdited(WMWindow *win, Bool flag);
635 void WMCloseWindow(WMWindow *win);
637 /* ....................................................................... */
639 void WMSetButtonAction(WMButton *bPtr, WMAction *action, void *clientData);
641 #define WMCreateCommandButton(parent) \
642 WMCreateCustomButton((parent), WBBSpringLoadedMask\
643 |WBBPushInMask\
644 |WBBPushLightMask\
645 |WBBPushChangeMask)
647 #define WMCreateRadioButton(parent) \
648 WMCreateButton((parent), WBTRadio)
650 #define WMCreateSwitchButton(parent) \
651 WMCreateButton((parent), WBTSwitch)
653 WMButton *WMCreateButton(WMWidget *parent, WMButtonType type);
655 WMButton *WMCreateCustomButton(WMWidget *parent, int behaviourMask);
657 void WMSetButtonImage(WMButton *bPtr, WMPixmap *image);
659 void WMSetButtonAltImage(WMButton *bPtr, WMPixmap *image);
661 void WMSetButtonImagePosition(WMButton *bPtr, WMImagePosition position);
663 void WMSetButtonFont(WMButton *bPtr, WMFont *font);
665 void WMSetButtonTextAlignment(WMButton *bPtr, WMAlignment alignment);
667 void WMSetButtonText(WMButton *bPtr, char *text);
669 void WMSetButtonAltText(WMButton *bPtr, char *text);
671 void WMSetButtonSelected(WMButton *bPtr, int isSelected);
673 int WMGetButtonSelected(WMButton *bPtr);
675 void WMSetButtonBordered(WMButton *bPtr, int isBordered);
677 void WMSetButtonEnabled(WMButton *bPtr, Bool flag);
679 void WMSetButtonTag(WMButton *bPtr, int tag);
681 void WMGroupButtons(WMButton *bPtr, WMButton *newMember);
683 void WMPerformButtonClick(WMButton *bPtr);
685 void WMSetButtonContinuous(WMButton *bPtr, Bool flag);
687 void WMSetButtonPeriodicDelay(WMButton *bPtr, float delay, float interval);
689 /* ....................................................................... */
691 WMLabel *WMCreateLabel(WMWidget *parent);
693 void WMSetLabelWraps(WMLabel *lPtr, Bool flag);
695 void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
697 void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
699 void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
701 void WMSetLabelRelief(WMLabel *lPtr, WMReliefType relief);
703 void WMSetLabelText(WMLabel *lPtr, char *text);
705 void WMSetLabelFont(WMLabel *lPtr, WMFont *font);
707 void WMSetLabelTextColor(WMLabel *lPtr, WMColor *color);
709 /* ....................................................................... */
711 WMFrame *WMCreateFrame(WMWidget *parent);
713 void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position);
715 void WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief);
717 void WMSetFrameTitle(WMFrame *fPtr, char *title);
719 /* ....................................................................... */
721 WMTextField *WMCreateTextField(WMWidget *parent);
723 void WMInsertTextFieldText(WMTextField *tPtr, char *text, int position);
725 void WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range);
727 /* you can free the returned string */
728 char *WMGetTextFieldText(WMTextField *tPtr);
730 void WMSetTextFieldText(WMTextField *tPtr, char *text);
732 void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment);
734 void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
736 void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag);
738 void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
741 extern char *WMTextDidChangeNotification;
742 extern char *WMTextDidBeginEditingNotification;
743 extern char *WMTextDidEndEditingNotification;
745 /* ....................................................................... */
747 WMScroller *WMCreateScroller(WMWidget *parent);
749 void WMSetScrollerParameters(WMScroller *sPtr, float floatValue,
750 float knobProportion);
752 float WMGetScrollerKnobProportion(WMScroller *sPtr);
754 float WMGetScrollerValue(WMScroller *sPtr);
756 WMScrollerPart WMGetScrollerHitPart(WMScroller *sPtr);
758 void WMSetScrollerAction(WMScroller *sPtr, WMAction *action, void *clientData);
760 void WMSetScrollerArrowsPosition(WMScroller *sPtr,
761 WMScrollArrowPosition position);
763 /* ....................................................................... */
765 WMList *WMCreateList(WMWidget *parent);
767 #define WMAddListItem(lPtr, text) WMInsertListItem((lPtr), -1, (text))
769 WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
771 WMListItem *WMAddSortedListItem(WMList *lPtr, char *text);
773 int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
775 WMListItem *WMGetListItem(WMList *lPtr, int row);
777 void WMRemoveListItem(WMList *lPtr, int row);
779 void WMSelectListItem(WMList *lPtr, int row);
781 void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc);
783 void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
785 /* don't free the returned data */
786 WMListItem *WMGetListSelectedItem(WMList *lPtr);
788 int WMGetListSelectedItemRow(WMList *lPtr);
790 void WMSetListAction(WMList *lPtr, WMAction *action, void *clientData);
792 void WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData);
794 void WMClearList(WMList *lPtr);
796 int WMGetListNumberOfRows(WMList *lPtr);
798 void WMSetListPosition(WMList *lPtr, int row);
800 void WMSetListBottomPosition(WMList *lPtr, int row);
802 int WMGetListPosition(WMList *lPtr);
804 /* ....................................................................... */
806 WMBrowser *WMCreateBrowser(WMWidget *parent);
808 void WMSetBrowserPathSeparator(WMBrowser *bPtr, char *separator);
810 void WMSetBrowserTitled(WMBrowser *bPtr, Bool flag);
812 void WMLoadBrowserColumnZero(WMBrowser *bPtr);
814 int WMAddBrowserColumn(WMBrowser *bPtr);
816 void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row);
818 void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
820 WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
822 WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
824 Bool WMSetBrowserPath(WMBrowser *bPtr, char *path);
826 /* you can free the returned string */
827 char *WMGetBrowserPath(WMBrowser *bPtr);
828 /* you can free the returned string */
829 char *WMGetBrowserPathToColumn(WMBrowser *bPtr, int column);
831 void WMSetBrowserFillColumnProc(WMBrowser *bPtr,WMBrowserFillColumnProc *proc);
833 void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData);
835 WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column);
837 int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr);
839 int WMGetBrowserSelectedColumn(WMBrowser *bPtr);
841 int WMGetBrowserSelectedRowInColumn(WMBrowser *bPtr, int column);
843 int WMGetBrowserNumberOfColumns(WMBrowser *bPtr);
845 WMList *WMGetBrowserListInColumn(WMBrowser *bPtr, int column);
847 extern char *WMBrowserDidScrollNotification;
849 /* ....................................................................... */
851 WMPopUpButton *WMCreatePopUpButton(WMWidget *parent);
853 void WMSetPopUpButtonAction(WMPopUpButton *sPtr, WMAction *action,
854 void *clientData);
856 void WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag);
858 void WMAddPopUpButtonItem(WMPopUpButton *bPtr, char *title);
860 void WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, char *title);
862 void WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index);
864 void WMSetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index, Bool flag);
866 void WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index);
868 int WMGetPopUpButtonSelectedItem(WMPopUpButton *bPtr);
870 void WMSetPopUpButtonText(WMPopUpButton *bPtr, char *text);
872 /* don't free the returned data */
873 char *WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
875 int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
877 /* ....................................................................... */
879 WMColorWell *WMCreateColorWell(WMWidget *parent);
881 void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
883 WMColor *WMGetColorWellColor(WMColorWell *cPtr);
885 /* ...................................................................... */
887 WMScrollView *WMCreateScrollView(WMWidget *parent);
889 void WMResizeScrollViewContent(WMScrollView *sPtr, unsigned int width,
890 unsigned int height);
892 void WMSetScrollViewHasHorizontalScroller(WMScrollView *sPtr, Bool flag);
894 void WMSetScrollViewHasVerticalScroller(WMScrollView *sPtr, Bool flag);
896 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
898 void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type);
900 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
902 WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
904 WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
906 void WMSetScrollViewLineScroll(WMScrollView *sPtr, int amount);
908 void WMSetScrollViewPageScroll(WMScrollView *sPtr, int amount);
910 /* ....................................................................... */
912 WMSlider *WMCreateSlider(WMWidget *parent);
914 int WMGetSliderMinValue(WMSlider *slider);
916 int WMGetSliderMaxValue(WMSlider *slider);
918 int WMGetSliderValue(WMSlider *slider);
920 void WMSetSliderMinValue(WMSlider *slider, int value);
922 void WMSetSliderMaxValue(WMSlider *slider, int value);
924 void WMSetSliderValue(WMSlider *slider, int value);
926 void WMSetSliderContinuous(WMSlider *slider, Bool flag);
928 void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
930 /* ....................................................................... */
932 /* only supports 2 subviews */
933 WMSplitView *WMCreateSplitView(WMWidget *parent);
935 void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
937 void WMAdjustSplitViewSubviews(WMSplitView *sPtr);
939 void WMSetSplitViewConstrainProc(WMSplitView *sPtr,
940 WMSplitViewConstrainProc *proc);
943 void WMSetSplitViewResizeSubviewsProc(WMSplitView *sPtr,
944 WMSplitViewResizeSubviewsProc *proc);
947 int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
950 /* ....................................................................... */
952 int WMRunAlertPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
953 char *defaultButton, char *alternateButton,
954 char *otherButton);
956 /* you can free the returned string */
957 char *WMRunInputPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
958 char *defaultText, char *okButton, char *cancelButton);
960 WMAlertPanel *WMCreateAlertPanel(WMScreen *app, WMWindow *owner, char *title,
961 char *msg, char *defaultButton,
962 char *alternateButton, char *otherButton);
964 WMInputPanel *WMCreateInputPanel(WMScreen *app, WMWindow *owner, char *title,
965 char *msg, char *defaultText, char *okButton,
966 char *cancelButton);
968 void WMDestroyAlertPanel(WMAlertPanel *panel);
970 void WMDestroyInputPanel(WMInputPanel *panel);
972 /* ....................................................................... */
974 /* only 1 instance per WMScreen */
975 WMOpenPanel *WMGetOpenPanel(WMScreen *scrPtr);
977 WMSavePanel *WMGetSavePanel(WMScreen *scrPtr);
979 void WMSetFilePanelCanChooseDirectories(WMFilePanel *panel, int flag);
981 void WMSetFilePanelCanChooseFiles(WMFilePanel *panel, int flag);
983 void WMSetFilePanelDirectory(WMFilePanel *panel, char *path);
985 /* you can free the returned string */
986 char *WMGetFilePanelFileName(WMFilePanel *panel);
988 void WMFreeFilePanel(WMFilePanel *panel);
990 int WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner,
991 char *path, char *name, char **fileTypes);
993 int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
994 char *path, char *name);
996 /* ...................................................................... */
998 /* only 1 instance per WMScreen */
999 WMFontPanel *WMGetFontPanel(WMScreen *scr);
1001 void WMShowFontPanel(WMFontPanel *panel);
1003 void WMHideFontPanel(WMFontPanel *panel);
1005 void WMSetFontPanelFont(WMFontPanel *panel, WMFont *font);
1007 /* you can free the returned string */
1008 char *WMGetFontPanelFontName(WMFontPanel *panel);
1010 WMFont *WMGetFontPanelFont(WMFontPanel *panel);
1012 #endif