Skip to content

Commit c1ed74a

Browse files
committed
ide: create icons for source code files and binaries
1 parent af4ae04 commit c1ed74a

File tree

3 files changed

+155
-0
lines changed

3 files changed

+155
-0
lines changed

CHANGELOG.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Improvements::
44

55
* runtime/ide: detect and handle CTRL-C breaks
66
* ide: handle workbench startup + argument
7+
* ide: create icons for source code files and binaries
78
* compiler/runtime: String concatenation implemented
89
* compiler: SLEEP FOR statement added
910
* runtime: workbench startup code added

src/compiler/icons.h

+140
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
#include <workbench/workbench.h>
2+
3+
USHORT aqbsrc1Data[132] =
4+
{
5+
0x0000,0x0000,0x0000,0x7FFF,0xFFC0,0x0000,0x58CC,0x78D0,
6+
0x0000,0x7BB5,0xBDDC,0x0000,0x59B4,0x7DDF,0x0000,0x7BCD,
7+
0x78DF,0xC000,0x5FFF,0xFFC0,0x0000,0x7FE3,0x18B4,0x7800,
8+
0x5FED,0x6D96,0xE800,0x7FE3,0x1DA6,0xF800,0x5FEF,0x58B6,
9+
0xE800,0x7FFF,0xFFFF,0xF800,0x5B45,0x471F,0xE800,0x794E,
10+
0xEFBF,0xF800,0x5A5E,0xEFBF,0xE800,0x7B45,0x6F1F,0xF800,
11+
0x5FFF,0xFFFF,0xE800,0x7FFF,0xFFFF,0xF800,0x5FFF,0xFFFF,
12+
0xE800,0x7FFF,0xFFFF,0xF800,0x5FFF,0xFFFF,0xE800,0x0000,
13+
0x0000,0x0000,
14+
15+
0xFFFF,0xFFC0,0x0000,0x8000,0x0030,0x0000,0xA000,0x002C,
16+
0x0000,0x8000,0x0023,0x0000,0xA000,0x0020,0xC000,0x8000,
17+
0x0020,0x3000,0xA000,0x003F,0xFC00,0x8000,0x0000,0x0400,
18+
0xA000,0x0000,0x1400,0x8000,0x0000,0x0400,0xA000,0x0000,
19+
0x1400,0x8000,0x0000,0x0400,0xA000,0x0000,0x1400,0x8000,
20+
0x0000,0x0400,0xA000,0x0000,0x1400,0x8000,0x0000,0x0400,
21+
0xA000,0x0000,0x1400,0x8000,0x0000,0x0400,0xA000,0x0000,
22+
0x1400,0x8000,0x0000,0x0400,0xA000,0x0000,0x1400,0xFFFF,
23+
0xFFFF,0xFC00
24+
};
25+
26+
struct Image aqbsrc1Image =
27+
{
28+
0,0,
29+
38,22,2,
30+
(USHORT *)&aqbsrc1Data[0],
31+
0x03,0x00,
32+
(struct Image *)NULL
33+
};
34+
35+
UWORD do_Magic;
36+
UWORD do_Version;
37+
struct Gadget do_Gadget;
38+
UBYTE do_Type;
39+
char * do_DefaultTool;
40+
char ** do_ToolTypes;
41+
42+
struct DiskObject aqbsrcIcon =
43+
{
44+
/* UWORD do_Magic = */ WB_DISKMAGIC,
45+
/* UWORD do_Version = */ WB_DISKVERSION,
46+
/* struct Gadget do_Gadget = */
47+
{
48+
NULL,
49+
24,15,
50+
38,23,
51+
0x0005,
52+
0x0003,
53+
0x0001,
54+
(APTR)&aqbsrc1Image,
55+
(APTR)NULL,
56+
/* struct IntuiText *GadgetText =*/NULL,
57+
0l,
58+
NULL,
59+
0l,
60+
NULL
61+
},
62+
/* UBYTE do_Type = */ WBPROJECT,
63+
/* char * do_DefaultTool = */ (STRPTR) "AQB:aqb",
64+
/* char ** do_ToolTypesNULL = */ NULL,
65+
/* LONG do_CurrentX = */ NO_ICON_POSITION,
66+
/* LONG do_CurrentY = */ NO_ICON_POSITION,
67+
/* struct DrawerData * = */ NULL,
68+
/* char * do_ToolWindow = */ NULL,
69+
/* LONG do_StackSize = */ 100000 /* FIXME */
70+
};
71+
72+
#include <workbench/workbench.h>
73+
74+
USHORT aqbbin1Data[192] =
75+
{
76+
0x0000,0x0000,0x0000,0x0000,0x0007,0xFFFF,0xFFFF,0xFC00,
77+
0x001F,0xFFFF,0xFFFF,0xF300,0x007F,0xFFFF,0xFFFF,0xCF00,
78+
0x01FF,0xFFFF,0xFFFF,0x3F00,0x07FF,0xFFFF,0xFFFC,0xFF00,
79+
0x0000,0x0000,0x0001,0xFF00,0x1FFF,0xFFFF,0xFFF9,0xFF00,
80+
0x18EE,0x38ED,0xC719,0xFF00,0x176D,0xD76D,0xBAE9,0xFF00,
81+
0x176D,0xD76D,0xBAE9,0xFF00,0x176D,0xD76D,0xBAE9,0xFF00,
82+
0x18EE,0x38ED,0xC719,0xFF00,0x1FFF,0xFFFF,0xFFF9,0xFF00,
83+
0x1FFF,0xFFFF,0xFFF9,0xFF00,0x1FFF,0xFFFF,0xFFF9,0xFF00,
84+
0x1FFF,0xFFFF,0xFFF9,0xFF00,0x1FFF,0xFFFF,0xFFF9,0xFF00,
85+
0x1FFF,0xFFFF,0xFFF9,0xFE00,0x1FFF,0xFFFF,0xFFF9,0xF800,
86+
0x1FFF,0xFFFF,0xFFF9,0xE000,0x1FFF,0xFFFF,0xFFF9,0x8000,
87+
0x1FFF,0xFFFF,0xFFF8,0x0000,0x0000,0x0000,0x0000,0x0000,
88+
89+
0x0007,0xFFFF,0xFFFF,0xFFC0,0x0018,0x0000,0x0000,0x03C0,
90+
0x0060,0x0000,0x0000,0x0CC0,0x0180,0x0000,0x0000,0x30C0,
91+
0x0600,0x0000,0x0000,0xC0C0,0x1800,0x0000,0x0003,0x00C0,
92+
0x7FFF,0xFFFF,0xFFFE,0x00C0,0x6000,0x0000,0x0006,0x00C0,
93+
0x6000,0x0000,0x0006,0x00C0,0x6000,0x0000,0x0006,0x00C0,
94+
0x6000,0x0000,0x0006,0x00C0,0x6000,0x0000,0x0006,0x00C0,
95+
0x6000,0x0000,0x0006,0x00C0,0x6000,0x0000,0x0006,0x00C0,
96+
0x6000,0x0000,0x0006,0x00C0,0x6000,0x0000,0x0006,0x00C0,
97+
0x6000,0x0000,0x0006,0x00C0,0x6000,0x0000,0x0006,0x00C0,
98+
0x6000,0x0000,0x0006,0x0180,0x6000,0x0000,0x0006,0x0600,
99+
0x6000,0x0000,0x0006,0x1800,0x6000,0x0000,0x0006,0x6000,
100+
0x6000,0x0000,0x0007,0x8000,0x7FFF,0xFFFF,0xFFFE,0x0000
101+
};
102+
103+
struct Image aqbbin1Image =
104+
{
105+
0,0,
106+
58,24,2,
107+
(USHORT *)&aqbbin1Data[0],
108+
0x03,0x00,
109+
(struct Image *)NULL
110+
};
111+
112+
struct DiskObject aqbbinIcon =
113+
{
114+
WB_DISKMAGIC,
115+
WB_DISKVERSION,
116+
{
117+
NULL,
118+
11,15,
119+
58,25,
120+
0x0005,
121+
0x0003,
122+
0x0001,
123+
(APTR)&aqbbin1Image,
124+
NULL,
125+
NULL,
126+
0l,
127+
NULL,
128+
0l,
129+
NULL
130+
},
131+
WBTOOL,
132+
NULL,
133+
NULL,
134+
NO_ICON_POSITION,
135+
NO_ICON_POSITION,
136+
NULL,
137+
NULL,
138+
65536 /* FIXME */
139+
};
140+

