File:
[local] /
rpl /
modules /
motif /
XmSetIcon.rplc
Revision
1.1:
download - view:
text,
annotated -
select for diffs -
revision graph
Wed Aug 23 12:21:59 2017 UTC (7 years, 8 months ago) by
bertrand
Branches:
MAIN
CVS tags:
rpl-4_1_35,
rpl-4_1_34,
rpl-4_1_33,
rpl-4_1_32,
rpl-4_1_31,
rpl-4_1_30,
rpl-4_1_29,
rpl-4_1_28,
HEAD
Ajout de XmSetIcon.
1: #include "src/rplexternals.h"
2: #include "motif.h"
3:
4: declareExternalFunction(XmSetIcon)
5: declareObject(filename);
6: declareObject(widget);
7:
8: Pixmap icon;
9:
10: string name;
11:
12: HEADER
13: declareHelpString("Set application icon\n"
14: " 2: widget shell\n"
15: " 1: filename\n");
16: numberOfArguments(2);
17: FUNCTION
18: if (initializationDone eq true) then
19: pullFromStack(filename, string);
20: returnOnError(freeObject(filename));
21:
22: pullFromStack(widget, external);
23: returnOnError(freeObject(filename); freeObject(widget));
24:
25: ifIsExternal(widget, WIDGET) then
26: orElse
27: executionError("Type mismath error");
28: returnOnError(freeObject(filename); freeObject(widget));
29: endIf
30:
31: getString(filename, name);
32:
33: select(XpmReadFileToPixmap(
34: XtDisplay(target(objectContainer(Widget, widget))),
35: XtWindow(target(objectContainer(Widget, widget))),
36: name, &icon, NULL, NULL))
37: exclusiveCase(XpmOpenFailed)
38: executionError("XpmOpenFailed");
39: endExclusiveCase
40:
41: exclusiveCase(XpmFileInvalid)
42: executionError("XpmOpenFailed");
43: endExclusiveCase
44:
45: exclusiveCase(XpmNoMemory)
46: systemError("XpmNoMemory");
47: endExclusiveCase
48: endSelect
49:
50: returnOnError(freeObject(filename); freeObject(widget));
51:
52: XtVaSetValues(target(objectContainer(Widget, widget)),
53: XmNiconPixmap, icon,
54: NULL);
55:
56: /* Icon is not copied, thus we haven't to free pixmap.
57: XFreePixmap(XtDisplay(target(objectContainer(Widget, widget))),
58: icon);
59: */
60:
61: freeObject(widget);
62: freeObject(filename);
63: orElse
64: executionError("Application not initialized");
65: returnOnError();
66: endIf
67: END
68: endExternalFunction
69:
70: // vim: ts=4
CVSweb interface <joel.bertrand@systella.fr>