2
* WINGs test application
5
#include <WINGs/WINGs.h>
12
* You need to define this function to link any program to WINGs.
13
* (this is no longer required as there is a default abort handler in WINGs)
14
* This will be called when the application will be terminated because
15
* of a fatal error (only for memory allocation failures ATM).
31
closeAction(WMWidget *self, void *data)
33
WMDestroyWidget(self);
35
printf("window closed, window count = %d\n", windowCount);
42
testOpenFilePanel(WMScreen *scr)
48
/* get the shared Open File panel */
49
panel = WMGetOpenPanel(scr);
51
WMRunModalFilePanelForDirectory(panel, NULL, "/usr/local", NULL, NULL);
53
/* free the panel to save some memory. Not needed otherwise. */
54
WMFreeFilePanel(WMGetOpenPanel(scr));
59
testFontPanel(WMScreen *scr)
65
panel = WMGetFontPanel(scr);
67
WMShowFontPanel(panel);
69
/*WMFreeFontPanel(panel);*/
75
testFrame(WMScreen *scr)
80
static char* titles[] = {
88
static WMTitlePosition pos[] = {
99
win = WMCreateWindow(scr, "testFrame");
100
WMSetWindowTitle(win, "Frame");
101
WMSetWindowCloseAction(win, closeAction, NULL);
102
WMResizeWidget(win, 400, 300);
104
for (i = 0; i < 6; i++) {
105
frame = WMCreateFrame(win);
106
WMMoveWidget(frame, 8+(i%3)*130, 8+(i/3)*130);
107
WMResizeWidget(frame, 120, 120);
108
WMSetFrameTitle(frame, titles[i]);
109
WMSetFrameTitlePosition(frame, pos[i]);
112
WMRealizeWidget(win);
113
WMMapSubwidgets(win);
120
resizedWindow(void *self, WMNotification *notif)
122
WMView *view = (WMView*)WMGetNotificationObject(notif);
123
WMSize size = WMGetViewSize(view);
125
WMResizeWidget((WMWidget*)self, size.width, size.height);
129
testBox(WMScreen *scr)
139
win = WMCreateWindow(scr, "testBox");
140
WMSetWindowTitle(win, "Box");
141
WMSetWindowCloseAction(win, closeAction, NULL);
142
WMResizeWidget(win, 400, 300);
144
box = WMCreateBox(win);
145
WMSetBoxBorderWidth(box, 5);
146
WMSetViewExpandsToParent(WMWidgetView(box), 0, 0, 0, 0);
148
/*WMSetBoxHorizontal(box, True);*/
149
for (i = 0; i < 4; i++) {
150
btn = WMCreateCommandButton(box);
151
WMSetButtonText(btn, "bla");
153
WMAddBoxSubview(box, WMWidgetView(btn), i&1, True, 20, 0, 5);
156
pop = WMCreatePopUpButton(box);
157
WMAddPopUpButtonItem(pop, "ewqeq");
158
WMAddPopUpButtonItem(pop, "ewqeqrewrw");
159
WMAddBoxSubview(box, WMWidgetView(pop), False, True, 20, 0, 5);
162
hbox = WMCreateBox(box);
163
WMSetBoxHorizontal(hbox, True);
164
WMAddBoxSubview(box, WMWidgetView(hbox), False, True, 24, 0, 0);
167
for (i = 0; i < 4; i++) {
168
btn = WMCreateCommandButton(hbox);
169
WMSetButtonText(btn, "bla");
171
WMAddBoxSubview(hbox, WMWidgetView(btn), 1, True, 60, 0, i<3?5:0);
175
WMRealizeWidget(win);
176
WMMapSubwidgets(win);
184
singleClick(WMWidget *self, void *data)
190
doubleClick(WMWidget *self, void *data)
192
WMSelectAllListItems((WMList*)self);
197
listSelectionObserver(void *observer, WMNotification *notification)
199
WMLabel *label = (WMLabel*)observer;
200
WMList *lPtr = (WMList*)WMGetNotificationObject(notification);
203
sprintf(buf, "Selected items: %d",
204
WMGetArrayItemCount(WMGetListSelectedItems(lPtr)));
205
WMSetLabelText(label, buf);
210
testList(WMScreen *scr)
224
win = WMCreateWindow(scr, "testList");
225
WMResizeWidget(win, 370, 250);
226
WMSetWindowTitle(win, "List");
227
WMSetWindowCloseAction(win, closeAction, NULL);
229
title = WMCreateLabel(win);
230
WMResizeWidget(title, 150, 20);
231
WMMoveWidget(title, 10, 10);
232
WMSetLabelRelief(title, WRRidge);
233
WMSetLabelText(title, "Single selection list");
235
mtitle = WMCreateLabel(win);
236
WMResizeWidget(mtitle, 150, 20);
237
WMMoveWidget(mtitle, 210, 10);
238
WMSetLabelRelief(mtitle, WRRidge);
239
WMSetLabelText(mtitle, "Multiple selection list");
241
list = WMCreateList(win);
242
/*WMSetListAllowEmptySelection(list, True);*/
243
WMMoveWidget(list, 10, 40);
244
for (i=0; i<105; i++) {
245
sprintf(text, "Item %i", i);
246
WMAddListItem(list, text);
248
mlist = WMCreateList(win);
249
WMSetListAllowMultipleSelection(mlist, True);
250
/*WMSetListAllowEmptySelection(mlist, True);*/
251
WMMoveWidget(mlist, 210, 40);
252
for (i=0; i<135; i++) {
253
sprintf(text, "Item %i", i);
254
WMAddListItem(mlist, text);
257
label = WMCreateLabel(win);
258
WMResizeWidget(label, 150, 40);
259
WMMoveWidget(label, 10, 200);
260
WMSetLabelRelief(label, WRRidge);
261
WMSetLabelText(label, "Selected items: 0");
263
mlabel = WMCreateLabel(win);
264
WMResizeWidget(mlabel, 150, 40);
265
WMMoveWidget(mlabel, 210, 200);
266
WMSetLabelRelief(mlabel, WRRidge);
267
WMSetLabelText(mlabel, "Selected items: 0");
269
WMSetListAction(list, singleClick, label);
270
WMSetListDoubleAction(list, doubleClick, label);
271
WMSetListAction(mlist, singleClick, mlabel);
272
WMSetListDoubleAction(mlist, doubleClick, mlabel);
274
WMAddNotificationObserver(listSelectionObserver, label,
275
WMListSelectionDidChangeNotification, list);
276
WMAddNotificationObserver(listSelectionObserver, mlabel,
277
WMListSelectionDidChangeNotification, mlist);
280
WMRealizeWidget(win);
281
WMMapSubwidgets(win);
287
testButton(WMScreen *scr)
304
win = WMCreateWindow(scr, "testButton");
305
WMResizeWidget(win, 300, 300);
306
WMSetWindowTitle(win, "Buttons");
308
WMSetWindowCloseAction(win, closeAction, NULL);
310
for (i = 1; i < 9; i++) {
312
b = WMCreateButton(win, i);
313
WMResizeWidget(b, 150, 24);
314
WMMoveWidget(b, 20, i*30);
315
WMSetButtonText(b, types[i-1]);
318
WMRealizeWidget(win);
319
WMMapSubwidgets(win);
325
testGradientButtons(WMScreen *scr)
329
WMPixmap *pix1, *pix2;
332
WMColor *color, *altColor;
336
/* creates the top-level window */
337
win = WMCreateWindow(scr, "testGradientButtons");
338
WMSetWindowTitle(win, "Gradiented Button Demo");
339
WMResizeWidget(win, 300, 200);
341
WMSetWindowCloseAction(win, closeAction, NULL);
351
color = WMCreateRGBColor(scr, 0x5900, 0x5100, 0x5900, True);
352
WMSetWidgetBackgroundColor(win, color);
353
WMReleaseColor(color);
355
back = RRenderGradient(60, 24, &dark, &light, RGRD_DIAGONAL);
356
RBevelImage(back, RBEV_RAISED2);
357
pix1 = WMCreatePixmapFromRImage(scr, back, 0);
360
back = RRenderGradient(60, 24, &dark, &light, RGRD_DIAGONAL);
361
RBevelImage(back, RBEV_SUNKEN);
362
pix2 = WMCreatePixmapFromRImage(scr, back, 0);
365
color = WMWhiteColor(scr);
366
altColor = WMCreateNamedColor(scr, "red", True);
368
btn = WMCreateButton(win, WBTMomentaryChange);
369
WMResizeWidget(btn, 60, 24);
370
WMMoveWidget(btn, 20, 100);
371
WMSetButtonBordered(btn, False);
372
WMSetButtonImagePosition(btn, WIPOverlaps);
373
WMSetButtonImage(btn, pix1);
374
WMSetButtonAltImage(btn, pix2);
375
WMSetButtonText(btn, "Cool");
376
WMSetButtonTextColor(btn, color);
377
WMSetButtonAltTextColor(btn, altColor);
379
WMSetBalloonTextForView("This is a cool button", WMWidgetView(btn));
381
btn = WMCreateButton(win, WBTMomentaryChange);
382
WMResizeWidget(btn, 60, 24);
383
WMMoveWidget(btn, 90, 100);
384
WMSetButtonBordered(btn, False);
385
WMSetButtonImagePosition(btn, WIPOverlaps);
386
WMSetButtonImage(btn, pix1);
387
WMSetButtonAltImage(btn, pix2);
388
WMSetButtonText(btn, "Button");
389
WMSetButtonTextColor(btn, color);
391
WMSetBalloonTextForView("Este ļæ½ outro balļæ½o.", WMWidgetView(btn));
393
WMReleaseColor(color);
394
color = WMCreateNamedColor(scr, "orange", True);
396
btn = WMCreateButton(win, WBTMomentaryChange);
397
WMResizeWidget(btn, 60, 24);
398
WMMoveWidget(btn, 160, 100);
399
WMSetButtonBordered(btn, False);
400
WMSetButtonImagePosition(btn, WIPOverlaps);
401
WMSetButtonImage(btn, pix1);
402
WMSetButtonAltImage(btn, pix2);
403
WMSetButtonText(btn, "Test");
404
WMSetButtonTextColor(btn, color);
406
WMSetBalloonTextForView("This is yet another button.\nBut the balloon has 3 lines.\nYay!",
409
WMReleaseColor(color);
410
WMReleaseColor(altColor);
412
WMRealizeWidget(win);
413
WMMapSubwidgets(win);
419
testScrollView(WMScreen *scr)
430
/* creates the top-level window */
431
win = WMCreateWindow(scr, "testScroll");
432
WMSetWindowTitle(win, "Scrollable View");
434
WMSetWindowCloseAction(win, closeAction, NULL);
436
/* set the window size */
437
WMResizeWidget(win, 300, 300);
439
/* creates a scrollable view inside the top-level window */
440
sview = WMCreateScrollView(win);
441
WMResizeWidget(sview, 200, 200);
442
WMMoveWidget(sview, 30, 30);
443
WMSetScrollViewRelief(sview, WRSunken);
444
WMSetScrollViewHasVerticalScroller(sview, True);
445
WMSetScrollViewHasHorizontalScroller(sview, True);
447
/* create a frame with a bunch of labels */
448
f = WMCreateFrame(win);
449
WMResizeWidget(f, 400, 400);
450
WMSetFrameRelief(f, WRFlat);
452
for (i=0; i<20; i++) {
453
l = WMCreateLabel(f);
454
WMResizeWidget(l, 50, 18);
455
WMMoveWidget(l, 10, 20*i);
456
sprintf(buffer, "Label %i", i);
457
WMSetLabelText(l, buffer);
458
WMSetLabelRelief(l, WRSimple);
463
WMSetScrollViewContentView(sview, WMWidgetView(f));
465
/* make the windows of the widgets be actually created */
466
WMRealizeWidget(win);
468
/* Map all child widgets of the top-level be mapped.
469
* You must call this for each container widget (like frames),
470
* even if they are childs of the top-level window.
472
WMMapSubwidgets(win);
474
/* map the top-level window */
480
testColorWell(WMScreen *scr)
483
WMColorWell *well1, *well2;
487
win = WMCreateWindow(scr, "testColor");
488
WMResizeWidget(win, 300, 300);
489
WMSetWindowCloseAction(win, closeAction, NULL);
491
well1 = WMCreateColorWell(win);
492
WMResizeWidget(well1, 60, 40);
493
WMMoveWidget(well1, 100, 100);
494
WMSetColorWellColor(well1, WMCreateRGBColor(scr, 0x8888, 0, 0x1111, True));
495
well2 = WMCreateColorWell(win);
496
WMResizeWidget(well2, 60, 40);
497
WMMoveWidget(well2, 200, 100);
498
WMSetColorWellColor(well2, WMCreateRGBColor(scr, 0, 0, 0x8888, True));
500
WMRealizeWidget(win);
501
WMMapSubwidgets(win);
507
testColorPanel(WMScreen *scr)
509
WMColorPanel *panel = WMGetColorPanel(scr);
512
startcolor = WMCreateNamedColor(scr, colorname, False);
513
WMSetColorPanelColor(panel, startcolor);
514
WMReleaseColor(startcolor);
517
WMShowColorPanel(panel);
521
sliderCallback(WMWidget *w, void *data)
523
printf("SLIDER == %i\n", WMGetSliderValue(w));
528
testSlider(WMScreen *scr)
535
win = WMCreateWindow(scr, "testSlider");
536
WMResizeWidget(win, 300, 300);
537
WMSetWindowTitle(win, "Sliders");
539
WMSetWindowCloseAction(win, closeAction, NULL);
541
s = WMCreateSlider(win);
542
WMResizeWidget(s, 16, 100);
543
WMMoveWidget(s, 100, 100);
544
WMSetSliderKnobThickness(s, 8);
545
WMSetSliderContinuous(s, False);
546
WMSetSliderAction(s, sliderCallback, s);
548
s = WMCreateSlider(win);
549
WMResizeWidget(s, 100, 16);
550
WMMoveWidget(s, 100, 10);
551
WMSetSliderKnobThickness(s, 8);
553
WMRealizeWidget(win);
554
WMMapSubwidgets(win);
560
testTextField(WMScreen *scr)
563
WMTextField *field, *field2;
567
win = WMCreateWindow(scr, "testTextField");
568
WMResizeWidget(win, 400, 300);
570
WMSetWindowCloseAction(win, closeAction, NULL);
572
field = WMCreateTextField(win);
573
WMResizeWidget(field, 200, 20);
574
WMMoveWidget(field, 20, 20);
576
field2 = WMCreateTextField(win);
577
WMResizeWidget(field2, 200, 20);
578
WMMoveWidget(field2, 20, 50);
579
WMSetTextFieldAlignment(field2, WARight);
581
WMRealizeWidget(win);
582
WMMapSubwidgets(win);
589
testText(WMScreen *scr)
595
FILE *file = fopen("wm.html", "rb");
599
win = WMCreateWindow(scr, "testText");
600
WMResizeWidget(win, 500, 300);
602
WMSetWindowCloseAction(win, closeAction, NULL);
604
text = WMCreateText(win);
605
WMResizeWidget(text, 480, 280);
606
WMMoveWidget(text, 10, 10);
607
WMSetTextHasVerticalScroller(text, True);
608
WMSetTextEditable(text, False);
609
WMSetTextIgnoresNewline(text, False);
611
#define FNAME "Verdana,Luxi Sans:pixelsize=12"
613
"Window Maker is the GNU window manager for the " \
614
"X Window System. It was designed to emulate the " \
615
"look and feel of part of the NEXTSTEP(tm) GUI. It's " \
616
"supposed to be relatively fast and small, feature " \
617
"rich, easy to configure and easy to use, with a simple " \
618
"and elegant appearance borrowed from NEXTSTEP(tm)."
620
font = WMCreateFont(scr, FNAME":autohint=false");
621
WMSetTextDefaultFont(text, font);
628
while(fgets(buf, 1023, file))
629
WMAppendTextStream(text, buf);
634
WMAppendTextStream(text, "First paragraph has autohinting turned off, "
635
"while the second has it turned on:");
636
WMAppendTextStream(text, "\n\n\n");
637
WMAppendTextStream(text, MSG);
638
WMAppendTextStream(text, "\n\n\n");
639
font = WMCreateFont(scr, FNAME":autohint=true");
640
tb = WMCreateTextBlockWithText(text, MSG, font, WMBlackColor(scr),
642
WMAppendTextBlock(text, tb);
646
WMRealizeWidget(win);
647
WMMapSubwidgets(win);
653
testProgressIndicator(WMScreen *scr)
656
WMProgressIndicator *pPtr;
660
win = WMCreateWindow(scr, "testProgressIndicator");
661
WMResizeWidget(win, 292, 32);
663
WMSetWindowCloseAction(win, closeAction, NULL);
665
pPtr = WMCreateProgressIndicator(win);
666
WMMoveWidget(pPtr, 8, 8);
667
WMSetProgressIndicatorValue(pPtr, 75);
669
WMRealizeWidget(win);
670
WMMapSubwidgets(win);
677
testPullDown(WMScreen *scr)
680
WMPopUpButton *pop, *pop2;
684
win = WMCreateWindow(scr, "pullDown");
685
WMResizeWidget(win, 400, 300);
687
WMSetWindowCloseAction(win, closeAction, NULL);
689
pop = WMCreatePopUpButton(win);
690
WMResizeWidget(pop, 100, 20);
691
WMMoveWidget(pop, 50, 60);
692
WMSetPopUpButtonPullsDown(pop, True);
693
WMSetPopUpButtonText(pop, "Commands");
694
WMAddPopUpButtonItem(pop, "Add");
695
WMAddPopUpButtonItem(pop, "Remove");
696
WMAddPopUpButtonItem(pop, "Check");
697
WMAddPopUpButtonItem(pop, "Eat");
699
pop2 = WMCreatePopUpButton(win);
700
WMResizeWidget(pop2, 100, 20);
701
WMMoveWidget(pop2, 200, 60);
702
WMSetPopUpButtonText(pop2, "Select");
703
WMAddPopUpButtonItem(pop2, "Apples");
704
WMAddPopUpButtonItem(pop2, "Bananas");
705
WMAddPopUpButtonItem(pop2, "Strawberries");
706
WMAddPopUpButtonItem(pop2, "Blueberries");
708
WMRealizeWidget(win);
709
WMMapSubwidgets(win);
716
testTabView(WMScreen *scr)
726
win = WMCreateWindow(scr, "testTabs");
727
WMResizeWidget(win, 400, 300);
729
WMSetWindowCloseAction(win, closeAction, NULL);
731
tabv = WMCreateTabView(win);
732
WMMoveWidget(tabv, 50, 50);
733
WMResizeWidget(tabv, 300, 200);
735
frame = WMCreateFrame(win);
736
WMSetFrameRelief(frame, WRFlat);
737
label = WMCreateLabel(frame);
738
WMResizeWidget(label, 100, 100);
739
WMSetLabelText(label, "Label 1");
743
tab = WMCreateTabViewItemWithIdentifier(0);
744
WMSetTabViewItemView(tab, WMWidgetView(frame));
745
WMAddItemInTabView(tabv, tab);
746
WMSetTabViewItemLabel(tab, "Instances");
748
frame = WMCreateFrame(win);
749
WMSetFrameRelief(frame, WRFlat);
750
label = WMCreateLabel(frame);
751
WMResizeWidget(label, 40, 50);
752
WMSetLabelText(label, "Label 2");
756
tab = WMCreateTabViewItemWithIdentifier(0);
757
WMSetTabViewItemView(tab, WMWidgetView(frame));
758
WMAddItemInTabView(tabv, tab);
759
WMSetTabViewItemLabel(tab, "Classes");
762
frame = WMCreateFrame(win);
763
WMSetFrameRelief(frame, WRFlat);
764
label = WMCreateLabel(frame);
765
WMResizeWidget(label, 100, 100);
766
WMMoveWidget(label, 60, 40);
767
WMSetLabelText(label, "Label 3");
770
tab = WMCreateTabViewItemWithIdentifier(0);
771
WMSetTabViewItemView(tab, WMWidgetView(frame));
772
WMAddItemInTabView(tabv, tab);
773
WMSetTabViewItemLabel(tab, "Something");
776
frame = WMCreateFrame(win);
777
WMSetFrameRelief(frame, WRFlat);
778
label = WMCreateLabel(frame);
779
WMResizeWidget(label, 100, 100);
780
WMMoveWidget(label, 160, 40);
781
WMSetLabelText(label, "Label 4");
784
tab = WMCreateTabViewItemWithIdentifier(0);
785
WMSetTabViewItemView(tab, WMWidgetView(frame));
786
WMAddItemInTabView(tabv, tab);
787
WMSetTabViewItemLabel(tab, "Bla!");
791
frame = WMCreateFrame(win);
792
WMSetFrameRelief(frame, WRFlat);
793
label = WMCreateLabel(frame);
794
WMResizeWidget(label, 100, 100);
795
WMMoveWidget(label, 160, 40);
796
WMSetLabelText(label, "Label fjweqklrj qwl");
798
tab = WMCreateTabViewItemWithIdentifier(0);
799
WMSetTabViewItemView(tab, WMWidgetView(frame));
800
WMAddItemInTabView(tabv, tab);
801
WMSetTabViewItemLabel(tab, "Weee!");
804
WMRealizeWidget(win);
805
WMMapSubwidgets(win);
811
splitViewConstrainProc(WMSplitView *sPtr, int indView,
812
int *minSize, int *maxSize)
832
resizeSplitView(XEvent *event, void *data)
834
WMSplitView *sPtr = (WMSplitView*)data;
836
if (event->type == ConfigureNotify) {
837
int width = event->xconfigure.width - 10;
839
if (width < WMGetSplitViewDividerThickness(sPtr))
840
width = WMGetSplitViewDividerThickness(sPtr);
842
if (width != WMWidgetWidth(sPtr) ||
843
event->xconfigure.height != WMWidgetHeight(sPtr))
844
WMResizeWidget(sPtr, width, event->xconfigure.height - 55);
849
appendSubviewButtonAction(WMWidget *self, void *data)
851
WMSplitView *sPtr = (WMSplitView*)data;
853
WMLabel *label = WMCreateLabel(sPtr);
855
sprintf(buf, "Subview %d", WMGetSplitViewSubviewsCount(sPtr) + 1);
856
WMSetLabelText(label, buf);
857
WMSetLabelRelief(label, WRSunken);
858
WMAddSplitViewSubview(sPtr, WMWidgetView(label));
859
WMRealizeWidget(label);
864
removeSubviewButtonAction(WMWidget *self, void *data)
866
WMSplitView *sPtr = (WMSplitView*)data;
867
int count = WMGetSplitViewSubviewsCount(sPtr);
870
WMView *view = WMGetSplitViewSubviewAt(sPtr, count-1);
871
WMDestroyWidget(WMWidgetOfView(view));
872
WMRemoveSplitViewSubviewAt(sPtr, count-1);
877
orientationButtonAction(WMWidget *self, void *data)
879
WMSplitView *sPtr = (WMSplitView*)data;
880
WMSetSplitViewVertical(sPtr, !WMGetSplitViewVertical(sPtr));
884
adjustSubviewsButtonAction(WMWidget *self, void *data)
886
WMAdjustSplitViewSubviews((WMSplitView*)data);
890
testSplitView(WMScreen *scr)
893
WMSplitView *splitv1, *splitv2;
900
win = WMCreateWindow(scr, "testTabs");
901
WMResizeWidget(win, 300, 400);
902
WMSetWindowCloseAction(win, closeAction, NULL);
904
frame = WMCreateFrame(win);
905
WMSetFrameRelief(frame, WRSunken);
906
WMMoveWidget(frame, 5, 5);
907
WMResizeWidget(frame, 290, 40);
909
splitv1 = WMCreateSplitView(win);
910
WMMoveWidget(splitv1, 5, 50);
911
WMResizeWidget(splitv1, 290, 345);
912
WMSetSplitViewConstrainProc(splitv1, splitViewConstrainProc);
913
WMCreateEventHandler(WMWidgetView(win), StructureNotifyMask,
914
resizeSplitView, splitv1);
916
button = WMCreateCommandButton(frame);
917
WMSetButtonText(button, "+");
918
WMSetButtonAction(button, appendSubviewButtonAction, splitv1);
919
WMMoveWidget(button, 10, 8);
922
button = WMCreateCommandButton(frame);
923
WMSetButtonText(button, "-");
924
WMSetButtonAction(button, removeSubviewButtonAction, splitv1);
925
WMMoveWidget(button, 80, 8);
928
button = WMCreateCommandButton(frame);
929
WMSetButtonText(button, "=");
930
WMMoveWidget(button, 150, 8);
931
WMSetButtonAction(button, adjustSubviewsButtonAction, splitv1);
934
button = WMCreateCommandButton(frame);
935
WMSetButtonText(button, "#");
936
WMMoveWidget(button, 220, 8);
937
WMSetButtonAction(button, orientationButtonAction, splitv1);
940
label = WMCreateLabel(splitv1);
941
WMSetLabelText(label, "Subview 1");
942
WMSetLabelRelief(label, WRSunken);
944
WMAddSplitViewSubview(splitv1, WMWidgetView(label));
946
splitv2 = WMCreateSplitView(splitv1);
947
WMResizeWidget(splitv2, 150, 150);
948
WMSetSplitViewVertical(splitv2, True);
950
label = WMCreateLabel(splitv2);
951
WMSetLabelText(label, "Subview 2.1");
952
WMSetLabelRelief(label, WRSunken);
954
WMAddSplitViewSubview(splitv2, WMWidgetView(label));
956
label = WMCreateLabel(splitv2);
957
WMSetLabelText(label, "Subview 2.2");
958
WMSetLabelRelief(label, WRSunken);
960
WMAddSplitViewSubview(splitv2, WMWidgetView(label));
962
label = WMCreateLabel(splitv2);
963
WMSetLabelText(label, "Subview 2.3");
964
WMSetLabelRelief(label, WRSunken);
966
WMAddSplitViewSubview(splitv2, WMWidgetView(label));
968
WMMapWidget(splitv2);
969
WMAddSplitViewSubview(splitv1, WMWidgetView(splitv2));
971
WMRealizeWidget(win);
972
WMMapSubwidgets(win);
980
WMUserDefaults *defs;
983
defs = WMGetStandardUserDefaults();
985
sprintf(str, "TEST DATA");
987
WMSetUDStringForKey(defs, str, "testKey");
993
main(int argc, char **argv)
999
/* Initialize the application */
1000
WMInitializeApplication("Test@eqweq_ewq$eqw", &argc, argv);
1005
* Open connection to the X display.
1007
dpy = XOpenDisplay("");
1010
puts("could not open display");
1014
/* This is used to disable buffering of X protocol requests.
1015
* Do NOT use it unless when debugging. It will cause a major
1016
* slowdown in your application
1019
XSynchronize(dpy, True);
1022
* Create screen descriptor.
1024
scr = WMCreateScreen(dpy, DefaultScreen(dpy));
1027
* Loads the logo of the application.
1029
pixmap = WMCreatePixmapFromFile(scr, "logo.xpm");
1032
* Makes the logo be used in standard dialog panels.
1035
WMSetApplicationIconPixmap(scr, pixmap);
1036
WMReleasePixmap(pixmap);
1040
* Do some test stuff.
1042
* Put the testSomething() function you want to test here.
1048
testColorPanel(scr);
1054
testColorPanel(scr);
1056
testDragAndDrop(scr);
1058
testGradientButtons(scr);
1060
testOpenFilePanel(scr);
1061
testProgressIndicator(scr);
1063
testScrollView(scr);
1070
* The main event loop.
1073
WMScreenMainLoop(scr);