Code update for Window Maker version 0.50.0
[wmaker-crm.git] / WINGs / WINGs.h
blob4f57710e80045f1008c0a692aa4d25b0d0f9d5d5
3 #ifndef _WINGS_H_
4 #define _WINGS_H_
6 #include <wraster.h>
7 #include <X11/Xlib.h>
9 #define WINGS_H_VERSION 981220
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
191 #define WSICheckMark 12
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, int index, Drawable d, char *text,
356 int state, 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 void WMDrawPixmap(WMPixmap *pixmap, Drawable d, int x, int y);
498 Pixmap WMGetPixmapXID(WMPixmap *pixmap);
500 Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
502 WMPixmap *WMGetSystemPixmap(WMScreen *scr, int image);
504 /* ....................................................................... */
507 WMColor *WMDarkGrayColor(WMScreen *scr);
509 WMColor *WMGrayColor(WMScreen *scr);
511 WMColor *WMBlackColor(WMScreen *scr);
513 WMColor *WMWhiteColor(WMScreen *scr);
515 void WMSetColorInGC(WMColor *color, GC gc);
517 GC WMColorGC(WMColor *color);
519 WMPixel WMColorPixel(WMColor *color);
521 void WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y,
522 unsigned int width, unsigned int height);
524 void WMReleaseColor(WMColor *color);
526 WMColor *WMRetainColor(WMColor *color);
528 WMColor *WMCreateRGBColor(WMScreen *scr, unsigned short red,
529 unsigned short green, unsigned short blue,
530 Bool exact);
532 WMColor *WMCreateNamedColor(WMScreen *scr, char *name, Bool exact);
534 unsigned short WMRedComponentOfColor(WMColor *color);
536 unsigned short WMGreenComponentOfColor(WMColor *color);
538 unsigned short WMBlueComponentOfColor(WMColor *color);
540 char *WMGetColorRGBDescription(WMColor *color);
542 /* ....................................................................... */
545 void WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
546 int y, char *text, int length);
548 void WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
549 int y, char *text, int length);
551 int WMWidthOfString(WMFont *font, char *text, int length);
555 /* ....................................................................... */
557 WMScreen *WMWidgetScreen(WMWidget *w);
559 void WMUnmapWidget(WMWidget *w);
561 void WMMapWidget(WMWidget *w);
563 void WMMoveWidget(WMWidget *w, int x, int y);
565 void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height);
567 void WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color);
569 void WMMapSubwidgets(WMWidget *w);
571 void WMUnmapSubwidgets(WMWidget *w);
573 void WMRealizeWidget(WMWidget *w);
575 void WMDestroyWidget(WMWidget *widget);
577 void WMHangData(WMWidget *widget, void *data);
579 void *WMGetHangedData(WMWidget *widget);
581 unsigned int WMWidgetWidth(WMWidget *w);
583 unsigned int WMWidgetHeight(WMWidget *w);
585 Window WMWidgetXID(WMWidget *w);
587 Window WMViewXID(WMView *view);
589 void WMRedisplayWidget(WMWidget *w);
591 void WMSetViewNotifySizeChanges(WMView *view, Bool flag);
593 WMSize WMGetViewSize(WMView *view);
595 WMPoint WMGetViewPosition(WMView *view);
597 WMWidget *WMWidgetOfView(WMView *view);
599 /* notifications */
600 extern char *WMViewSizeDidChangeNotification;
602 extern char *WMViewRealizedNotification;
604 /* ....................................................................... */
606 WMWindow *WMCreateWindow(WMScreen *screen, char *name);
608 WMWindow *WMCreateWindowWithStyle(WMScreen *screen, char *name, int style);
610 WMWindow *WMCreatePanelWithStyleForWindow(WMWindow *owner, char *name,
611 int style);
613 WMWindow *WMCreatePanelForWindow(WMWindow *owner, char *name);
615 void WMChangePanelOwner(WMWindow *win, WMWindow *newOwner);
617 void WMSetWindowTitle(WMWindow *wPtr, char *title);
619 void WMSetWindowMiniwindowTitle(WMWindow *win, char *title);
621 void WMSetWindowMiniwindowImage(WMWindow *win, WMPixmap *pixmap);
623 void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData);
625 void WMSetWindowMaxSize(WMWindow *win, unsigned width, unsigned height);
627 void WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height);
629 void WMSetWindowBaseSize(WMWindow *win, unsigned width, unsigned height);
631 void WMSetWindowResizeIncrements(WMWindow *win, unsigned wIncr, unsigned hIncr);
633 void WMSetWindowLevel(WMWindow *win, int level);
635 void WMSetWindowDocumentEdited(WMWindow *win, Bool flag);
637 void WMCloseWindow(WMWindow *win);
639 /* ....................................................................... */
641 void WMSetButtonAction(WMButton *bPtr, WMAction *action, void *clientData);
643 #define WMCreateCommandButton(parent) \
644 WMCreateCustomButton((parent), WBBSpringLoadedMask\
645 |WBBPushInMask\
646 |WBBPushLightMask\
647 |WBBPushChangeMask)
649 #define WMCreateRadioButton(parent) \
650 WMCreateButton((parent), WBTRadio)
652 #define WMCreateSwitchButton(parent) \
653 WMCreateButton((parent), WBTSwitch)
655 WMButton *WMCreateButton(WMWidget *parent, WMButtonType type);
657 WMButton *WMCreateCustomButton(WMWidget *parent, int behaviourMask);
659 void WMSetButtonImage(WMButton *bPtr, WMPixmap *image);
661 void WMSetButtonAltImage(WMButton *bPtr, WMPixmap *image);
663 void WMSetButtonImagePosition(WMButton *bPtr, WMImagePosition position);
665 void WMSetButtonFont(WMButton *bPtr, WMFont *font);
667 void WMSetButtonTextAlignment(WMButton *bPtr, WMAlignment alignment);
669 void WMSetButtonText(WMButton *bPtr, char *text);
671 void WMSetButtonAltText(WMButton *bPtr, char *text);
673 void WMSetButtonSelected(WMButton *bPtr, int isSelected);
675 int WMGetButtonSelected(WMButton *bPtr);
677 void WMSetButtonBordered(WMButton *bPtr, int isBordered);
679 void WMSetButtonEnabled(WMButton *bPtr, Bool flag);
681 void WMSetButtonTag(WMButton *bPtr, int tag);
683 void WMGroupButtons(WMButton *bPtr, WMButton *newMember);
685 void WMPerformButtonClick(WMButton *bPtr);
687 void WMSetButtonContinuous(WMButton *bPtr, Bool flag);
689 void WMSetButtonPeriodicDelay(WMButton *bPtr, float delay, float interval);
691 /* ....................................................................... */
693 WMLabel *WMCreateLabel(WMWidget *parent);
695 void WMSetLabelWraps(WMLabel *lPtr, Bool flag);
697 void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
699 WMPixmap *WMGetLabelImage(WMLabel *lPtr);
701 void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
703 void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
705 void WMSetLabelRelief(WMLabel *lPtr, WMReliefType relief);
707 void WMSetLabelText(WMLabel *lPtr, char *text);
709 void WMSetLabelFont(WMLabel *lPtr, WMFont *font);
711 void WMSetLabelTextColor(WMLabel *lPtr, WMColor *color);
713 /* ....................................................................... */
715 WMFrame *WMCreateFrame(WMWidget *parent);
717 void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position);
719 void WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief);
721 void WMSetFrameTitle(WMFrame *fPtr, char *title);
723 /* ....................................................................... */
725 WMTextField *WMCreateTextField(WMWidget *parent);
727 void WMInsertTextFieldText(WMTextField *tPtr, char *text, int position);
729 void WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range);
731 /* you can free the returned string */
732 char *WMGetTextFieldText(WMTextField *tPtr);
734 void WMSetTextFieldText(WMTextField *tPtr, char *text);
736 void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment);
738 void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
740 void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag);
742 void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
745 extern char *WMListDidScrollNotification;
746 extern char *WMTextDidChangeNotification;
747 extern char *WMTextDidBeginEditingNotification;
748 extern char *WMTextDidEndEditingNotification;
750 /* ....................................................................... */
752 WMScroller *WMCreateScroller(WMWidget *parent);
754 void WMSetScrollerParameters(WMScroller *sPtr, float floatValue,
755 float knobProportion);
757 float WMGetScrollerKnobProportion(WMScroller *sPtr);
759 float WMGetScrollerValue(WMScroller *sPtr);
761 WMScrollerPart WMGetScrollerHitPart(WMScroller *sPtr);
763 void WMSetScrollerAction(WMScroller *sPtr, WMAction *action, void *clientData);
765 void WMSetScrollerArrowsPosition(WMScroller *sPtr,
766 WMScrollArrowPosition position);
768 /* ....................................................................... */
770 WMList *WMCreateList(WMWidget *parent);
772 #define WMAddListItem(lPtr, text) WMInsertListItem((lPtr), -1, (text))
774 WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
776 WMListItem *WMAddSortedListItem(WMList *lPtr, char *text);
778 int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
780 WMListItem *WMGetListItem(WMList *lPtr, int row);
782 void WMRemoveListItem(WMList *lPtr, int row);
784 void WMSelectListItem(WMList *lPtr, int row);
786 void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc);
788 void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
790 int WMGetListItemHeight(WMList *lPtr);
792 /* don't free the returned data */
793 WMListItem *WMGetListSelectedItem(WMList *lPtr);
795 int WMGetListSelectedItemRow(WMList *lPtr);
797 void WMSetListAction(WMList *lPtr, WMAction *action, void *clientData);
799 void WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData);
801 void WMClearList(WMList *lPtr);
803 int WMGetListNumberOfRows(WMList *lPtr);
805 void WMSetListPosition(WMList *lPtr, int row);
807 void WMSetListBottomPosition(WMList *lPtr, int row);
809 int WMGetListPosition(WMList *lPtr);
811 extern char *WMListDidScrollNotification;
813 /* ....................................................................... */
815 WMBrowser *WMCreateBrowser(WMWidget *parent);
817 void WMSetBrowserPathSeparator(WMBrowser *bPtr, char *separator);
819 void WMSetBrowserTitled(WMBrowser *bPtr, Bool flag);
821 void WMLoadBrowserColumnZero(WMBrowser *bPtr);
823 int WMAddBrowserColumn(WMBrowser *bPtr);
825 void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row);
827 void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns);
829 void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
831 WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
833 WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
835 Bool WMSetBrowserPath(WMBrowser *bPtr, char *path);
837 /* you can free the returned string */
838 char *WMGetBrowserPath(WMBrowser *bPtr);
839 /* you can free the returned string */
840 char *WMGetBrowserPathToColumn(WMBrowser *bPtr, int column);
842 void WMSetBrowserFillColumnProc(WMBrowser *bPtr,WMBrowserFillColumnProc *proc);
844 void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData);
846 WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column);
848 int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr);
850 int WMGetBrowserSelectedColumn(WMBrowser *bPtr);
852 int WMGetBrowserSelectedRowInColumn(WMBrowser *bPtr, int column);
854 int WMGetBrowserNumberOfColumns(WMBrowser *bPtr);
856 WMList *WMGetBrowserListInColumn(WMBrowser *bPtr, int column);
858 extern char *WMBrowserDidScrollNotification;
860 /* ....................................................................... */
862 WMPopUpButton *WMCreatePopUpButton(WMWidget *parent);
864 void WMSetPopUpButtonAction(WMPopUpButton *sPtr, WMAction *action,
865 void *clientData);
867 void WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag);
869 void WMAddPopUpButtonItem(WMPopUpButton *bPtr, char *title);
871 void WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, char *title);
873 void WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index);
875 void WMSetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index, Bool flag);
877 void WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index);
879 int WMGetPopUpButtonSelectedItem(WMPopUpButton *bPtr);
881 void WMSetPopUpButtonText(WMPopUpButton *bPtr, char *text);
883 /* don't free the returned data */
884 char *WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
886 int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
888 void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
890 /* ....................................................................... */
892 WMColorWell *WMCreateColorWell(WMWidget *parent);
894 void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
896 WMColor *WMGetColorWellColor(WMColorWell *cPtr);
898 void WSetColorWellBordered(WMColorWell *cPtr, Bool flag);
900 /* ...................................................................... */
902 WMScrollView *WMCreateScrollView(WMWidget *parent);
904 void WMResizeScrollViewContent(WMScrollView *sPtr, unsigned int width,
905 unsigned int height);
907 void WMSetScrollViewHasHorizontalScroller(WMScrollView *sPtr, Bool flag);
909 void WMSetScrollViewHasVerticalScroller(WMScrollView *sPtr, Bool flag);
911 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
913 void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type);
915 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
917 WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
919 WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
921 void WMSetScrollViewLineScroll(WMScrollView *sPtr, int amount);
923 void WMSetScrollViewPageScroll(WMScrollView *sPtr, int amount);
925 /* ....................................................................... */
927 WMSlider *WMCreateSlider(WMWidget *parent);
929 int WMGetSliderMinValue(WMSlider *slider);
931 int WMGetSliderMaxValue(WMSlider *slider);
933 int WMGetSliderValue(WMSlider *slider);
935 void WMSetSliderMinValue(WMSlider *slider, int value);
937 void WMSetSliderMaxValue(WMSlider *slider, int value);
939 void WMSetSliderValue(WMSlider *slider, int value);
941 void WMSetSliderContinuous(WMSlider *slider, Bool flag);
943 void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
945 void WMSetSliderKnobThickness(WMSlider *sPtr, int thickness);
947 void WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap);
949 /* ....................................................................... */
951 /* only supports 2 subviews */
952 WMSplitView *WMCreateSplitView(WMWidget *parent);
954 void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
956 void WMAdjustSplitViewSubviews(WMSplitView *sPtr);
958 void WMSetSplitViewConstrainProc(WMSplitView *sPtr,
959 WMSplitViewConstrainProc *proc);
962 void WMSetSplitViewResizeSubviewsProc(WMSplitView *sPtr,
963 WMSplitViewResizeSubviewsProc *proc);
966 int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
969 /* ....................................................................... */
971 int WMRunAlertPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
972 char *defaultButton, char *alternateButton,
973 char *otherButton);
975 /* you can free the returned string */
976 char *WMRunInputPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
977 char *defaultText, char *okButton, char *cancelButton);
979 WMAlertPanel *WMCreateAlertPanel(WMScreen *app, WMWindow *owner, char *title,
980 char *msg, char *defaultButton,
981 char *alternateButton, char *otherButton);
983 WMInputPanel *WMCreateInputPanel(WMScreen *app, WMWindow *owner, char *title,
984 char *msg, char *defaultText, char *okButton,
985 char *cancelButton);
987 void WMDestroyAlertPanel(WMAlertPanel *panel);
989 void WMDestroyInputPanel(WMInputPanel *panel);
991 /* ....................................................................... */
993 /* only 1 instance per WMScreen */
994 WMOpenPanel *WMGetOpenPanel(WMScreen *scrPtr);
996 WMSavePanel *WMGetSavePanel(WMScreen *scrPtr);
998 void WMSetFilePanelCanChooseDirectories(WMFilePanel *panel, int flag);
1000 void WMSetFilePanelCanChooseFiles(WMFilePanel *panel, int flag);
1002 void WMSetFilePanelDirectory(WMFilePanel *panel, char *path);
1004 /* you can free the returned string */
1005 char *WMGetFilePanelFileName(WMFilePanel *panel);
1007 void WMFreeFilePanel(WMFilePanel *panel);
1009 int WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner,
1010 char *path, char *name, char **fileTypes);
1012 int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
1013 char *path, char *name);
1015 void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view);
1017 WMView *WMGetFilePanelAccessoryView(WMFilePanel *panel);
1020 /* ...................................................................... */
1022 /* only 1 instance per WMScreen */
1023 WMFontPanel *WMGetFontPanel(WMScreen *scr);
1025 void WMShowFontPanel(WMFontPanel *panel);
1027 void WMHideFontPanel(WMFontPanel *panel);
1029 void WMSetFontPanelFont(WMFontPanel *panel, WMFont *font);
1031 /* you can free the returned string */
1032 char *WMGetFontPanelFontName(WMFontPanel *panel);
1034 WMFont *WMGetFontPanelFont(WMFontPanel *panel);
1036 #endif