src/compiler/ide.c

+14
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@
4343

4444
#ifdef __amigaos__
4545
#define TMP_BINFN "T:aqb_out.exe"
46+
#include "icons.h"
47+
#include <clib/icon_protos.h>
48+
#include <inline/icon.h>
49+
extern struct IconBase *IconBase;
4650
#else
4751
#define TMP_BINFN "/tmp/aqb_out.exe"
4852
#endif
@@ -1538,6 +1542,10 @@ static bool IDE_save (IDE_editor ed, bool save_as)
15381542

15391543
fclose (sourcef);
15401544

1545+
#ifdef __amigaos__
1546+
PutDiskObject((STRPTR)ed->sourcefn, &aqbsrcIcon);
1547+
#endif
1548+
15411549
ed->changed = FALSE;
15421550
ed->up2date_il_flags = FALSE;
15431551

@@ -1613,6 +1621,12 @@ static bool compile(IDE_editor ed)
16131621
ed->il_show_error = TRUE;
16141622
return FALSE;
16151623
}
1624+
else
1625+
{
1626+
#ifdef __amigaos__
1627+
PutDiskObject((STRPTR)ed->binfn, &aqbbinIcon);
1628+
#endif
1629+
}
16161630
return TRUE;
16171631
}
16181632

0 commit comments

Comments
 (0)