Update for 0.51.0
[wmaker-crm.git] / WINGs / WINGs.h
blobd10c6043c0632821a00c3019f6e5ffe31d84cc75
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 WAJustified /* 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
178 typedef enum {
179 WMGrayModeColorPanel,
180 WMRGBModeColorPanel,
181 WMCMYKModeColorPanel,
182 WMHSBModeColorPanel,
183 WMCustomPaletteModeColorPanel,
184 WMColorListModeColorPanel,
185 WMWheelModeColorPanel
186 } WMColorPanelMode;
190 /* system images */
191 #define WSIReturnArrow 1
192 #define WSIHighlightedReturnArrow 2
193 #define WSIScrollerDimple 3
194 #define WSIArrowLeft 4
195 #define WSIHighlightedArrowLeft 5
196 #define WSIArrowRight 6
197 #define WSIHighlightedArrowRight 7
198 #define WSIArrowUp 8
199 #define WSIHighlightedArrowUp 9
200 #define WSIArrowDown 10
201 #define WSIHighlightedArrowDown 11
202 #define WSICheckMark 12
204 enum {
205 WLDSSelected = (1 << 16),
206 WLDSDisabled = (1 << 17),
207 WLDSFocused = (1 << 18),
208 WLDSIsBranch = (1 << 19)
211 /* alert panel return values */
212 enum {
213 WAPRDefault = 0,
214 WAPRAlternate = 1,
215 WAPROther = -1,
216 WAPRError = -2
221 /* types of input observers */
222 enum {
223 WIReadMask = (1 << 0),
224 WIWriteMask = (1 << 1),
225 WIExceptMask = (1 << 2)
230 typedef int W_Class;
232 enum {
233 WC_Window = 0,
234 WC_Frame = 1,
235 WC_Label = 2,
236 WC_Button = 3,
237 WC_TextField = 4,
238 WC_Scroller = 5,
239 WC_ScrollView = 6,
240 WC_List = 7,
241 WC_Browser = 8,
242 WC_PopUpButton = 9,
243 WC_ColorWell = 10,
244 WC_Slider = 11,
245 WC_Matrix = 12, /* not ready */
246 WC_SplitView = 13
249 /* All widgets must start with the following structure
250 * in that order. Used for typecasting to get some generic data */
251 typedef struct W_WidgetType {
252 W_Class widgetClass;
253 struct W_View *view;
255 } W_WidgetType;
258 #define WMWidgetClass(widget) (((W_WidgetType*)(widget))->widgetClass)
259 #define WMWidgetView(widget) (((W_WidgetType*)(widget))->view)
262 /* widgets */
264 typedef void WMWidget;
266 typedef struct W_Pixmap WMPixmap;
267 typedef struct W_Font WMFont;
268 typedef struct W_Color WMColor;
270 typedef struct W_Screen WMScreen;
272 typedef struct W_View WMView;
274 typedef struct W_Window WMWindow;
275 typedef struct W_Frame WMFrame;
276 typedef struct W_Button WMButton;
277 typedef struct W_Label WMLabel;
278 typedef struct W_TextField WMTextField;
279 typedef struct W_Scroller WMScroller;
280 typedef struct W_ScrollView WMScrollView;
281 typedef struct W_List WMList;
282 typedef struct W_Browser WMBrowser;
283 typedef struct W_PopUpButton WMPopUpButton;
284 typedef struct W_ColorWell WMColorWell;
285 typedef struct W_Slider WMSlider;
286 typedef struct W_Matrix WMMatrix; /* not ready */
287 typedef struct W_SplitView WMSplitView;
289 /* not widgets */
290 typedef struct W_FilePanel WMFilePanel;
291 typedef WMFilePanel WMOpenPanel;
292 typedef WMFilePanel WMSavePanel;
294 typedef struct W_FontPanel WMFontPanel;
296 typedef struct W_ColorPanel WMColorPanel;
299 /* item for WMList */
300 typedef struct WMListItem {
301 char *text;
302 void *clientData; /* ptr for user clientdata. */
304 struct WMListItem *nextPtr;
306 unsigned int uflags:16; /* flags for the user */
307 unsigned int selected:1;
308 unsigned int disabled:1;
309 unsigned int isBranch:1;
310 unsigned int loaded:1;
311 } WMListItem;
313 /* struct for message panel */
314 typedef struct WMAlertPanel {
315 WMWindow *win; /* window */
316 WMButton *defBtn; /* default button */
317 WMButton *altBtn; /* alternative button */
318 WMButton *othBtn; /* other button */
319 WMLabel *iLbl; /* icon label */
320 WMLabel *tLbl; /* title label */
321 WMLabel *mLbl; /* message label */
322 WMFrame *line; /* separator */
323 short result; /* button that was pushed */
324 short done;
326 KeyCode retKey;
327 } WMAlertPanel;
330 typedef struct WMInputPanel {
331 WMWindow *win; /* window */
332 WMButton *defBtn; /* default button */
333 WMButton *altBtn; /* alternative button */
334 WMLabel *tLbl; /* title label */
335 WMLabel *mLbl; /* message label */
336 WMTextField *text; /* text field */
337 short result; /* button that was pushed */
338 short done;
340 KeyCode retKey;
341 } WMInputPanel;
349 typedef void *WMHandlerID;
351 typedef void WMInputProc(int fd, int mask, void *clientData);
353 typedef void WMEventProc(XEvent *event, void *clientData);
355 typedef void WMEventHook(XEvent *event);
357 /* self is set to the widget from where the callback is being called and
358 * clientData to the data set to with WMSetClientData() */
359 typedef void WMAction(WMWidget *self, void *clientData);
362 typedef void WMCallback(void *data);
365 /* delegate method like stuff */
366 typedef void WMFreeDataProc(void *data);
368 typedef void WMListDrawProc(WMList *lPtr, int index, Drawable d, char *text,
369 int state, WMRect *rect);
372 typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
373 unsigned int oldWidth,
374 unsigned int oldHeight);
377 typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex,
378 int *minCoordinate, int *maxCoordinate);
380 typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
383 typedef void WMBrowserFillColumnProc(WMBrowser *bPtr, int column);
386 typedef Bool WMConvertSelectionProc(WMWidget *w, Atom selection, Atom target,
387 Atom *type, void **value, unsigned *length,
388 int *format);
390 typedef void WMLoseSelectionProc(WMWidget *w, Atom selection);
392 typedef void WMSelectionDoneProc(WMWidget *w, Atom selection, Atom target);
394 /* ....................................................................... */
398 void WMInitializeApplication(char *applicationName, int *argc, char **argv);
400 void WMSetApplicationDataPath(char *path);
402 /* don't free the returned string */
403 char *WMGetApplicationName();
405 /* Try to locate resource file. ext may be NULL */
406 char *WMPathForResourceOfType(char *resource, char *ext);
408 WMScreen *WMCreateScreenWithRContext(Display *display, int screen,
409 RContext *context);
411 WMScreen *WMCreateScreen(Display *display, int screen);
413 WMScreen *WMCreateSimpleApplicationScreen(Display *display);
415 void WMScreenMainLoop(WMScreen *scr);
418 RContext *WMScreenRContext(WMScreen *scr);
420 Display *WMScreenDisplay(WMScreen *scr);
422 int WMScreenDepth(WMScreen *scr);
426 void WMSetApplicationIconImage(WMScreen *app, WMPixmap *icon);
428 WMPixmap *WMGetApplicationIconImage(WMScreen *app);
430 void WMSetFocusToWidget(WMWidget *widget);
432 WMEventHook *WMHookEventHandler(WMEventHook *handler);
434 int WMHandleEvent(XEvent *event);
436 Bool WMScreenPending(WMScreen *scr);
438 void WMCreateEventHandler(WMView *view, unsigned long mask,
439 WMEventProc *eventProc, void *clientData);
441 void WMDeleteEventHandler(WMView *view, unsigned long mask,
442 WMEventProc *eventProc, void *clientData);
444 int WMIsDoubleClick(XEvent *event);
446 void WMNextEvent(Display *dpy, XEvent *event);
448 void WMMaskEvent(Display *dpy, long mask, XEvent *event);
450 WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback *callback,
451 void *cdata);
453 void WMDeleteTimerWithClientData(void *cdata);
455 void WMDeleteTimerHandler(WMHandlerID handlerID);
457 WMHandlerID WMAddIdleHandler(WMCallback *callback, void *cdata);
459 void WMDeleteIdleHandler(WMHandlerID handlerID);
461 WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc,
462 void *clientData);
464 void WMDeleteInputHandler(WMHandlerID handlerID);
466 /* ....................................................................... */
468 void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation,
469 WMSize mouseOffset, XEvent *event, Bool slideBack);
473 /* ....................................................................... */
475 WMFont *WMCreateFont(WMScreen *scrPtr, char *fontName);
477 WMFont *WMCreateFontInDefaultEncoding(WMScreen *scrPtr, char *fontName);
479 WMFont *WMRetainFont(WMFont *font);
481 void WMReleaseFont(WMFont *font);
483 unsigned int WMFontHeight(WMFont *font);
486 WMFont *WMUserFontOfSize(WMScreen *scrPtr, int size);
488 WMFont *WMUserFixedPitchFontOfSize(WMScreen *scrPtr, int size);
491 WMFont *WMSystemFontOfSize(WMScreen *scrPtr, int size);
493 WMFont *WMBoldSystemFontOfSize(WMScreen *scrPtr, int size);
495 XFontSet WMGetFontFontSet(WMFont *font);
497 /* ....................................................................... */
499 WMPixmap *WMRetainPixmap(WMPixmap *pixmap);
501 void WMReleasePixmap(WMPixmap *pixmap);
503 WMPixmap *WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap,
504 Pixmap mask, int width, int height,
505 int depth);
507 WMPixmap *WMCreatePixmapFromRImage(WMScreen *scrPtr, RImage *image,
508 int threshold);
510 WMPixmap *WMCreatePixmapFromXPMData(WMScreen *scrPtr, char **data);
512 WMSize WMGetPixmapSize(WMPixmap *pixmap);
514 WMPixmap *WMCreatePixmapFromFile(WMScreen *scrPtr, char *fileName);
516 WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, char *fileName,
517 RColor *color);
519 void WMDrawPixmap(WMPixmap *pixmap, Drawable d, int x, int y);
521 Pixmap WMGetPixmapXID(WMPixmap *pixmap);
523 Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
525 WMPixmap *WMGetSystemPixmap(WMScreen *scr, int image);
527 /* ....................................................................... */
530 WMColor *WMDarkGrayColor(WMScreen *scr);
532 WMColor *WMGrayColor(WMScreen *scr);
534 WMColor *WMBlackColor(WMScreen *scr);
536 WMColor *WMWhiteColor(WMScreen *scr);
538 void WMSetColorInGC(WMColor *color, GC gc);
540 GC WMColorGC(WMColor *color);
542 WMPixel WMColorPixel(WMColor *color);
544 void WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y,
545 unsigned int width, unsigned int height);
547 void WMReleaseColor(WMColor *color);
549 WMColor *WMRetainColor(WMColor *color);
551 WMColor *WMCreateRGBColor(WMScreen *scr, unsigned short red,
552 unsigned short green, unsigned short blue,
553 Bool exact);
555 WMColor *WMCreateNamedColor(WMScreen *scr, char *name, Bool exact);
557 unsigned short WMRedComponentOfColor(WMColor *color);
559 unsigned short WMGreenComponentOfColor(WMColor *color);
561 unsigned short WMBlueComponentOfColor(WMColor *color);
563 char *WMGetColorRGBDescription(WMColor *color);
565 /* ....................................................................... */
568 void WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
569 int y, char *text, int length);
571 void WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
572 int y, char *text, int length);
574 int WMWidthOfString(WMFont *font, char *text, int length);
578 /* ....................................................................... */
580 WMScreen *WMWidgetScreen(WMWidget *w);
582 void WMUnmapWidget(WMWidget *w);
584 void WMMapWidget(WMWidget *w);
586 void WMMoveWidget(WMWidget *w, int x, int y);
588 void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height);
590 void WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color);
592 void WMMapSubwidgets(WMWidget *w);
594 void WMUnmapSubwidgets(WMWidget *w);
596 void WMRealizeWidget(WMWidget *w);
598 void WMDestroyWidget(WMWidget *widget);
600 void WMHangData(WMWidget *widget, void *data);
602 void *WMGetHangedData(WMWidget *widget);
604 unsigned int WMWidgetWidth(WMWidget *w);
606 unsigned int WMWidgetHeight(WMWidget *w);
608 Window WMWidgetXID(WMWidget *w);
610 Window WMViewXID(WMView *view);
612 void WMRedisplayWidget(WMWidget *w);
614 void WMSetViewNotifySizeChanges(WMView *view, Bool flag);
616 WMSize WMGetViewSize(WMView *view);
618 WMPoint WMGetViewPosition(WMView *view);
620 WMWidget *WMWidgetOfView(WMView *view);
622 /* notifications */
623 extern char *WMViewSizeDidChangeNotification;
625 extern char *WMViewRealizedNotification;
627 /* ....................................................................... */
629 WMWindow *WMCreateWindow(WMScreen *screen, char *name);
631 WMWindow *WMCreateWindowWithStyle(WMScreen *screen, char *name, int style);
633 WMWindow *WMCreatePanelWithStyleForWindow(WMWindow *owner, char *name,
634 int style);
636 WMWindow *WMCreatePanelForWindow(WMWindow *owner, char *name);
638 void WMChangePanelOwner(WMWindow *win, WMWindow *newOwner);
640 void WMSetWindowTitle(WMWindow *wPtr, char *title);
642 void WMSetWindowMiniwindowTitle(WMWindow *win, char *title);
644 void WMSetWindowMiniwindowImage(WMWindow *win, WMPixmap *pixmap);
646 void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData);
648 void WMSetWindowMaxSize(WMWindow *win, unsigned width, unsigned height);
650 void WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height);
652 void WMSetWindowBaseSize(WMWindow *win, unsigned width, unsigned height);
654 void WMSetWindowResizeIncrements(WMWindow *win, unsigned wIncr, unsigned hIncr);
656 void WMSetWindowLevel(WMWindow *win, int level);
658 void WMSetWindowDocumentEdited(WMWindow *win, Bool flag);
660 void WMCloseWindow(WMWindow *win);
662 /* ....................................................................... */
664 void WMSetButtonAction(WMButton *bPtr, WMAction *action, void *clientData);
666 #define WMCreateCommandButton(parent) \
667 WMCreateCustomButton((parent), WBBSpringLoadedMask\
668 |WBBPushInMask\
669 |WBBPushLightMask\
670 |WBBPushChangeMask)
672 #define WMCreateRadioButton(parent) \
673 WMCreateButton((parent), WBTRadio)
675 #define WMCreateSwitchButton(parent) \
676 WMCreateButton((parent), WBTSwitch)
678 WMButton *WMCreateButton(WMWidget *parent, WMButtonType type);
680 WMButton *WMCreateCustomButton(WMWidget *parent, int behaviourMask);
682 void WMSetButtonImage(WMButton *bPtr, WMPixmap *image);
684 void WMSetButtonAltImage(WMButton *bPtr, WMPixmap *image);
686 void WMSetButtonImagePosition(WMButton *bPtr, WMImagePosition position);
688 void WMSetButtonFont(WMButton *bPtr, WMFont *font);
690 void WMSetButtonTextAlignment(WMButton *bPtr, WMAlignment alignment);
692 void WMSetButtonText(WMButton *bPtr, char *text);
694 void WMSetButtonAltText(WMButton *bPtr, char *text);
696 void WMSetButtonSelected(WMButton *bPtr, int isSelected);
698 int WMGetButtonSelected(WMButton *bPtr);
700 void WMSetButtonBordered(WMButton *bPtr, int isBordered);
702 void WMSetButtonEnabled(WMButton *bPtr, Bool flag);
704 void WMSetButtonTag(WMButton *bPtr, int tag);
706 void WMGroupButtons(WMButton *bPtr, WMButton *newMember);
708 void WMPerformButtonClick(WMButton *bPtr);
710 void WMSetButtonContinuous(WMButton *bPtr, Bool flag);
712 void WMSetButtonPeriodicDelay(WMButton *bPtr, float delay, float interval);
714 /* ....................................................................... */
716 WMLabel *WMCreateLabel(WMWidget *parent);
718 void WMSetLabelWraps(WMLabel *lPtr, Bool flag);
720 void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
722 WMPixmap *WMGetLabelImage(WMLabel *lPtr);
724 void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
726 void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
728 void WMSetLabelRelief(WMLabel *lPtr, WMReliefType relief);
730 void WMSetLabelText(WMLabel *lPtr, char *text);
732 void WMSetLabelFont(WMLabel *lPtr, WMFont *font);
734 void WMSetLabelTextColor(WMLabel *lPtr, WMColor *color);
736 /* ....................................................................... */
738 WMFrame *WMCreateFrame(WMWidget *parent);
740 void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position);
742 void WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief);
744 void WMSetFrameTitle(WMFrame *fPtr, char *title);
746 /* ....................................................................... */
748 WMTextField *WMCreateTextField(WMWidget *parent);
750 void WMInsertTextFieldText(WMTextField *tPtr, char *text, int position);
752 void WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range);
754 /* you can free the returned string */
755 char *WMGetTextFieldText(WMTextField *tPtr);
757 void WMSetTextFieldText(WMTextField *tPtr, char *text);
759 void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment);
761 void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
763 void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag);
765 void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
768 extern char *WMListDidScrollNotification;
769 extern char *WMTextDidChangeNotification;
770 extern char *WMTextDidBeginEditingNotification;
771 extern char *WMTextDidEndEditingNotification;
773 /* ....................................................................... */
775 WMScroller *WMCreateScroller(WMWidget *parent);
777 void WMSetScrollerParameters(WMScroller *sPtr, float floatValue,
778 float knobProportion);
780 float WMGetScrollerKnobProportion(WMScroller *sPtr);
782 float WMGetScrollerValue(WMScroller *sPtr);
784 WMScrollerPart WMGetScrollerHitPart(WMScroller *sPtr);
786 void WMSetScrollerAction(WMScroller *sPtr, WMAction *action, void *clientData);
788 void WMSetScrollerArrowsPosition(WMScroller *sPtr,
789 WMScrollArrowPosition position);
791 /* ....................................................................... */
793 WMList *WMCreateList(WMWidget *parent);
795 #define WMAddListItem(lPtr, text) WMInsertListItem((lPtr), -1, (text))
797 WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
799 WMListItem *WMAddSortedListItem(WMList *lPtr, char *text);
801 int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
803 WMListItem *WMGetListItem(WMList *lPtr, int row);
805 void WMRemoveListItem(WMList *lPtr, int row);
807 void WMSelectListItem(WMList *lPtr, int row);
809 void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc);
811 void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
813 int WMGetListItemHeight(WMList *lPtr);
815 /* don't free the returned data */
816 WMListItem *WMGetListSelectedItem(WMList *lPtr);
818 int WMGetListSelectedItemRow(WMList *lPtr);
820 void WMSetListAction(WMList *lPtr, WMAction *action, void *clientData);
822 void WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData);
824 void WMClearList(WMList *lPtr);
826 int WMGetListNumberOfRows(WMList *lPtr);
828 void WMSetListPosition(WMList *lPtr, int row);
830 void WMSetListBottomPosition(WMList *lPtr, int row);
832 int WMGetListPosition(WMList *lPtr);
834 extern char *WMListDidScrollNotification;
836 /* ....................................................................... */
838 WMBrowser *WMCreateBrowser(WMWidget *parent);
840 void WMSetBrowserPathSeparator(WMBrowser *bPtr, char *separator);
842 void WMSetBrowserTitled(WMBrowser *bPtr, Bool flag);
844 void WMLoadBrowserColumnZero(WMBrowser *bPtr);
846 int WMAddBrowserColumn(WMBrowser *bPtr);
848 void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row);
850 void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns);
852 void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
854 WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
856 WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
858 Bool WMSetBrowserPath(WMBrowser *bPtr, char *path);
860 /* you can free the returned string */
861 char *WMGetBrowserPath(WMBrowser *bPtr);
862 /* you can free the returned string */
863 char *WMGetBrowserPathToColumn(WMBrowser *bPtr, int column);
865 void WMSetBrowserFillColumnProc(WMBrowser *bPtr,WMBrowserFillColumnProc *proc);
867 void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData);
869 WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column);
871 int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr);
873 int WMGetBrowserSelectedColumn(WMBrowser *bPtr);
875 int WMGetBrowserSelectedRowInColumn(WMBrowser *bPtr, int column);
877 int WMGetBrowserNumberOfColumns(WMBrowser *bPtr);
879 WMList *WMGetBrowserListInColumn(WMBrowser *bPtr, int column);
881 extern char *WMBrowserDidScrollNotification;
883 /* ....................................................................... */
885 WMPopUpButton *WMCreatePopUpButton(WMWidget *parent);
887 void WMSetPopUpButtonAction(WMPopUpButton *sPtr, WMAction *action,
888 void *clientData);
890 void WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag);
892 void WMAddPopUpButtonItem(WMPopUpButton *bPtr, char *title);
894 void WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, char *title);
896 void WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index);
898 void WMSetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index, Bool flag);
900 void WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index);
902 int WMGetPopUpButtonSelectedItem(WMPopUpButton *bPtr);
904 void WMSetPopUpButtonText(WMPopUpButton *bPtr, char *text);
906 /* don't free the returned data */
907 char *WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
909 int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
911 void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
913 /* ....................................................................... */
915 WMColorPanel *WMGetColorPanel(WMScreen *scrPtr);
917 void WMFreeColorPanel(WMColorPanel *panel);
919 int WMRunColorPanel(WMColorPanel *panel, WMWindow *owner, RColor color);
921 void WMSetColorPanelColor(WMColorPanel *panel, RColor color);
923 RColor WMGetColorPanelColor(WMColorPanel *panel);
925 void WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode);
927 /* ....................................................................... */
929 WMColorWell *WMCreateColorWell(WMWidget *parent);
931 void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
933 WMColor *WMGetColorWellColor(WMColorWell *cPtr);
935 void WSetColorWellBordered(WMColorWell *cPtr, Bool flag);
937 /* ...................................................................... */
939 WMScrollView *WMCreateScrollView(WMWidget *parent);
941 void WMResizeScrollViewContent(WMScrollView *sPtr, unsigned int width,
942 unsigned int height);
944 void WMSetScrollViewHasHorizontalScroller(WMScrollView *sPtr, Bool flag);
946 void WMSetScrollViewHasVerticalScroller(WMScrollView *sPtr, Bool flag);
948 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
950 void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type);
952 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
954 WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
956 WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
958 void WMSetScrollViewLineScroll(WMScrollView *sPtr, int amount);
960 void WMSetScrollViewPageScroll(WMScrollView *sPtr, int amount);
962 /* ....................................................................... */
964 WMSlider *WMCreateSlider(WMWidget *parent);
966 int WMGetSliderMinValue(WMSlider *slider);
968 int WMGetSliderMaxValue(WMSlider *slider);
970 int WMGetSliderValue(WMSlider *slider);
972 void WMSetSliderMinValue(WMSlider *slider, int value);
974 void WMSetSliderMaxValue(WMSlider *slider, int value);
976 void WMSetSliderValue(WMSlider *slider, int value);
978 void WMSetSliderContinuous(WMSlider *slider, Bool flag);
980 void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
982 void WMSetSliderKnobThickness(WMSlider *sPtr, int thickness);
984 void WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap);
986 /* ....................................................................... */
988 /* only supports 2 subviews */
989 WMSplitView *WMCreateSplitView(WMWidget *parent);
991 void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
993 void WMAdjustSplitViewSubviews(WMSplitView *sPtr);
995 void WMSetSplitViewConstrainProc(WMSplitView *sPtr,
996 WMSplitViewConstrainProc *proc);
999 void WMSetSplitViewResizeSubviewsProc(WMSplitView *sPtr,
1000 WMSplitViewResizeSubviewsProc *proc);
1003 int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
1006 /* ....................................................................... */
1008 int WMRunAlertPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
1009 char *defaultButton, char *alternateButton,
1010 char *otherButton);
1012 /* you can free the returned string */
1013 char *WMRunInputPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
1014 char *defaultText, char *okButton, char *cancelButton);
1016 WMAlertPanel *WMCreateAlertPanel(WMScreen *app, WMWindow *owner, char *title,
1017 char *msg, char *defaultButton,
1018 char *alternateButton, char *otherButton);
1020 WMInputPanel *WMCreateInputPanel(WMScreen *app, WMWindow *owner, char *title,
1021 char *msg, char *defaultText, char *okButton,
1022 char *cancelButton);
1024 void WMDestroyAlertPanel(WMAlertPanel *panel);
1026 void WMDestroyInputPanel(WMInputPanel *panel);
1028 /* ....................................................................... */
1030 /* only 1 instance per WMScreen */
1031 WMOpenPanel *WMGetOpenPanel(WMScreen *scrPtr);
1033 WMSavePanel *WMGetSavePanel(WMScreen *scrPtr);
1035 void WMSetFilePanelCanChooseDirectories(WMFilePanel *panel, int flag);
1037 void WMSetFilePanelCanChooseFiles(WMFilePanel *panel, int flag);
1039 void WMSetFilePanelDirectory(WMFilePanel *panel, char *path);
1041 /* you can free the returned string */
1042 char *WMGetFilePanelFileName(WMFilePanel *panel);
1044 void WMFreeFilePanel(WMFilePanel *panel);
1046 int WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner,
1047 char *path, char *name, char **fileTypes);
1049 int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
1050 char *path, char *name);
1052 void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view);
1054 WMView *WMGetFilePanelAccessoryView(WMFilePanel *panel);
1057 /* ...................................................................... */
1059 /* only 1 instance per WMScreen */
1060 WMFontPanel *WMGetFontPanel(WMScreen *scr);
1062 void WMShowFontPanel(WMFontPanel *panel);
1064 void WMHideFontPanel(WMFontPanel *panel);
1066 void WMSetFontPanelFont(WMFontPanel *panel, WMFont *font);
1068 /* you can free the returned string */
1069 char *WMGetFontPanelFontName(WMFontPanel *panel);
1071 WMFont *WMGetFontPanelFont(WMFontPanel *panel);
1073 #endif