@@ -11,7 +11,8 @@ On Windows, it deals with the low level Windows GDI interface.
11
11
MSEgui is like a GTK2/GTK3/Qt5 widgetset with same look-and-feel on each OS (Linux, FreeBSD, OpenBSD, NetBSD, MacOS and Windows).
12
12
And because it is developed in Pascal, you have full control on the widgetset.
13
13
14
- # Features
14
+ ## Features
15
+
15
16
- Compiles with FPC 2.6.4, 3.0.0, 3.0.2, 3.2.0, 3.2.2. and 3.3.1.
16
17
- Compiles with FPC-LLVM 3.3.1.
17
18
- For FreeBSD-x86_64, FreeBSD-i386, FreeBSD-aarch64,
@@ -22,17 +23,18 @@ And because it is developed in Pascal, you have full control on the widgetset.
22
23
Darwin-MacOs-x86_64, Darwin-MacOs-aarch64,
23
24
Windows-i386, Windows-x86_64.
24
25
- Links to xlib and gdi32, no external widget library needed.
25
- - Internal character encoding is utf -16.
26
- - Uses anti aliased fonts on Linux (Xft).
27
- - All screen drawing is double buffered.
26
+ - Internal character encoding is UTF -16.
27
+ - Uses anti- aliased fonts on Linux (Xft).
28
+ - All screen drawing is double- buffered.
28
29
- Has docking forms and MDI.
29
30
- Has embedded forms (similar to TFrame).
30
31
- Has sophisticated database access components and data edit widgets.
31
32
- Internationalization functionality with resource modules.
32
33
- Report generator.
33
34
- BGRABitmap graphic library compatible.
34
35
35
- # IDE
36
+ ## IDE
37
+
36
38
- Integrated debugging.
37
39
- Source code highlighting.
38
40
- Source code navigation with support for include files.
@@ -44,11 +46,14 @@ And because it is developed in Pascal, you have full control on the widgetset.
44
46
- Visual form inheritance.
45
47
- Integrated report designer.
46
48
47
- ### About MSEide+MSEgui
49
+ ## About MSEide+MSEgui
50
+
48
51
MSEide+MSEgui is exclusively designed for use with Free Pascal (FPC). It is not compatible with Delphi or Lazarus.
49
52
50
- ### Demos and Examples
53
+ ## Demos and Examples
54
+
51
55
To get the most out of MSEide+MSEgui, we highly recommend exploring our extensive collection of demos located in this repository. These demos are tailored to showcase various aspects of MSEgui's capabilities, usage patterns, and how to address common programming tasks with FPC.
56
+
52
57
- ** Demos in package** : in the mseide-msegui/apps/ folder.
53
58
- ** Demos from mseuniverse** : https://github.com/mse-org/mseuniverse
54
59
@@ -58,15 +63,17 @@ Before you ask questions, contribute, or report issues, please take a moment to
58
63
59
64
[ ![ Examples] ( https://img.shields.io/badge/Examples-Important-orange )] ( https://github.com/mse-org/mseuniverse )
60
65
61
- # License
66
+ ## License
67
+
62
68
IDE and tools are under GPL, library under modified LGPL like FPC-RTL.
63
69
Package maintainers may delete the files "apps/ide/COPYING.GPL",
64
70
"lib/common/COPYING.LGPL" and "lib/common/COPYING.MSE".
65
71
66
- # Installation
72
+ ## Installation
73
+
67
74
1 . Download and install FPC, you can get it from
68
75
http://www.freepascal.org/download.var
69
- 2 . Download mseide-msegui source from
76
+ 2 . Download MSEide+MSEgui source from
70
77
https://github.com/mse-org/mseide-msegui/archive/master.zip
71
78
3 . Extract them to a directory of your choice. For example "/home/myself/mseide-msegui".
72
79
4 . Download and unzip mseide binary according your OS from here:
@@ -87,30 +94,61 @@ libX11-devel or libX11-dev package or make a symbolic link
87
94
see
88
95
https://bugs.freepascal.org/view.php?id=32367
89
96
90
- # If you want to compile the IDE
97
+ ## Other installation methods
98
+
99
+ ### Bash installer
100
+
101
+ There is a Bash installer for Linux that you can find [ here] ( https://github.com/rchastain2/scripts/tree/main/install-mseide ) .
102
+
103
+ The script clones the git repository, build the IDE, and creates a desktop shortcut.
104
+
105
+ The ** -b** option allowes to choose installation root directory.
106
+
107
+ ``` bash
108
+ sh install-mseide.sh -d $HOME
109
+ ```
110
+
111
+ ## If you want to compile the IDE
91
112
92
113
1 . In 'Project'-'Open' select 'sourcedirectory/apps/ide/mseide.prj'.
93
114
2 . 'Target'-'Continue'.
94
115
95
- ## Compiling MSEide from commandline:
116
+ ### Compiling MSEide from commandline
117
+
96
118
On Unix:
119
+
120
+ ```
97
121
fpc -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas
122
+ ```
98
123
99
124
On Windows:
125
+
126
+ ```
100
127
fpc -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
128
+ ```
129
+
130
+ ### If FPC crashes while compiling try on Linux and FreeBSD
101
131
102
- ## If FPC crashes while compiling try on Linux and FreeBSD
132
+ ```
103
133
fpc -B -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas
134
+ ```
135
+
104
136
On Windows:
137
+
138
+ ```
105
139
fpc -B -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
140
+ ```
141
+
142
+ ## Creating a new GUI project
106
143
107
- # Creating a new GUI project
108
144
'Project'-'New'-'From Template', select "default.prj"
109
145
110
- # Creating a new console project
146
+ ## Creating a new console project
147
+
111
148
'Project'-'New'-'From Template', select "console.prj"
112
149
113
- # MSEgui command line parameters
150
+ ## MSEide command-line parameters
151
+
114
152
```
115
153
--FONTALIAS=<alias>,<fontname>[,<fontheight>[,<fontwidth>[,<options>[,<xscale>]
116
154
[,<ancestor>]]]]
@@ -150,10 +188,7 @@ fpc -B -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
150
188
151
189
--NOSTATICGRAVITY
152
190
Simulates staticgravity for buggy window managers.
153
- ```
154
191
155
- # MSEide command line parameters
156
- ```
157
192
-np
158
193
Do not load a project.
159
194
@@ -175,36 +210,44 @@ fpc -B -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
175
210
terminate MSEide.
176
211
```
177
212
178
- # MSEide environment variables
213
+ ## MSEide environment variables
214
+
179
215
Macros in 'Settings'-'Configure MSEide' can be overridden by environment
180
216
variables. They will be overriden by --macrodef and 'Project'-'Options'-'Macros'.
217
+
181
218
Possible names:
182
219
FPCDIR, FPCLIBDIR, MSEDIR, MSELIBDIR, SYNTAXDEFDIR, TEMPLATEDIR,
183
220
COMPSTOREDIR, COMPILER, DEBUGGER, EXEEXT, TARGET, TARGETOSDIR.
184
221
185
- # MSEide project macros
222
+ ## MSEide project macros
223
+
186
224
Predefined project macros:
187
225
PROJECTNAME, PROJECTDIR, MAINFILE, TARGETFILE,
188
226
TARGETENV (in format for "env" unix command), TARGETPARAMS,
189
227
they can be overridden by 'Project'-'Options'-'Macros'.
190
228
191
- # MSEide macro functions
229
+ ## MSEide macro functions
230
+
192
231
```
193
232
${MAC_IFDEF(macroname)} returns the macro value if defined.
194
233
${MAC_IFDEF(macroname,notdefinedvalue)} returns the macro value if defined,
195
234
notdefinedvalue otherwise.
196
235
${MAC_IFDEF(macroname,notdefinedvalue,definedvalue)}
197
236
returns definedvalue if macroname is defined, notdefinedvalue otherwise.
198
237
```
199
- # MSEide environment macros
238
+
239
+ ## MSEide environment macros
240
+
200
241
```
201
242
${ENV_VAR(variablename)} returns the variable value if defined.
202
243
${ENV_VAR(variablename,notdefinedvalue)} returns the variable value if defined,
203
244
notdefinedvalue otherwise.
204
245
${ENV_VAR(variablename,notdefinedvalue,definedvalue)}
205
246
returns definedvalue if variablename is defined, notdefinedvalue otherwise.
206
247
```
207
- # MSEide string macros
248
+
249
+ ## MSEide string macros
250
+
208
251
```
209
252
Macro format is ${STR_*(text)}.
210
253
STR_TRIM
@@ -219,7 +262,9 @@ STR_COALESCE
219
262
${STR_COALESCE(text[,text...])} or
220
263
${STR_COALESCE("text"[,"text"...])}
221
264
```
222
- # MSEide file macros
265
+
266
+ ## MSEide file macros
267
+
223
268
```
224
269
Macro format is ${FILE_*(fileparameter)} or ${FILE_*("fileparameter")}.
225
270
FILE_MSE convert to MSE format.
@@ -233,21 +278,29 @@ FILE_EXT file name extension.
233
278
FILE_NONAME directory part only.
234
279
FILE_NOEXT no file name extension.
235
280
```
236
- # MSEide exec macros
281
+
282
+ ## MSEide exec macros
283
+
237
284
```
238
285
${EXEC_OUT(commandline[,timeoutms])}
239
286
Executes commandline, returns the process output. Timeout in
240
287
milli seconds, default = 1000, -1 = infinite.
241
288
```
242
- # MSEide macros in 'Project'-'Options'-'Debugger'-'xterm Command'
289
+
290
+ ## MSEide macros in 'Project'-'Options'-'Debugger'-'xterm Command'
291
+
243
292
```
244
293
${PTS} expands to tty pts path.
245
294
${PTSN} expands to tty pts number.
246
295
${PTSH} expands to tty pts handle.
247
296
Entering an empty string restores the default.
248
297
```
249
- # MSEide external tools parameters macros
298
+
299
+ ## MSEide external tools parameters macros
300
+
250
301
Predefined macros in 'Project'-'Options'-'Tools'-'Parameters':
302
+
303
+ ```
251
304
CURSOURCEFILE current source file.
252
305
CURMODULEFILE current *.mfm file.
253
306
CURSSELECTION selected text in source editor.
@@ -257,17 +310,23 @@ CURSDEFINITION} definition of the current token at cursor
257
310
(Parse source before call) to be current.
258
311
CURCOMPONENTCLASS current selected component class in form editor.
259
312
CURPROPERTY current selected property in object inspector.
313
+ ```
314
+
315
+ ## Known issues
316
+
317
+ ### Antialiased text with MSEgui 32-bit on 64-bit Linux
260
318
261
- # Antialiased text with MSEgui 32 bit on 64 bit Linux
262
319
MSEgui uses Xft for antialiased fonts on Linux. Please install lib32-libxft
263
320
package if necessary.
264
321
265
- # Popup widgets behind the forms
322
+ ### Popup widgets behind the forms
323
+
266
324
If the popup widgets are showed behind the forms, try to start the
267
325
MSEgui program with the option '--TOPLEVELRAISE'. Do * not* use this option
268
326
if is not necessary (KDE, Gnome... work well without).
269
327
270
- # Display problems with Linux radeon and other EXA drivers
328
+ ### Display problems with Linux radeon and other EXA drivers
329
+
271
330
If the display is distorted or slow add
272
331
Option "EXAPixmaps" "off"
273
332
to
@@ -277,28 +336,32 @@ https://bugs.freedesktop.org/show_bug.cgi?id=69543
277
336
https://bugs.freedesktop.org/show_bug.cgi?id=84253
278
337
or use the proprietary video driver for your video chip.
279
338
280
- # Flashing taskbar widgets in IceWM
339
+ ### Flashing taskbar widgets in IceWM
340
+
281
341
Newer revisions of IceWM let the taskbar icons of MSEgui applications flash.
282
342
Start the MSEgui application with the option '--TOPLEVELRAISE'.
283
343
284
- # Invalid inputmanager for Ubuntu
344
+ ### Invalid inputmanager for Ubuntu
345
+
285
346
The utf-8 setup in Ubuntu seems to be incomplete. If you get the exception
286
- "egui : Invalid inputmanager tinternalapplication . " at program start, try to
347
+ "egui : Invalid inputmanager tinternalapplication" at program start, try to
287
348
replace your language locale in /usr/share/X11/locale/locale.dir
288
349
by en_US as a workaround. Example for ru_RU.UTF-8:
289
350
replace
290
351
ru_RU.UTF-8/XLC_LOCALE ru_RU.UTF-8
291
352
by
292
353
en_US.UTF-8/XLC_LOCALE ru_RU.UTF-8
293
354
294
- # Wrong window positions for Ubuntu 14.04
355
+ ### Wrong window positions for Ubuntu 14.04
356
+
295
357
Window positions in Unity are wrong because the Ubuntu windowmanager
296
358
does not support static_gravity:
297
359
http://askubuntu.com/questions/451903/wingravity-static-gravity-not-suppo
298
360
https://bugs.launchpad.net/ubuntu/+bug/1312044
299
361
http://askubuntu.com/questions/457456/wingravity-static-gravity-not-supported-in-14-04
300
362
301
- # How to add custom components to MSEide
363
+ ## How to add custom components to MSEide
364
+
302
365
There is a project 'apps/myide/mymseide.prj' as a demo.
303
366
Start MSEide, open project 'apps/myide/mymseide.prj', 'Project'-'Build',
304
367
'Target'-'Continue',
@@ -320,19 +383,22 @@ apps/ide/COPYING.IDE
320
383
321
384
If you want to add custom icons to your components:
322
385
323
- - Convert 24 * 24 pixel BMP or PNG files with tools/bmp2pas to
386
+ - Convert 24x24 pixel BMP or PNG files with tools/bmp2pas to
324
387
an icon unit ('* _ bmp.pas').
325
388
- Add the name of the icon unit to 'uses' in your register unit.
326
389
327
- # How to run i18ndemo
390
+ ## How to run i18ndemo
391
+
328
392
```
329
393
- Start MSEide.
330
394
- 'Project'-'Open'-'yourdirectory/msegui/apps/i18ndemo/i18ndemo.prj'.
331
395
- 'Project'-'Make' to create the rsj files.
332
396
- 'Project'-'Open'-'yourdirectory/msegui/tools/i18n/msei18n.prj'.
333
397
- 'Target'-'Continue'.
334
398
```
399
+
335
400
In MSEi18n:
401
+
336
402
```
337
403
- Adjust 'Settings'-'Configure MSEi18n'-'${MSEDIR}' and ${COMPILER}.
338
404
- 'Open'-'yourdirectory/msegui/apps/i18ndemo/i18ndemo.trp'
@@ -343,8 +409,10 @@ In MSEi18n:
343
409
- 'Target'-'Continue'.
344
410
```
345
411
346
- # SQLite
412
+ ## SQLite
413
+
347
414
tsqlite3connection field type mapping:
415
+
348
416
```
349
417
Type name SQLite storage class Field type Data type
350
418
+--------------------+---------------------+-------------+-------------+
@@ -369,7 +437,8 @@ tsqlite3connection field type mapping:
369
437
+--------------------+---------------------+-------------+-------------+
370
438
```
371
439
372
- # ZeosLib
440
+ ## ZeosLib
441
+
373
442
Since msegui commit fbbaa979b, ZeosLib components are included in mseide by default.
374
443
Also last stable source are included in /mseide-msegui/lib/common/mzeoslib/.
375
444
@@ -380,7 +449,8 @@ If you want to recompile the IDE with new ZeosLib source, add parameter '-dmse_w
380
449
There is a predefined IDE project apps/ide/mseide_zeos.prj, update 'Project'-
381
450
'Options'-'Macros' according to your installation.
382
451
383
- # Crosscompiling and remote debugging i386/x84_64-linux -> arm-linux
452
+ ## Crosscompiling and remote debugging i386/x84_64-linux -> arm-linux
453
+
384
454
For Raspberry Pi:
385
455
- Establish a ssh login without password (public key authentication).
386
456
0 commit comments