show workspace name when changing workspace
[wmaker-crm.git] / WINGs / WINGs.h
blob0bf842cab593c86ceca5ffc96ed4bdf9d3a55b6c
3 #ifndef _WINGS_H_
4 #define _WINGS_H_
6 #include <wraster.h>
7 #include <X11/Xlib.h>
9 #define WINGS_H_VERSION 990316
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* __cplusplus */
15 #if 0
17 #endif
20 typedef unsigned long WMPixel;
23 typedef struct {
24 unsigned int width;
25 unsigned int height;
26 } WMSize;
28 typedef struct {
29 int x;
30 int y;
31 } WMPoint;
33 typedef struct {
34 WMPoint pos;
35 WMSize size;
36 } WMRect;
38 typedef struct {
39 int position;
40 int count;
41 } WMRange;
44 #define ClientMessageMask (1L<<30)
47 /* window stacking level */
48 enum {
49 WMNormalWindowLevel = 0,
50 WMFloatingWindowLevel = 3,
51 WMDockWindowLevel = 5,
52 WMSubmenuWindowLevel = 10,
53 WMMainMenuWindowLevel = 20
56 /* window attributes */
57 enum {
58 WMBorderlessWindowMask = 0,
59 WMTitledWindowMask = 1,
60 WMClosableWindowMask = 2,
61 WMMiniaturizableWindowMask = 4,
62 WMResizableWindowMask = 8
66 /* button types */
67 typedef enum {
68 /* 0 is reserved for internal use */
69 WBTMomentaryPush = 1,
70 WBTPushOnPushOff = 2,
71 WBTToggle = 3,
72 WBTSwitch = 4,
73 WBTRadio = 5,
74 WBTMomentaryChange = 6,
75 WBTOnOff = 7,
76 WBTMomentaryLight = 8
77 } WMButtonType;
79 /* button behaviour masks */
80 enum {
81 WBBSpringLoadedMask = (1 << 0),
82 WBBPushInMask = (1 << 1),
83 WBBPushChangeMask = (1 << 2),
84 WBBPushLightMask = (1 << 3),
85 WBBStateLightMask = (1 << 5),
86 WBBStateChangeMask = (1 << 6),
87 WBBStatePushMask = (1 << 7)
91 /* frame title positions */
92 typedef enum {
93 WTPNoTitle,
94 WTPAboveTop,
95 WTPAtTop,
96 WTPBelowTop,
97 WTPAboveBottom,
98 WTPAtBottom,
99 WTPBelowBottom
100 } WMTitlePosition;
103 /* relief types */
104 typedef enum {
105 WRFlat,
106 WRSimple,
107 WRRaised,
108 WRSunken,
109 WRGroove,
110 WRRidge,
111 WRPushed
112 } WMReliefType;
115 /* alignment types */
116 typedef enum {
117 WALeft,
118 WACenter,
119 WARight,
120 WAJustified /* not valid for textfields */
121 } WMAlignment;
124 /* image position */
125 typedef enum {
126 WIPNoImage,
127 WIPImageOnly,
128 WIPLeft,
129 WIPRight,
130 WIPBelow,
131 WIPAbove,
132 WIPOverlaps
133 } WMImagePosition;
136 /* scroller arrow position */
137 typedef enum {
138 WSAMaxEnd,
139 WSAMinEnd,
140 WSANone
141 } WMScrollArrowPosition;
143 /* scroller parts */
144 typedef enum {
145 WSNoPart,
146 WSDecrementPage,
147 WSIncrementPage,
148 WSDecrementLine,
149 WSIncrementLine,
150 WSKnob,
151 WSKnobSlot
152 } WMScrollerPart;
154 /* usable scroller parts */
155 typedef enum {
156 WSUNoParts,
157 WSUOnlyArrows,
158 WSUAllParts
159 } WMUsableScrollerParts;
161 /* matrix types */
162 typedef enum {
163 WMMRadioMode,
164 WMMHighlightMode,
165 WMMListMode,
166 WMMTrackMode
167 } WMMatrixTypes;
170 /* text movement types */
171 enum {
172 WMIllegalTextMovement,
173 WMReturnTextMovement,
174 WMTabTextMovement,
175 WMBacktabTextMovement,
176 WMLeftTextMovement,
177 WMRightTextMovement,
178 WMUpTextMovement,
179 WMDownTextMovement
182 /* text field special events */
183 enum {
184 WMSetTextEvent,
185 WMInsertTextEvent,
186 WMDeleteTextEvent
190 typedef enum {
191 WMGrayModeColorPanel,
192 WMRGBModeColorPanel,
193 WMCMYKModeColorPanel,
194 WMHSBModeColorPanel,
195 WMCustomPaletteModeColorPanel,
196 WMColorListModeColorPanel,
197 WMWheelModeColorPanel
198 } WMColorPanelMode;
202 /* system images */
203 #define WSIReturnArrow 1
204 #define WSIHighlightedReturnArrow 2
205 #define WSIScrollerDimple 3
206 #define WSIArrowLeft 4
207 #define WSIHighlightedArrowLeft 5
208 #define WSIArrowRight 6
209 #define WSIHighlightedArrowRight 7
210 #define WSIArrowUp 8
211 #define WSIHighlightedArrowUp 9
212 #define WSIArrowDown 10
213 #define WSIHighlightedArrowDown 11
214 #define WSICheckMark 12
216 enum {
217 WLDSSelected = (1 << 16),
218 WLDSDisabled = (1 << 17),
219 WLDSFocused = (1 << 18),
220 WLDSIsBranch = (1 << 19)
223 /* alert panel return values */
224 enum {
225 WAPRDefault = 0,
226 WAPRAlternate = 1,
227 WAPROther = -1,
228 WAPRError = -2
233 /* types of input observers */
234 enum {
235 WIReadMask = (1 << 0),
236 WIWriteMask = (1 << 1),
237 WIExceptMask = (1 << 2)
242 typedef int W_Class;
244 enum {
245 WC_Window = 0,
246 WC_Frame = 1,
247 WC_Label = 2,
248 WC_Button = 3,
249 WC_TextField = 4,
250 WC_Scroller = 5,
251 WC_ScrollView = 6,
252 WC_List = 7,
253 WC_Browser = 8,
254 WC_PopUpButton = 9,
255 WC_ColorWell = 10,
256 WC_Slider = 11,
257 WC_Matrix = 12, /* not ready */
258 WC_SplitView = 13
261 /* All widgets must start with the following structure
262 * in that order. Used for typecasting to get some generic data */
263 typedef struct W_WidgetType {
264 W_Class widgetClass;
265 struct W_View *view;
267 } W_WidgetType;
270 #define WMWidgetClass(widget) (((W_WidgetType*)(widget))->widgetClass)
271 #define WMWidgetView(widget) (((W_WidgetType*)(widget))->view)
274 /* widgets */
276 typedef void WMWidget;
278 typedef struct W_Pixmap WMPixmap;
279 typedef struct W_Font WMFont;
280 typedef struct W_Color WMColor;
282 typedef struct W_Screen WMScreen;
284 typedef struct W_View WMView;
286 typedef struct W_Window WMWindow;
287 typedef struct W_Frame WMFrame;
288 typedef struct W_Button WMButton;
289 typedef struct W_Label WMLabel;
290 typedef struct W_TextField WMTextField;
291 typedef struct W_Scroller WMScroller;
292 typedef struct W_ScrollView WMScrollView;
293 typedef struct W_List WMList;
294 typedef struct W_Browser WMBrowser;
295 typedef struct W_PopUpButton WMPopUpButton;
296 typedef struct W_ColorWell WMColorWell;
297 typedef struct W_Slider WMSlider;
298 typedef struct W_Matrix WMMatrix; /* not ready */
299 typedef struct W_SplitView WMSplitView;
301 /* not widgets */
302 typedef struct W_FilePanel WMFilePanel;
303 typedef WMFilePanel WMOpenPanel;
304 typedef WMFilePanel WMSavePanel;
306 typedef struct W_FontPanel WMFontPanel;
308 typedef struct W_ColorPanel WMColorPanel;
311 /* item for WMList */
312 typedef struct WMListItem {
313 char *text;
314 void *clientData; /* ptr for user clientdata. */
316 struct WMListItem *nextPtr;
318 unsigned int uflags:16; /* flags for the user */
319 unsigned int selected:1;
320 unsigned int disabled:1;
321 unsigned int isBranch:1;
322 unsigned int loaded:1;
323 } WMListItem;
325 /* struct for message panel */
326 typedef struct WMAlertPanel {
327 WMWindow *win; /* window */
328 WMButton *defBtn; /* default button */
329 WMButton *altBtn; /* alternative button */
330 WMButton *othBtn; /* other button */
331 WMLabel *iLbl; /* icon label */
332 WMLabel *tLbl; /* title label */
333 WMLabel *mLbl; /* message label */
334 WMFrame *line; /* separator */
335 short result; /* button that was pushed */
336 short done;
338 KeyCode retKey;
339 } WMAlertPanel;
342 typedef struct WMInputPanel {
343 WMWindow *win; /* window */
344 WMButton *defBtn; /* default button */
345 WMButton *altBtn; /* alternative button */
346 WMLabel *tLbl; /* title label */
347 WMLabel *mLbl; /* message label */
348 WMTextField *text; /* text field */
349 short result; /* button that was pushed */
350 short done;
352 KeyCode retKey;
353 } WMInputPanel;
361 typedef void *WMHandlerID;
363 typedef void WMInputProc(int fd, int mask, void *clientData);
365 typedef void WMEventProc(XEvent *event, void *clientData);
367 typedef void WMEventHook(XEvent *event);
369 /* self is set to the widget from where the callback is being called and
370 * clientData to the data set to with WMSetClientData() */
371 typedef void WMAction(WMWidget *self, void *clientData);
374 typedef void WMCallback(void *data);
377 /* delegate method like stuff */
378 typedef void WMFreeDataProc(void *data);
380 typedef void WMListDrawProc(WMList *lPtr, int index, Drawable d, char *text,
381 int state, WMRect *rect);
384 typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
385 unsigned int oldWidth,
386 unsigned int oldHeight);
389 typedef void WMSplitViewConstrainProc(WMSplitView *sPtr, int dividerIndex,
390 int *minCoordinate, int *maxCoordinate);
392 typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
395 typedef void WMBrowserFillColumnProc(WMBrowser *bPtr, int column);
398 typedef Bool WMConvertSelectionProc(WMWidget *w, Atom selection, Atom target,
399 Atom *type, void **value, unsigned *length,
400 int *format);
402 typedef void WMLoseSelectionProc(WMWidget *w, Atom selection);
404 typedef void WMSelectionDoneProc(WMWidget *w, Atom selection, Atom target);
406 /* ....................................................................... */
410 void WMInitializeApplication(char *applicationName, int *argc, char **argv);
412 void WMSetApplicationDataPath(char *path);
414 /* don't free the returned string */
415 char *WMGetApplicationName();
417 /* Try to locate resource file. ext may be NULL */
418 char *WMPathForResourceOfType(char *resource, char *ext);
420 WMScreen *WMCreateScreenWithRContext(Display *display, int screen,
421 RContext *context);
423 WMScreen *WMCreateScreen(Display *display, int screen);
425 WMScreen *WMCreateSimpleApplicationScreen(Display *display);
427 void WMScreenMainLoop(WMScreen *scr);
430 RContext *WMScreenRContext(WMScreen *scr);
432 Display *WMScreenDisplay(WMScreen *scr);
434 int WMScreenDepth(WMScreen *scr);
438 void WMSetApplicationIconImage(WMScreen *app, WMPixmap *icon);
440 WMPixmap *WMGetApplicationIconImage(WMScreen *app);
442 void WMSetFocusToWidget(WMWidget *widget);
444 WMEventHook *WMHookEventHandler(WMEventHook *handler);
446 int WMHandleEvent(XEvent *event);
448 Bool WMScreenPending(WMScreen *scr);
450 void WMCreateEventHandler(WMView *view, unsigned long mask,
451 WMEventProc *eventProc, void *clientData);
453 void WMDeleteEventHandler(WMView *view, unsigned long mask,
454 WMEventProc *eventProc, void *clientData);
456 int WMIsDoubleClick(XEvent *event);
458 void WMNextEvent(Display *dpy, XEvent *event);
460 void WMMaskEvent(Display *dpy, long mask, XEvent *event);
462 WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback *callback,
463 void *cdata);
465 void WMDeleteTimerWithClientData(void *cdata);
467 void WMDeleteTimerHandler(WMHandlerID handlerID);
469 WMHandlerID WMAddIdleHandler(WMCallback *callback, void *cdata);
471 void WMDeleteIdleHandler(WMHandlerID handlerID);
473 WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc,
474 void *clientData);
476 void WMDeleteInputHandler(WMHandlerID handlerID);
478 /* ....................................................................... */
480 void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation,
481 WMSize mouseOffset, XEvent *event, Bool slideBack);
485 /* ....................................................................... */
487 WMFont *WMCreateFont(WMScreen *scrPtr, char *fontName);
489 WMFont *WMCreateFontInDefaultEncoding(WMScreen *scrPtr, char *fontName);
491 WMFont *WMRetainFont(WMFont *font);
493 void WMReleaseFont(WMFont *font);
495 unsigned int WMFontHeight(WMFont *font);
498 WMFont *WMUserFontOfSize(WMScreen *scrPtr, int size);
500 WMFont *WMUserFixedPitchFontOfSize(WMScreen *scrPtr, int size);
503 WMFont *WMSystemFontOfSize(WMScreen *scrPtr, int size);
505 WMFont *WMBoldSystemFontOfSize(WMScreen *scrPtr, int size);
507 XFontSet WMGetFontFontSet(WMFont *font);
509 /* ....................................................................... */
511 WMPixmap *WMRetainPixmap(WMPixmap *pixmap);
513 void WMReleasePixmap(WMPixmap *pixmap);
515 WMPixmap *WMCreatePixmap(WMScreen *scrPtr, int width, int height, int depth,
516 Bool masked);
518 WMPixmap *WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap,
519 Pixmap mask, int width, int height,
520 int depth);
522 WMPixmap *WMCreatePixmapFromRImage(WMScreen *scrPtr, RImage *image,
523 int threshold);
525 WMPixmap *WMCreatePixmapFromXPMData(WMScreen *scrPtr, char **data);
527 WMSize WMGetPixmapSize(WMPixmap *pixmap);
529 WMPixmap *WMCreatePixmapFromFile(WMScreen *scrPtr, char *fileName);
531 WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, char *fileName,
532 RColor *color);
534 void WMDrawPixmap(WMPixmap *pixmap, Drawable d, int x, int y);
536 Pixmap WMGetPixmapXID(WMPixmap *pixmap);
538 Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
540 WMPixmap *WMGetSystemPixmap(WMScreen *scr, int image);
542 /* ....................................................................... */
545 WMColor *WMDarkGrayColor(WMScreen *scr);
547 WMColor *WMGrayColor(WMScreen *scr);
549 WMColor *WMBlackColor(WMScreen *scr);
551 WMColor *WMWhiteColor(WMScreen *scr);
553 void WMSetColorInGC(WMColor *color, GC gc);
555 GC WMColorGC(WMColor *color);
557 WMPixel WMColorPixel(WMColor *color);
559 void WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y,
560 unsigned int width, unsigned int height);
562 void WMReleaseColor(WMColor *color);
564 WMColor *WMRetainColor(WMColor *color);
566 WMColor *WMCreateRGBColor(WMScreen *scr, unsigned short red,
567 unsigned short green, unsigned short blue,
568 Bool exact);
570 WMColor *WMCreateNamedColor(WMScreen *scr, char *name, Bool exact);
572 unsigned short WMRedComponentOfColor(WMColor *color);
574 unsigned short WMGreenComponentOfColor(WMColor *color);
576 unsigned short WMBlueComponentOfColor(WMColor *color);
578 char *WMGetColorRGBDescription(WMColor *color);
580 /* ....................................................................... */
583 void WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
584 int y, char *text, int length);
586 void WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x,
587 int y, char *text, int length);
589 int WMWidthOfString(WMFont *font, char *text, int length);
593 /* ....................................................................... */
595 WMScreen *WMWidgetScreen(WMWidget *w);
597 void WMUnmapWidget(WMWidget *w);
599 void WMMapWidget(WMWidget *w);
601 void WMMoveWidget(WMWidget *w, int x, int y);
603 void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height);
605 void WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color);
607 void WMMapSubwidgets(WMWidget *w);
609 void WMUnmapSubwidgets(WMWidget *w);
611 void WMRealizeWidget(WMWidget *w);
613 void WMDestroyWidget(WMWidget *widget);
615 void WMHangData(WMWidget *widget, void *data);
617 void *WMGetHangedData(WMWidget *widget);
619 unsigned int WMWidgetWidth(WMWidget *w);
621 unsigned int WMWidgetHeight(WMWidget *w);
623 Window WMWidgetXID(WMWidget *w);
625 Window WMViewXID(WMView *view);
627 void WMRedisplayWidget(WMWidget *w);
629 void WMSetViewNotifySizeChanges(WMView *view, Bool flag);
631 WMSize WMGetViewSize(WMView *view);
633 WMPoint WMGetViewPosition(WMView *view);
635 WMWidget *WMWidgetOfView(WMView *view);
637 /* notifications */
638 extern char *WMViewSizeDidChangeNotification;
640 extern char *WMViewRealizedNotification;
642 /* ....................................................................... */
644 WMWindow *WMCreateWindow(WMScreen *screen, char *name);
646 WMWindow *WMCreateWindowWithStyle(WMScreen *screen, char *name, int style);
648 WMWindow *WMCreatePanelWithStyleForWindow(WMWindow *owner, char *name,
649 int style);
651 WMWindow *WMCreatePanelForWindow(WMWindow *owner, char *name);
653 void WMChangePanelOwner(WMWindow *win, WMWindow *newOwner);
655 void WMSetWindowTitle(WMWindow *wPtr, char *title);
657 void WMSetWindowMiniwindowTitle(WMWindow *win, char *title);
659 void WMSetWindowMiniwindowImage(WMWindow *win, WMPixmap *pixmap);
661 void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData);
663 void WMSetWindowUPosition(WMWindow *win, int x, int y);
665 void WMSetWindowUSize(WMWindow *win, unsigned width, unsigned height);
667 void WMSetWindowMaxSize(WMWindow *win, unsigned width, unsigned height);
669 void WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height);
671 void WMSetWindowBaseSize(WMWindow *win, unsigned width, unsigned height);
673 void WMSetWindowResizeIncrements(WMWindow *win, unsigned wIncr, unsigned hIncr);
675 void WMSetWindowLevel(WMWindow *win, int level);
677 void WMSetWindowDocumentEdited(WMWindow *win, Bool flag);
679 void WMCloseWindow(WMWindow *win);
681 /* ....................................................................... */
683 void WMSetButtonAction(WMButton *bPtr, WMAction *action, void *clientData);
685 #define WMCreateCommandButton(parent) \
686 WMCreateCustomButton((parent), WBBSpringLoadedMask\
687 |WBBPushInMask\
688 |WBBPushLightMask\
689 |WBBPushChangeMask)
691 #define WMCreateRadioButton(parent) \
692 WMCreateButton((parent), WBTRadio)
694 #define WMCreateSwitchButton(parent) \
695 WMCreateButton((parent), WBTSwitch)
697 WMButton *WMCreateButton(WMWidget *parent, WMButtonType type);
699 WMButton *WMCreateCustomButton(WMWidget *parent, int behaviourMask);
701 void WMSetButtonImage(WMButton *bPtr, WMPixmap *image);
703 void WMSetButtonAltImage(WMButton *bPtr, WMPixmap *image);
705 void WMSetButtonImagePosition(WMButton *bPtr, WMImagePosition position);
707 void WMSetButtonFont(WMButton *bPtr, WMFont *font);
709 void WMSetButtonTextAlignment(WMButton *bPtr, WMAlignment alignment);
711 void WMSetButtonText(WMButton *bPtr, char *text);
713 void WMSetButtonAltText(WMButton *bPtr, char *text);
715 void WMSetButtonSelected(WMButton *bPtr, int isSelected);
717 int WMGetButtonSelected(WMButton *bPtr);
719 void WMSetButtonBordered(WMButton *bPtr, int isBordered);
721 void WMSetButtonEnabled(WMButton *bPtr, Bool flag);
723 void WMSetButtonTag(WMButton *bPtr, int tag);
725 void WMGroupButtons(WMButton *bPtr, WMButton *newMember);
727 void WMPerformButtonClick(WMButton *bPtr);
729 void WMSetButtonContinuous(WMButton *bPtr, Bool flag);
731 void WMSetButtonPeriodicDelay(WMButton *bPtr, float delay, float interval);
733 /* ....................................................................... */
735 WMLabel *WMCreateLabel(WMWidget *parent);
737 void WMSetLabelWraps(WMLabel *lPtr, Bool flag);
739 void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
741 WMPixmap *WMGetLabelImage(WMLabel *lPtr);
743 void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
745 void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
747 void WMSetLabelRelief(WMLabel *lPtr, WMReliefType relief);
749 void WMSetLabelText(WMLabel *lPtr, char *text);
751 void WMSetLabelFont(WMLabel *lPtr, WMFont *font);
753 void WMSetLabelTextColor(WMLabel *lPtr, WMColor *color);
755 /* ....................................................................... */
757 WMFrame *WMCreateFrame(WMWidget *parent);
759 void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position);
761 void WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief);
763 void WMSetFrameTitle(WMFrame *fPtr, char *title);
765 /* ....................................................................... */
767 WMTextField *WMCreateTextField(WMWidget *parent);
769 void WMInsertTextFieldText(WMTextField *tPtr, char *text, int position);
771 void WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range);
773 /* you can free the returned string */
774 char *WMGetTextFieldText(WMTextField *tPtr);
776 void WMSetTextFieldText(WMTextField *tPtr, char *text);
778 void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment);
780 void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
782 void WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag);
784 Bool WMGetTextFieldEditable(WMTextField *tPtr);
786 void WMSetTextFieldEditable(WMTextField *tPtr, Bool flag);
788 void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
790 void WMSelectTextFieldRange(WMTextField *tPtr, WMRange range);
792 void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position);
794 void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next);
796 void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev);
799 extern char *WMTextDidChangeNotification;
800 extern char *WMTextDidBeginEditingNotification;
801 extern char *WMTextDidEndEditingNotification;
803 /* ....................................................................... */
805 WMScroller *WMCreateScroller(WMWidget *parent);
807 void WMSetScrollerParameters(WMScroller *sPtr, float floatValue,
808 float knobProportion);
810 float WMGetScrollerKnobProportion(WMScroller *sPtr);
812 float WMGetScrollerValue(WMScroller *sPtr);
814 WMScrollerPart WMGetScrollerHitPart(WMScroller *sPtr);
816 void WMSetScrollerAction(WMScroller *sPtr, WMAction *action, void *clientData);
818 void WMSetScrollerArrowsPosition(WMScroller *sPtr,
819 WMScrollArrowPosition position);
821 /* ....................................................................... */
823 WMList *WMCreateList(WMWidget *parent);
825 #define WMAddListItem(lPtr, text) WMInsertListItem((lPtr), -1, (text))
827 WMListItem *WMInsertListItem(WMList *lPtr, int row, char *text);
829 WMListItem *WMAddSortedListItem(WMList *lPtr, char *text);
831 int WMFindRowOfListItemWithTitle(WMList *lPtr, char *title);
833 WMListItem *WMGetListItem(WMList *lPtr, int row);
835 void WMRemoveListItem(WMList *lPtr, int row);
837 void WMSelectListItem(WMList *lPtr, int row);
839 void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc);
841 void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
843 int WMGetListItemHeight(WMList *lPtr);
845 /* don't free the returned data */
846 WMListItem *WMGetListSelectedItem(WMList *lPtr);
848 int WMGetListSelectedItemRow(WMList *lPtr);
850 void WMSetListAction(WMList *lPtr, WMAction *action, void *clientData);
852 void WMSetListDoubleAction(WMList *lPtr, WMAction *action, void *clientData);
854 void WMClearList(WMList *lPtr);
856 int WMGetListNumberOfRows(WMList *lPtr);
858 void WMSetListPosition(WMList *lPtr, int row);
860 void WMSetListBottomPosition(WMList *lPtr, int row);
862 int WMGetListPosition(WMList *lPtr);
864 extern char *WMListDidScrollNotification;
865 extern char *WMListSelectionDidChangeNotification;
867 /* ....................................................................... */
869 WMBrowser *WMCreateBrowser(WMWidget *parent);
871 void WMSetBrowserPathSeparator(WMBrowser *bPtr, char *separator);
873 void WMSetBrowserTitled(WMBrowser *bPtr, Bool flag);
875 void WMLoadBrowserColumnZero(WMBrowser *bPtr);
877 int WMAddBrowserColumn(WMBrowser *bPtr);
879 void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row);
881 void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns);
883 void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
885 WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
887 WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
889 /* Don't free the returned string. */
890 char* WMSetBrowserPath(WMBrowser *bPtr, char *path);
892 /* you can free the returned string */
893 char *WMGetBrowserPath(WMBrowser *bPtr);
894 /* you can free the returned string */
895 char *WMGetBrowserPathToColumn(WMBrowser *bPtr, int column);
897 void WMSetBrowserFillColumnProc(WMBrowser *bPtr,WMBrowserFillColumnProc *proc);
899 void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData);
901 void WMSetBrowserDoubleAction(WMBrowser *bPtr, WMAction *action,
902 void *clientData);
904 WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column);
906 int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr);
908 int WMGetBrowserSelectedColumn(WMBrowser *bPtr);
910 int WMGetBrowserSelectedRowInColumn(WMBrowser *bPtr, int column);
912 int WMGetBrowserNumberOfColumns(WMBrowser *bPtr);
914 int WMGetBrowserMaxVisibleColumns(WMBrowser *bPtr);
916 WMList *WMGetBrowserListInColumn(WMBrowser *bPtr, int column);
918 extern char *WMBrowserDidScrollNotification;
920 /* ....................................................................... */
922 WMPopUpButton *WMCreatePopUpButton(WMWidget *parent);
924 void WMSetPopUpButtonAction(WMPopUpButton *sPtr, WMAction *action,
925 void *clientData);
927 void WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag);
929 void WMAddPopUpButtonItem(WMPopUpButton *bPtr, char *title);
931 void WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, char *title);
933 void WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index);
935 void WMSetPopUpButtonItemEnabled(WMPopUpButton *bPtr, int index, Bool flag);
937 void WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index);
939 int WMGetPopUpButtonSelectedItem(WMPopUpButton *bPtr);
941 void WMSetPopUpButtonText(WMPopUpButton *bPtr, char *text);
943 /* don't free the returned data */
944 char *WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
946 int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
948 void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
950 /* ....................................................................... */
952 WMColorPanel *WMGetColorPanel(WMScreen *scrPtr);
954 void WMFreeColorPanel(WMColorPanel *panel);
956 void WMShowColorPanel(WMColorPanel *panel);
958 void WMCloseColorPanel(WMColorPanel *panel);
960 void WMSetColorPanelColor(WMColorPanel *panel, WMColor *color);
962 RColor WMGetColorPanelColor(WMColorPanel *panel);
964 void WMSetColorPanelPickerMode(WMColorPanel *panel, WMColorPanelMode mode);
966 void WMSetColorPanelAction(WMColorPanel *panel, WMAction *action, void *data);
970 /* ....................................................................... */
972 WMColorWell *WMCreateColorWell(WMWidget *parent);
974 void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
976 WMColor *WMGetColorWellColor(WMColorWell *cPtr);
978 void WSetColorWellBordered(WMColorWell *cPtr, Bool flag);
981 extern char *WMColorWellDidChangeNotification;
984 /* ...................................................................... */
986 WMScrollView *WMCreateScrollView(WMWidget *parent);
988 void WMResizeScrollViewContent(WMScrollView *sPtr, unsigned int width,
989 unsigned int height);
991 void WMSetScrollViewHasHorizontalScroller(WMScrollView *sPtr, Bool flag);
993 void WMSetScrollViewHasVerticalScroller(WMScrollView *sPtr, Bool flag);
995 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
997 void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type);
999 void WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view);
1001 WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
1003 WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
1005 void WMSetScrollViewLineScroll(WMScrollView *sPtr, int amount);
1007 void WMSetScrollViewPageScroll(WMScrollView *sPtr, int amount);
1009 /* ....................................................................... */
1011 WMSlider *WMCreateSlider(WMWidget *parent);
1013 int WMGetSliderMinValue(WMSlider *slider);
1015 int WMGetSliderMaxValue(WMSlider *slider);
1017 int WMGetSliderValue(WMSlider *slider);
1019 void WMSetSliderMinValue(WMSlider *slider, int value);
1021 void WMSetSliderMaxValue(WMSlider *slider, int value);
1023 void WMSetSliderValue(WMSlider *slider, int value);
1025 void WMSetSliderContinuous(WMSlider *slider, Bool flag);
1027 void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
1029 void WMSetSliderKnobThickness(WMSlider *sPtr, int thickness);
1031 void WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap);
1033 /* ....................................................................... */
1035 /* only supports 2 subviews */
1036 WMSplitView *WMCreateSplitView(WMWidget *parent);
1038 void WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview);
1040 void WMAdjustSplitViewSubviews(WMSplitView *sPtr);
1042 void WMSetSplitViewConstrainProc(WMSplitView *sPtr,
1043 WMSplitViewConstrainProc *proc);
1046 void WMSetSplitViewResizeSubviewsProc(WMSplitView *sPtr,
1047 WMSplitViewResizeSubviewsProc *proc);
1050 int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
1053 /* ....................................................................... */
1055 int WMRunAlertPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
1056 char *defaultButton, char *alternateButton,
1057 char *otherButton);
1059 /* you can free the returned string */
1060 char *WMRunInputPanel(WMScreen *app, WMWindow *owner, char *title, char *msg,
1061 char *defaultText, char *okButton, char *cancelButton);
1063 WMAlertPanel *WMCreateAlertPanel(WMScreen *app, WMWindow *owner, char *title,
1064 char *msg, char *defaultButton,
1065 char *alternateButton, char *otherButton);
1067 WMInputPanel *WMCreateInputPanel(WMScreen *app, WMWindow *owner, char *title,
1068 char *msg, char *defaultText, char *okButton,
1069 char *cancelButton);
1071 void WMDestroyAlertPanel(WMAlertPanel *panel);
1073 void WMDestroyInputPanel(WMInputPanel *panel);
1075 /* ....................................................................... */
1077 /* only 1 instance per WMScreen */
1078 WMOpenPanel *WMGetOpenPanel(WMScreen *scrPtr);
1080 WMSavePanel *WMGetSavePanel(WMScreen *scrPtr);
1082 void WMSetFilePanelCanChooseDirectories(WMFilePanel *panel, Bool flag);
1084 void WMSetFilePanelCanChooseFiles(WMFilePanel *panel, Bool flag);
1086 void WMSetFilePanelAutoCompletion(WMFilePanel *panel, Bool flag);
1088 void WMSetFilePanelDirectory(WMFilePanel *panel, char *path);
1090 /* you can free the returned string */
1091 char *WMGetFilePanelFileName(WMFilePanel *panel);
1093 void WMFreeFilePanel(WMFilePanel *panel);
1095 int WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
1096 char *path, char *name, char **fileTypes);
1098 void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view);
1100 WMView *WMGetFilePanelAccessoryView(WMFilePanel *panel);
1103 /* ...................................................................... */
1105 /* only 1 instance per WMScreen */
1106 WMFontPanel *WMGetFontPanel(WMScreen *scr);
1108 void WMShowFontPanel(WMFontPanel *panel);
1110 void WMHideFontPanel(WMFontPanel *panel);
1112 void WMSetFontPanelFont(WMFontPanel *panel, WMFont *font);
1114 /* you can free the returned string */
1115 char *WMGetFontPanelFontName(WMFontPanel *panel);
1117 WMFont *WMGetFontPanelFont(WMFontPanel *panel);
1119 #ifdef __cplusplus
1121 #endif /* __cplusplus */
1123 #endif